diff --git a/Vulkan-Headers b/Vulkan-Headers index 29f979e..b955ae0 160000 --- a/Vulkan-Headers +++ b/Vulkan-Headers @@ -1 +1 @@ -Subproject commit 29f979ee5aa58b7b005f805ea8df7a855c39ff37 +Subproject commit b955ae0edb4f02074bfbf134ccc1980e83122d30 diff --git a/VulkanDeviceInfoExtensions.cpp b/VulkanDeviceInfoExtensions.cpp index d08658d..ed05c67 100644 --- a/VulkanDeviceInfoExtensions.cpp +++ b/VulkanDeviceInfoExtensions.cpp @@ -86,6 +86,8 @@ void VulkanDeviceInfoExtensions::readPhysicalProperties_AMDX() { pushProperty2(extension, "maxExecutionGraphShaderPayloadSize", QVariant(extProps->maxExecutionGraphShaderPayloadSize)); pushProperty2(extension, "maxExecutionGraphShaderPayloadCount", QVariant(extProps->maxExecutionGraphShaderPayloadCount)); pushProperty2(extension, "executionGraphDispatchAddressAlignment", QVariant(extProps->executionGraphDispatchAddressAlignment)); + pushProperty2(extension, "maxExecutionGraphWorkgroupCount", QVariant::fromValue(QVariantList({ extProps->maxExecutionGraphWorkgroupCount[0], extProps->maxExecutionGraphWorkgroupCount[1], extProps->maxExecutionGraphWorkgroupCount[2] }))); + pushProperty2(extension, "maxExecutionGraphWorkgroups", QVariant(extProps->maxExecutionGraphWorkgroups)); delete extProps; } } @@ -1327,6 +1329,7 @@ void VulkanDeviceInfoExtensions::readPhysicalFeatures_AMDX() { deviceFeatures2 = initDeviceFeatures2(extFeatures); vulkanContext.vkGetPhysicalDeviceFeatures2KHR(device, &deviceFeatures2); pushFeature2(extension, "shaderEnqueue", extFeatures->shaderEnqueue); + pushFeature2(extension, "shaderMeshEnqueue", extFeatures->shaderMeshEnqueue); delete extFeatures; } } @@ -1923,6 +1926,15 @@ void VulkanDeviceInfoExtensions::readPhysicalFeatures_EXT() { pushFeature2(extension, "primitiveTopologyPatchListRestart", extFeatures->primitiveTopologyPatchListRestart); delete extFeatures; } + if (extensionSupported("VK_EXT_present_mode_fifo_latest_ready")) { + const char* extension("VK_EXT_present_mode_fifo_latest_ready"); + VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT* extFeatures = new VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT{}; + extFeatures->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT; + deviceFeatures2 = initDeviceFeatures2(extFeatures); + vulkanContext.vkGetPhysicalDeviceFeatures2KHR(device, &deviceFeatures2); + pushFeature2(extension, "presentModeFifoLatestReady", extFeatures->presentModeFifoLatestReady); + delete extFeatures; + } if (extensionSupported("VK_EXT_pipeline_properties")) { const char* extension("VK_EXT_pipeline_properties"); VkPhysicalDevicePipelinePropertiesFeaturesEXT* extFeatures = new VkPhysicalDevicePipelinePropertiesFeaturesEXT{}; diff --git a/VulkanDeviceInfoExtensions.h b/VulkanDeviceInfoExtensions.h index 1f640b4..e865fde 100644 --- a/VulkanDeviceInfoExtensions.h +++ b/VulkanDeviceInfoExtensions.h @@ -97,7 +97,7 @@ class VulkanDeviceInfoExtensions void readPhysicalFeatures_VALVE(); public: - const uint32_t vkHeaderVersion = 296; + const uint32_t vkHeaderVersion = 299; std::vector features2; std::vector properties2; std::vector extensions; diff --git a/extensionlist.txt b/extensionlist.txt index 2ceb0d2..7fb0be1 100644 --- a/extensionlist.txt +++ b/extensionlist.txt @@ -73,6 +73,7 @@ VK_EXT_physical_device_drm VK_EXT_device_address_binding_report VK_EXT_depth_clip_control VK_EXT_primitive_topology_list_restart +VK_EXT_present_mode_fifo_latest_ready VK_EXT_pipeline_properties VK_EXT_frame_boundary VK_EXT_multisampled_render_to_single_sampled