diff --git a/Vulkan-Headers b/Vulkan-Headers index 190d2cb..a6a5dc0 160000 --- a/Vulkan-Headers +++ b/Vulkan-Headers @@ -1 +1 @@ -Subproject commit 190d2cb24e90e5bf2bec0a75604a9b3586485b6d +Subproject commit a6a5dc0d078ade9bde75bd78404462509cbdce99 diff --git a/VulkanDeviceInfoExtensions.cpp b/VulkanDeviceInfoExtensions.cpp index 53089b6..6feef2e 100644 --- a/VulkanDeviceInfoExtensions.cpp +++ b/VulkanDeviceInfoExtensions.cpp @@ -920,6 +920,19 @@ void VulkanDeviceInfoExtensions::readPhysicalProperties_KHR() { pushProperty2(extension, "nonStrictWideLinesUseParallelogram", QVariant(bool(extProps->nonStrictWideLinesUseParallelogram))); delete extProps; } + if (extensionSupported("VK_KHR_pipeline_binary")) { + const char* extension("VK_KHR_pipeline_binary"); + VkPhysicalDevicePipelineBinaryPropertiesKHR* extProps = new VkPhysicalDevicePipelineBinaryPropertiesKHR{}; + extProps->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR; + deviceProps2 = initDeviceProperties2(extProps); + vulkanContext.vkGetPhysicalDeviceProperties2KHR(device, &deviceProps2); + pushProperty2(extension, "pipelineBinaryInternalCache", QVariant(bool(extProps->pipelineBinaryInternalCache))); + pushProperty2(extension, "pipelineBinaryInternalCacheControl", QVariant(bool(extProps->pipelineBinaryInternalCacheControl))); + pushProperty2(extension, "pipelineBinaryPrefersInternalCache", QVariant(bool(extProps->pipelineBinaryPrefersInternalCache))); + pushProperty2(extension, "pipelineBinaryPrecompiledInternalCache", QVariant(bool(extProps->pipelineBinaryPrecompiledInternalCache))); + pushProperty2(extension, "pipelineBinaryCompressedData", QVariant(bool(extProps->pipelineBinaryCompressedData))); + delete extProps; + } if (extensionSupported("VK_KHR_cooperative_matrix")) { const char* extension("VK_KHR_cooperative_matrix"); VkPhysicalDeviceCooperativeMatrixPropertiesKHR* extProps = new VkPhysicalDeviceCooperativeMatrixPropertiesKHR{}; @@ -1266,6 +1279,15 @@ void VulkanDeviceInfoExtensions::readPhysicalFeatures_AMD() { pushFeature2(extension, "shaderEarlyAndLateFragmentTests", extFeatures->shaderEarlyAndLateFragmentTests); delete extFeatures; } + if (extensionSupported("VK_AMD_anti_lag")) { + const char* extension("VK_AMD_anti_lag"); + VkPhysicalDeviceAntiLagFeaturesAMD* extFeatures = new VkPhysicalDeviceAntiLagFeaturesAMD{}; + extFeatures->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD; + deviceFeatures2 = initDeviceFeatures2(extFeatures); + vulkanContext.vkGetPhysicalDeviceFeatures2KHR(device, &deviceFeatures2); + pushFeature2(extension, "antiLag", extFeatures->antiLag); + delete extFeatures; + } } void VulkanDeviceInfoExtensions::readPhysicalFeatures_AMDX() { VkPhysicalDeviceFeatures2 deviceFeatures2{}; @@ -2676,6 +2698,15 @@ void VulkanDeviceInfoExtensions::readPhysicalFeatures_KHR() { pushFeature2(extension, "rayTracingPositionFetch", extFeatures->rayTracingPositionFetch); delete extFeatures; } + if (extensionSupported("VK_KHR_pipeline_binary")) { + const char* extension("VK_KHR_pipeline_binary"); + VkPhysicalDevicePipelineBinaryFeaturesKHR* extFeatures = new VkPhysicalDevicePipelineBinaryFeaturesKHR{}; + extFeatures->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR; + deviceFeatures2 = initDeviceFeatures2(extFeatures); + vulkanContext.vkGetPhysicalDeviceFeatures2KHR(device, &deviceFeatures2); + pushFeature2(extension, "pipelineBinaries", extFeatures->pipelineBinaries); + delete extFeatures; + } if (extensionSupported("VK_KHR_cooperative_matrix")) { const char* extension("VK_KHR_cooperative_matrix"); VkPhysicalDeviceCooperativeMatrixFeaturesKHR* extFeatures = new VkPhysicalDeviceCooperativeMatrixFeaturesKHR{}; @@ -3077,6 +3108,15 @@ void VulkanDeviceInfoExtensions::readPhysicalFeatures_NV() { pushFeature2(extension, "shaderRawAccessChains", extFeatures->shaderRawAccessChains); delete extFeatures; } + if (extensionSupported("VK_NV_command_buffer_inheritance")) { + const char* extension("VK_NV_command_buffer_inheritance"); + VkPhysicalDeviceCommandBufferInheritanceFeaturesNV* extFeatures = new VkPhysicalDeviceCommandBufferInheritanceFeaturesNV{}; + extFeatures->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV; + deviceFeatures2 = initDeviceFeatures2(extFeatures); + vulkanContext.vkGetPhysicalDeviceFeatures2KHR(device, &deviceFeatures2); + pushFeature2(extension, "commandBufferInheritance", extFeatures->commandBufferInheritance); + delete extFeatures; + } if (extensionSupported("VK_NV_shader_atomic_float16_vector")) { const char* extension("VK_NV_shader_atomic_float16_vector"); VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV* extFeatures = new VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV{}; diff --git a/VulkanDeviceInfoExtensions.h b/VulkanDeviceInfoExtensions.h index 29c9514..7e33bcb 100644 --- a/VulkanDeviceInfoExtensions.h +++ b/VulkanDeviceInfoExtensions.h @@ -97,7 +97,7 @@ class VulkanDeviceInfoExtensions void readPhysicalFeatures_VALVE(); public: - const uint32_t vkHeaderVersion = 289; + const uint32_t vkHeaderVersion = 294; std::vector features2; std::vector properties2; std::vector extensions; diff --git a/extensionlist.txt b/extensionlist.txt index 54b930e..c0845ad 100644 --- a/extensionlist.txt +++ b/extensionlist.txt @@ -3,6 +3,7 @@ VK_AMD_shader_core_properties VK_AMD_shader_core_properties2 VK_AMD_device_coherent_memory VK_AMD_shader_early_and_late_fragment_tests +VK_AMD_anti_lag AMDX VK_AMDX_shader_enqueue ANDROID @@ -163,6 +164,7 @@ VK_KHR_shader_subgroup_rotate VK_KHR_shader_maximal_reconvergence VK_KHR_maintenance5 VK_KHR_ray_tracing_position_fetch +VK_KHR_pipeline_binary VK_KHR_cooperative_matrix VK_KHR_video_maintenance1 VK_KHR_vertex_attribute_divisor @@ -210,6 +212,7 @@ VK_NV_extended_sparse_address_space VK_NV_per_stage_descriptor_set VK_NV_descriptor_pool_overallocation VK_NV_raw_access_chains +VK_NV_command_buffer_inheritance VK_NV_shader_atomic_float16_vector VK_NV_ray_tracing_validation NVX