diff options
| author | assiduous <assiduous@diligentgraphics.com> | 2020-09-10 22:38:48 +0000 |
|---|---|---|
| committer | assiduous <assiduous@diligentgraphics.com> | 2020-09-10 22:38:48 +0000 |
| commit | 35aacd4de5326dac3d954ce3338281e5838fb0a0 (patch) | |
| tree | 877b1ad33245fcd294a5f4f23b8c70e65bae970b /Graphics/GraphicsEngineVulkan | |
| parent | Fixed linux build error (diff) | |
| download | DiligentCore-35aacd4de5326dac3d954ce3338281e5838fb0a0.tar.gz DiligentCore-35aacd4de5326dac3d954ce3338281e5838fb0a0.zip | |
Few final updates to mesh shader implementation
Diffstat (limited to 'Graphics/GraphicsEngineVulkan')
4 files changed, 21 insertions, 29 deletions
diff --git a/Graphics/GraphicsEngineVulkan/CMakeLists.txt b/Graphics/GraphicsEngineVulkan/CMakeLists.txt index 497a4e0b..2e9458f7 100644 --- a/Graphics/GraphicsEngineVulkan/CMakeLists.txt +++ b/Graphics/GraphicsEngineVulkan/CMakeLists.txt @@ -193,19 +193,17 @@ endif() # DXC for D3D12 can compile only to DXIL. if(PLATFORM_WIN32) # find Vulkan SDK - if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.7") - find_package(Vulkan) - if(Vulkan_FOUND) - get_filename_component(VulkanSDKPath ${Vulkan_LIBRARY} DIRECTORY) - set(VulkanSDKPath "${VulkanSDKPath}/..") - if(NOT EXISTS "${VulkanSDKPath}") - message(STATUS "can't get Vulkan SDK path") - endif() - if (${CMAKE_SIZEOF_VOID_P} EQUAL 8) - set(DXC_SPIRV_PATH "${VulkanSDKPath}/Bin/dxcompiler.dll") - else() - set(DXC_SPIRV_PATH "${VulkanSDKPath}/Bin32/dxcompiler.dll") - endif() + find_package(Vulkan) + if(Vulkan_FOUND) + get_filename_component(VulkanSDKPath ${Vulkan_LIBRARY} DIRECTORY) + set(VulkanSDKPath "${VulkanSDKPath}/..") + if(NOT EXISTS "${VulkanSDKPath}") + message(STATUS "can't get Vulkan SDK path") + endif() + if (${CMAKE_SIZEOF_VOID_P} EQUAL 8) + set(DXC_SPIRV_PATH "${VulkanSDKPath}/Bin/dxcompiler.dll") + else() + set(DXC_SPIRV_PATH "${VulkanSDKPath}/Bin32/dxcompiler.dll") endif() endif() # Try to find Vulkan SDK from environment variable diff --git a/Graphics/GraphicsEngineVulkan/include/VulkanUtilities/VulkanPhysicalDevice.hpp b/Graphics/GraphicsEngineVulkan/include/VulkanUtilities/VulkanPhysicalDevice.hpp index 57631b91..215feb1a 100644 --- a/Graphics/GraphicsEngineVulkan/include/VulkanUtilities/VulkanPhysicalDevice.hpp +++ b/Graphics/GraphicsEngineVulkan/include/VulkanUtilities/VulkanPhysicalDevice.hpp @@ -42,10 +42,6 @@ public: VkPhysicalDeviceMeshShaderFeaturesNV MeshShader = {}; }; - struct ExtensionProperties - { - }; - public: // clang-format off VulkanPhysicalDevice (const VulkanPhysicalDevice&) = delete; @@ -54,8 +50,8 @@ public: VulkanPhysicalDevice& operator = (VulkanPhysicalDevice&&) = delete; // clang-format on - static std::unique_ptr<VulkanPhysicalDevice> Create(VkPhysicalDevice vkDevice, - std::shared_ptr<VulkanInstance> Instance); + static std::unique_ptr<VulkanPhysicalDevice> Create(VkPhysicalDevice vkDevice, + const VulkanInstance& Instance); // clang-format off uint32_t FindQueueFamily (VkQueueFlags QueueFlags) const; @@ -70,20 +66,18 @@ public: const VkPhysicalDeviceProperties& GetProperties() const { return m_Properties; } const VkPhysicalDeviceFeatures& GetFeatures() const { return m_Features; } - const ExtensionProperties& GetExtProperties() const { return m_ExtProperties; } const ExtensionFeatures& GetExtFeatures() const { return m_ExtFeatures; } const VkPhysicalDeviceMemoryProperties& GetMemoryProperties() const { return m_MemoryProperties; } VkFormatProperties GetPhysicalDeviceFormatProperties(VkFormat imageFormat) const; private: - VulkanPhysicalDevice(VkPhysicalDevice vkDevice, - std::shared_ptr<VulkanInstance> Instance); + VulkanPhysicalDevice(VkPhysicalDevice vkDevice, + const VulkanInstance& Instance); const VkPhysicalDevice m_VkDevice; VkPhysicalDeviceProperties m_Properties = {}; VkPhysicalDeviceFeatures m_Features = {}; VkPhysicalDeviceMemoryProperties m_MemoryProperties = {}; - ExtensionProperties m_ExtProperties = {}; ExtensionFeatures m_ExtFeatures = {}; std::vector<VkQueueFamilyProperties> m_QueueFamilyProperties; std::vector<VkExtensionProperties> m_SupportedExtensions; diff --git a/Graphics/GraphicsEngineVulkan/src/EngineFactoryVk.cpp b/Graphics/GraphicsEngineVulkan/src/EngineFactoryVk.cpp index f0dafcff..da0d512c 100644 --- a/Graphics/GraphicsEngineVulkan/src/EngineFactoryVk.cpp +++ b/Graphics/GraphicsEngineVulkan/src/EngineFactoryVk.cpp @@ -144,7 +144,7 @@ void EngineFactoryVkImpl::CreateDeviceAndContextsVk(const EngineVkCreateInfo& _E reinterpret_cast<VkAllocationCallbacks*>(EngineCI.pVkAllocator)); auto vkDevice = Instance->SelectPhysicalDevice(EngineCI.AdapterId); - auto PhysicalDevice = VulkanUtilities::VulkanPhysicalDevice::Create(vkDevice, Instance); + auto PhysicalDevice = VulkanUtilities::VulkanPhysicalDevice::Create(vkDevice, *Instance); const auto& PhysicalDeviceFeatures = PhysicalDevice->GetFeatures(); // If an implementation exposes any queue family that supports graphics operations, diff --git a/Graphics/GraphicsEngineVulkan/src/VulkanUtilities/VulkanPhysicalDevice.cpp b/Graphics/GraphicsEngineVulkan/src/VulkanUtilities/VulkanPhysicalDevice.cpp index 366b539d..a33e99e7 100644 --- a/Graphics/GraphicsEngineVulkan/src/VulkanUtilities/VulkanPhysicalDevice.cpp +++ b/Graphics/GraphicsEngineVulkan/src/VulkanUtilities/VulkanPhysicalDevice.cpp @@ -33,15 +33,15 @@ namespace VulkanUtilities { -std::unique_ptr<VulkanPhysicalDevice> VulkanPhysicalDevice::Create(VkPhysicalDevice vkDevice, - std::shared_ptr<VulkanInstance> Instance) +std::unique_ptr<VulkanPhysicalDevice> VulkanPhysicalDevice::Create(VkPhysicalDevice vkDevice, + const VulkanInstance& Instance) { auto* PhysicalDevice = new VulkanPhysicalDevice{vkDevice, Instance}; return std::unique_ptr<VulkanPhysicalDevice>{PhysicalDevice}; } -VulkanPhysicalDevice::VulkanPhysicalDevice(VkPhysicalDevice vkDevice, - std::shared_ptr<VulkanInstance> Instance) : +VulkanPhysicalDevice::VulkanPhysicalDevice(VkPhysicalDevice vkDevice, + const VulkanInstance& Instance) : m_VkDevice{vkDevice} { VERIFY_EXPR(m_VkDevice != VK_NULL_HANDLE); @@ -69,7 +69,7 @@ VulkanPhysicalDevice::VulkanPhysicalDevice(VkPhysicalDevice vkDev } #ifdef VK_KHR_get_physical_device_properties2 - if (Instance->IsExtensionEnabled(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME)) + if (Instance.IsExtensionEnabled(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME)) { VkPhysicalDeviceFeatures2 Feats2 = {VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2}; VkPhysicalDeviceProperties2 Props2 = {VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2}; |
