From d669e5e29f28a26e93ab204bc6223b9542388ee6 Mon Sep 17 00:00:00 2001 From: Lava Block <the@lava-block.com> Date: Mon, 17 Feb 2020 22:00:24 +0100 Subject: [PATCH] add features and next ptr to device create_param #7 --- ext/imgui | 2 +- ext/tinyobjloader | 2 +- liblava/base/device.cpp | 7 +++++-- liblava/base/device.hpp | 4 ++++ 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/ext/imgui b/ext/imgui index f339b24b..8836975d 160000 --- a/ext/imgui +++ b/ext/imgui @@ -1 +1 @@ -Subproject commit f339b24b3a0b6270c5e1a70df66e39b87d1ccdc6 +Subproject commit 8836975dcfc770731932ebec3bbb69579fb29071 diff --git a/ext/tinyobjloader b/ext/tinyobjloader index 3025ccca..2636244e 160000 --- a/ext/tinyobjloader +++ b/ext/tinyobjloader @@ -1 +1 @@ -Subproject commit 3025cccaab135e4e426b2fe222792f697542e0d4 +Subproject commit 2636244e73fa424bb68da6c0ae38f22d15d2f7c6 diff --git a/liblava/base/device.cpp b/liblava/base/device.cpp index 206969ec..2739a67d 100644 --- a/liblava/base/device.cpp +++ b/liblava/base/device.cpp @@ -35,13 +35,14 @@ bool device::create(create_param::ref param) { VkDeviceCreateInfo create_info { .sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO, + .pNext = param.next, .queueCreateInfoCount = to_ui32(queue_create_info_list.size()), .pQueueCreateInfos = queue_create_info_list.data(), .enabledLayerCount = 0, .ppEnabledLayerNames = nullptr, .enabledExtensionCount = to_ui32(param.extensions.size()), .ppEnabledExtensionNames = param.extensions.data(), - .pEnabledFeatures = &physical_device->get_features(), + .pEnabledFeatures = ¶m.features, }; if (failed(vkCreateDevice(physical_device->get(), &create_info, memory::alloc(), &vk_device))) { @@ -50,6 +51,8 @@ bool device::create(create_param::ref param) { return false; } + features = param.features; + load_table(); graphics_queue_list.clear(); @@ -145,7 +148,7 @@ VkPhysicalDevice device::get_vk_physical_device() const { return physical_device->get(); } -VkPhysicalDeviceFeatures const& device::get_features() const { return physical_device->get_features(); } +VkPhysicalDeviceFeatures const& device::get_features() const { return features; } VkPhysicalDeviceProperties const& device::get_properties() const { return physical_device->get_properties(); } diff --git a/liblava/base/device.hpp b/liblava/base/device.hpp index 54bfb96c..bb302832 100644 --- a/liblava/base/device.hpp +++ b/liblava/base/device.hpp @@ -44,6 +44,8 @@ struct device : device_table { queue_info::list queue_info_list; names extensions; + VkPhysicalDeviceFeatures features{}; + void const* next = nullptr; // pNext void set_default_queues() { @@ -115,6 +117,8 @@ private: device::queue::list compute_queue_list; device::queue::list transfer_queue_list; + VkPhysicalDeviceFeatures features; + allocator::ptr mem_allocator; }; -- GitLab