diff --git a/renderdoc/driver/vulkan/official/vulkan_core.h b/renderdoc/driver/vulkan/official/vulkan_core.h index 888674e72..01da6ede3 100644 --- a/renderdoc/driver/vulkan/official/vulkan_core.h +++ b/renderdoc/driver/vulkan/official/vulkan_core.h @@ -44,7 +44,7 @@ extern "C" { #define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff) #define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff) // Version of this file -#define VK_HEADER_VERSION 120 +#define VK_HEADER_VERSION 123 #define VK_NULL_HANDLE 0 @@ -443,6 +443,7 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT = 1000170000, VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT = 1000170001, VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR = 1000175000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = 1000177000, VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000, VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001, @@ -491,6 +492,7 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = 1000225001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT = 1000225002, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD = 1000227000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD = 1000229000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = 1000237000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT = 1000238000, VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT = 1000238001, @@ -1241,6 +1243,7 @@ typedef enum VkSamplerAddressMode { VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2, VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3, VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4, + VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE, VK_SAMPLER_ADDRESS_MODE_BEGIN_RANGE = VK_SAMPLER_ADDRESS_MODE_REPEAT, VK_SAMPLER_ADDRESS_MODE_END_RANGE = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER, VK_SAMPLER_ADDRESS_MODE_RANGE_SIZE = (VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER - VK_SAMPLER_ADDRESS_MODE_REPEAT + 1), @@ -1507,6 +1510,8 @@ typedef enum VkMemoryPropertyFlagBits { VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008, VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010, VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020, + VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD = 0x00000040, + VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD = 0x00000080, VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkMemoryPropertyFlagBits; typedef VkFlags VkMemoryPropertyFlags; @@ -5081,7 +5086,7 @@ VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHR( #define VK_KHR_display 1 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR) -#define VK_KHR_DISPLAY_SPEC_VERSION 21 +#define VK_KHR_DISPLAY_SPEC_VERSION 23 #define VK_KHR_DISPLAY_EXTENSION_NAME "VK_KHR_display" typedef enum VkDisplayPlaneAlphaFlagBitsKHR { @@ -5204,7 +5209,7 @@ VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR( #define VK_KHR_display_swapchain 1 -#define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 9 +#define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 10 #define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain" typedef struct VkDisplayPresentInfoKHR { VkStructureType sType; @@ -5227,7 +5232,7 @@ VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR( #define VK_KHR_sampler_mirror_clamp_to_edge 1 -#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 1 +#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 3 #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge" @@ -5243,7 +5248,7 @@ typedef VkPhysicalDeviceMultiviewProperties VkPhysicalDeviceMultiviewPropertiesK #define VK_KHR_get_physical_device_properties2 1 -#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 1 +#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 2 #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2" typedef VkPhysicalDeviceFeatures2 VkPhysicalDeviceFeatures2KHR; @@ -5308,7 +5313,7 @@ VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2KHR( #define VK_KHR_device_group 1 -#define VK_KHR_DEVICE_GROUP_SPEC_VERSION 3 +#define VK_KHR_DEVICE_GROUP_SPEC_VERSION 4 #define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group" typedef VkPeerMemoryFeatureFlags VkPeerMemoryFeatureFlagsKHR; @@ -6093,7 +6098,7 @@ typedef struct VkImageFormatListCreateInfoKHR { #define VK_KHR_sampler_ycbcr_conversion 1 typedef VkSamplerYcbcrConversion VkSamplerYcbcrConversionKHR; -#define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 1 +#define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 14 #define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion" typedef VkSamplerYcbcrModelConversion VkSamplerYcbcrModelConversionKHR; @@ -6197,6 +6202,17 @@ VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountKHR( #endif +#define VK_KHR_shader_subgroup_extended_types 1 +#define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION 1 +#define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME "VK_KHR_shader_subgroup_extended_types" +typedef struct VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 shaderSubgroupExtendedTypes; +} VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR; + + + #define VK_KHR_8bit_storage 1 #define VK_KHR_8BIT_STORAGE_SPEC_VERSION 1 #define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage" @@ -6812,7 +6828,7 @@ VKAPI_ATTR uint32_t VKAPI_CALL vkGetImageViewHandleNVX( #define VK_AMD_draw_indirect_count 1 -#define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 1 +#define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 2 #define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count" typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); @@ -6989,7 +7005,7 @@ typedef struct VkExportMemoryAllocateInfoNV { #define VK_EXT_validation_flags 1 -#define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 1 +#define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 2 #define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags" typedef enum VkValidationCheckEXT { @@ -7048,7 +7064,7 @@ typedef struct VkPhysicalDeviceASTCDecodeFeaturesEXT { #define VK_EXT_conditional_rendering 1 -#define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 1 +#define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 2 #define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering" typedef enum VkConditionalRenderingFlagBitsEXT { @@ -7680,7 +7696,7 @@ typedef struct VkPipelineRasterizationDepthClipStateCreateInfoEXT { #define VK_EXT_hdr_metadata 1 -#define VK_EXT_HDR_METADATA_SPEC_VERSION 1 +#define VK_EXT_HDR_METADATA_SPEC_VERSION 2 #define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata" typedef struct VkXYColorEXT { float x; @@ -7864,7 +7880,7 @@ VKAPI_ATTR void VKAPI_CALL vkSubmitDebugUtilsMessageEXT( #define VK_EXT_sampler_filter_minmax 1 -#define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 1 +#define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 2 #define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax" typedef enum VkSamplerReductionModeEXT { @@ -8742,7 +8758,7 @@ VKAPI_ATTR VkResult VKAPI_CALL vkCompileDeferredNV( #define VK_NV_representative_fragment_test 1 -#define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 1 +#define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 2 #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test" typedef struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV { VkStructureType sType; @@ -8901,7 +8917,7 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsEXT( #define VK_AMD_shader_core_properties 1 -#define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 1 +#define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 2 #define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties" typedef struct VkPhysicalDeviceShaderCorePropertiesAMD { VkStructureType sType; @@ -9091,7 +9107,7 @@ typedef struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV { #define VK_NV_shader_image_footprint 1 -#define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 1 +#define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 2 #define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint" typedef struct VkPhysicalDeviceShaderImageFootprintFeaturesNV { VkStructureType sType; @@ -9452,6 +9468,17 @@ typedef struct VkPhysicalDeviceShaderCoreProperties2AMD { +#define VK_AMD_device_coherent_memory 1 +#define VK_AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION 1 +#define VK_AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME "VK_AMD_device_coherent_memory" +typedef struct VkPhysicalDeviceCoherentMemoryFeaturesAMD { + VkStructureType sType; + void* pNext; + VkBool32 deviceCoherentMemory; +} VkPhysicalDeviceCoherentMemoryFeaturesAMD; + + + #define VK_EXT_memory_budget 1 #define VK_EXT_MEMORY_BUDGET_SPEC_VERSION 1 #define VK_EXT_MEMORY_BUDGET_EXTENSION_NAME "VK_EXT_memory_budget" @@ -9714,7 +9741,7 @@ typedef struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT { #define VK_EXT_headless_surface 1 -#define VK_EXT_HEADLESS_SURFACE_SPEC_VERSION 0 +#define VK_EXT_HEADLESS_SURFACE_SPEC_VERSION 1 #define VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME "VK_EXT_headless_surface" typedef VkFlags VkHeadlessSurfaceCreateFlagsEXT; typedef struct VkHeadlessSurfaceCreateInfoEXT { @@ -9845,6 +9872,11 @@ typedef struct VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT { } VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT; + +#define VK_GOOGLE_user_type 1 +#define VK_GOOGLE_USER_TYPE_SPEC_VERSION 1 +#define VK_GOOGLE_USER_TYPE_EXTENSION_NAME "VK_GOOGLE_user_type" + #ifdef __cplusplus } #endif diff --git a/renderdoc/driver/vulkan/vk.xml b/renderdoc/driver/vulkan/vk.xml index bc1c63de3..dff095ba3 100644 --- a/renderdoc/driver/vulkan/vk.xml +++ b/renderdoc/driver/vulkan/vk.xml @@ -154,7 +154,7 @@ server. // Vulkan 1.1 version number #define VK_API_VERSION_1_1 VK_MAKE_VERSION(1, 1, 0)// Patch version should always be set to 0 // Version of this file -#define VK_HEADER_VERSION 120 +#define VK_HEADER_VERSION 123 #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object; @@ -2511,7 +2511,7 @@ typedef void CAMetalLayer; uint32_t descriptorUpdateEntryCountNumber of descriptor update entries to use for the update template const VkDescriptorUpdateTemplateEntry* pDescriptorUpdateEntriesDescriptor update entries for the template VkDescriptorUpdateTemplateType templateType - VkDescriptorSetLayout descriptorSetLayout + VkDescriptorSetLayout descriptorSetLayout VkPipelineBindPoint pipelineBindPoint VkPipelineLayoutpipelineLayoutIf used for push descriptors, this is the only allowed layout uint32_t set @@ -2702,6 +2702,11 @@ typedef void CAMetalLayer; VkSubgroupFeatureFlags supportedOperationsBitfield of what subgroup operations are supported. VkBool32 quadOperationsInAllStagesFlag to specify whether quad operations are available in all stages. + + VkStructureType sType + void* pNext + VkBool32 shaderSubgroupExtendedTypesFlag to specify whether subgroup operations with extended types are supported + VkStructureType sType const void* pNext @@ -4036,7 +4041,7 @@ typedef void CAMetalLayer; VkBool32 fragmentShaderPixelInterlock VkBool32 fragmentShaderShadingRateInterlock - + VkStructureType sType void* pNext VkBool32 pipelineExecutableInfo @@ -4148,6 +4153,11 @@ typedef void CAMetalLayer; const void* pNext VkPipelineCompilerControlFlagsAMD compilerControlFlags + + VkStructureType sType + void* pNext + VkBool32 deviceCoherentMemory + Vulkan enumerant (token) definitions @@ -7562,14 +7572,14 @@ typedef void CAMetalLayer; uint32_t bindInfoCount const VkBindAccelerationStructureMemoryInfoNV* pBindInfos - + void vkCmdCopyAccelerationStructureNV VkCommandBuffer commandBuffer VkAccelerationStructureNV dst VkAccelerationStructureNV src VkCopyAccelerationStructureModeNV mode - + void vkCmdWriteAccelerationStructuresPropertiesNV VkCommandBuffer commandBuffer uint32_t accelerationStructureCount @@ -7578,7 +7588,7 @@ typedef void CAMetalLayer; VkQueryPool queryPool uint32_t firstQuery - + void vkCmdBuildAccelerationStructureNV VkCommandBuffer commandBuffer const VkAccelerationStructureInfoNV* pInfo @@ -7590,7 +7600,7 @@ typedef void CAMetalLayer; VkBuffer scratch VkDeviceSize scratchOffset - + void vkCmdTraceRaysNV VkCommandBuffer commandBuffer VkBuffer raygenShaderBindingTableBuffer @@ -8383,7 +8393,7 @@ typedef void CAMetalLayer; - + @@ -8409,7 +8419,7 @@ typedef void CAMetalLayer; - + @@ -8535,9 +8545,10 @@ typedef void CAMetalLayer; - + + @@ -8727,7 +8738,7 @@ typedef void CAMetalLayer; - + @@ -8875,7 +8886,7 @@ typedef void CAMetalLayer; - + @@ -8924,7 +8935,7 @@ typedef void CAMetalLayer; - + @@ -8932,7 +8943,7 @@ typedef void CAMetalLayer; - + @@ -8963,7 +8974,7 @@ typedef void CAMetalLayer; - + @@ -9022,9 +9033,9 @@ typedef void CAMetalLayer; - + - + @@ -9285,7 +9296,7 @@ typedef void CAMetalLayer; - + @@ -9592,7 +9603,7 @@ typedef void CAMetalLayer; - + @@ -9903,7 +9914,7 @@ typedef void CAMetalLayer; - + @@ -10168,7 +10179,7 @@ typedef void CAMetalLayer; - + @@ -10451,7 +10462,7 @@ typedef void CAMetalLayer; - + @@ -10526,10 +10537,12 @@ typedef void CAMetalLayer; - + - - + + + + @@ -10613,7 +10626,7 @@ typedef void CAMetalLayer; - + @@ -10778,7 +10791,7 @@ typedef void CAMetalLayer; - + @@ -11021,10 +11034,14 @@ typedef void CAMetalLayer; - + - - + + + + + + @@ -11229,7 +11246,7 @@ typedef void CAMetalLayer; - + @@ -11254,7 +11271,7 @@ typedef void CAMetalLayer; - + @@ -11479,20 +11496,26 @@ typedef void CAMetalLayer; - - + + - - + + - - + + + + + + + + diff --git a/renderdoc/driver/vulkan/vk_common.h b/renderdoc/driver/vulkan/vk_common.h index 4f3f3d636..4a249f403 100644 --- a/renderdoc/driver/vulkan/vk_common.h +++ b/renderdoc/driver/vulkan/vk_common.h @@ -758,6 +758,7 @@ DECLARE_REFLECTION_STRUCT(VkPhysicalDevice16BitStorageFeatures); DECLARE_REFLECTION_STRUCT(VkPhysicalDevice8BitStorageFeaturesKHR); DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceASTCDecodeFeaturesEXT); DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceBufferDeviceAddressFeaturesEXT); +DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceCoherentMemoryFeaturesAMD); DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceConditionalRenderingFeaturesEXT); DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceConservativeRasterizationPropertiesEXT); DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceDepthClipEnableFeaturesEXT); @@ -807,6 +808,7 @@ DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceShaderDrawParametersFeatures); DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceShaderFloat16Int8FeaturesKHR); DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceShaderImageFootprintFeaturesNV); +DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR); DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceSparseImageFormatInfo2); DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceSubgroupProperties); DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceSubgroupSizeControlFeaturesEXT); @@ -897,7 +899,6 @@ DECLARE_REFLECTION_STRUCT(VkValidationCacheCreateInfoEXT); DECLARE_REFLECTION_STRUCT(VkValidationFeaturesEXT); DECLARE_REFLECTION_STRUCT(VkValidationFlagsEXT); DECLARE_REFLECTION_STRUCT(VkWriteDescriptorSet); -DECLARE_REFLECTION_STRUCT(VkXYColorEXT); DECLARE_DESERIALISE_TYPE(VkAcquireNextImageInfoKHR); DECLARE_DESERIALISE_TYPE(VkApplicationInfo); @@ -1018,6 +1019,7 @@ DECLARE_DESERIALISE_TYPE(VkMultisamplePropertiesEXT); DECLARE_DESERIALISE_TYPE(VkPhysicalDevice16BitStorageFeatures); DECLARE_DESERIALISE_TYPE(VkPhysicalDevice8BitStorageFeaturesKHR); DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceASTCDecodeFeaturesEXT); +DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceCoherentMemoryFeaturesAMD); DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceConditionalRenderingFeaturesEXT); DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceConservativeRasterizationPropertiesEXT); DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceDepthClipEnableFeaturesEXT); @@ -1067,6 +1069,7 @@ DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesE DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceShaderDrawParametersFeatures); DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceShaderFloat16Int8FeaturesKHR); DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceShaderImageFootprintFeaturesNV); +DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR); DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceSparseImageFormatInfo2); DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceSubgroupProperties); DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceSubgroupSizeControlFeaturesEXT); @@ -1230,6 +1233,7 @@ DECLARE_REFLECTION_STRUCT(VkVertexInputAttributeDescription); DECLARE_REFLECTION_STRUCT(VkVertexInputBindingDescription); DECLARE_REFLECTION_STRUCT(VkVertexInputBindingDivisorDescriptionEXT); DECLARE_REFLECTION_STRUCT(VkViewport); +DECLARE_REFLECTION_STRUCT(VkXYColorEXT); DECLARE_DESERIALISE_TYPE(VkDescriptorSetLayoutBinding); DECLARE_DESERIALISE_TYPE(VkPresentRegionKHR); diff --git a/renderdoc/driver/vulkan/vk_core.cpp b/renderdoc/driver/vulkan/vk_core.cpp index b2a4ed7c8..d232f3ee4 100644 --- a/renderdoc/driver/vulkan/vk_core.cpp +++ b/renderdoc/driver/vulkan/vk_core.cpp @@ -591,6 +591,9 @@ static const VkExtensionProperties supportedExtensions[] = { { VK_AMD_BUFFER_MARKER_EXTENSION_NAME, VK_AMD_BUFFER_MARKER_SPEC_VERSION, }, + { + VK_AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME, VK_AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION, + }, { VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME, VK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION, }, @@ -817,6 +820,9 @@ static const VkExtensionProperties supportedExtensions[] = { { VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME, VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION, }, + { + VK_GOOGLE_USER_TYPE_EXTENSION_NAME, VK_GOOGLE_USER_TYPE_SPEC_VERSION, + }, { VK_IMG_FILTER_CUBIC_EXTENSION_NAME, VK_IMG_FILTER_CUBIC_SPEC_VERSION, }, @@ -981,6 +987,10 @@ static const VkExtensionProperties supportedExtensions[] = { { VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME, VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION, }, + { + VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME, + VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION, + }, { VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME, VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION, }, diff --git a/renderdoc/driver/vulkan/vk_next_chains.cpp b/renderdoc/driver/vulkan/vk_next_chains.cpp index cfc0e61dd..8d1de721b 100644 --- a/renderdoc/driver/vulkan/vk_next_chains.cpp +++ b/renderdoc/driver/vulkan/vk_next_chains.cpp @@ -164,6 +164,8 @@ static void AppendModifiedChainedStruct(byte *&tempMem, VkStruct *outputStruct, VkPhysicalDeviceASTCDecodeFeaturesEXT); \ COPY_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT, \ VkPhysicalDeviceBufferDeviceAddressFeaturesEXT); \ + COPY_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD, \ + VkPhysicalDeviceCoherentMemoryFeaturesAMD); \ COPY_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT, \ VkPhysicalDeviceConditionalRenderingFeaturesEXT); \ COPY_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT, \ @@ -257,6 +259,8 @@ static void AppendModifiedChainedStruct(byte *&tempMem, VkStruct *outputStruct, VkPhysicalDeviceShaderDrawParametersFeatures); \ COPY_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV, \ VkPhysicalDeviceShaderImageFootprintFeaturesNV); \ + COPY_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR, \ + VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR) \ COPY_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2, \ VkPhysicalDeviceSparseImageFormatInfo2); \ COPY_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES, \ diff --git a/renderdoc/driver/vulkan/vk_serialise.cpp b/renderdoc/driver/vulkan/vk_serialise.cpp index dc27d59f0..c23ffa012 100644 --- a/renderdoc/driver/vulkan/vk_serialise.cpp +++ b/renderdoc/driver/vulkan/vk_serialise.cpp @@ -421,6 +421,10 @@ SERIALISE_VK_HANDLES(); PNEXT_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES, \ VkPhysicalDeviceShaderDrawParametersFeatures) \ \ + /* VK_AMD_device_coherent_memory */ \ + PNEXT_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD, \ + VkPhysicalDeviceCoherentMemoryFeaturesAMD) \ + \ /* VK_AMD_display_native_hdr */ \ PNEXT_STRUCT(VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD, \ VkSwapchainDisplayNativeHdrCreateInfoAMD) \ @@ -865,6 +869,10 @@ SERIALISE_VK_HANDLES(); PNEXT_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR, \ VkPhysicalDeviceFloatControlsPropertiesKHR) \ \ + /* VK_KHR_shader_subgroup_extended_types */ \ + PNEXT_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR, \ + VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR) \ + \ /* VK_KHR_shared_presentable_image */ \ PNEXT_STRUCT(VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR, \ VkSharedPresentSurfaceCapabilitiesKHR) \ @@ -6291,6 +6299,22 @@ void Deserialise(const VkPhysicalDeviceLineRasterizationPropertiesEXT &el) DeserialiseNext(el.pNext); } +template +void DoSerialise(SerialiserType &ser, VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR &el) +{ + RDCASSERT(ser.IsReading() || + el.sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR); + SerialiseNext(ser, el.sType, el.pNext); + + SERIALISE_MEMBER(shaderSubgroupExtendedTypes); +} + +template <> +void Deserialise(const VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR &el) +{ + DeserialiseNext(el.pNext); +} + template void DoSerialise(SerialiserType &ser, VkPhysicalDeviceMemoryPriorityFeaturesEXT &el) { @@ -7254,11 +7278,28 @@ void Deserialise(const VkConditionalRenderingBeginInfoEXT &el) DeserialiseNext(el.pNext); } +template +void DoSerialise(SerialiserType &ser, VkPhysicalDeviceCoherentMemoryFeaturesAMD &el) +{ + RDCASSERT(ser.IsReading() || + el.sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD); + SerialiseNext(ser, el.sType, el.pNext); + + SERIALISE_MEMBER(deviceCoherentMemory); +} + +template <> +void Deserialise(const VkPhysicalDeviceCoherentMemoryFeaturesAMD &el) +{ + DeserialiseNext(el.pNext); +} + // pNext structs - always have deserialise for the next chain INSTANTIATE_SERIALISE_TYPE(VkAcquireNextImageInfoKHR); INSTANTIATE_SERIALISE_TYPE(VkApplicationInfo); INSTANTIATE_SERIALISE_TYPE(VkAttachmentDescription2KHR); INSTANTIATE_SERIALISE_TYPE(VkAttachmentReference2KHR); +INSTANTIATE_SERIALISE_TYPE(VkAttachmentSampleLocationsEXT); INSTANTIATE_SERIALISE_TYPE(VkBindBufferMemoryDeviceGroupInfo); INSTANTIATE_SERIALISE_TYPE(VkBindBufferMemoryInfo); INSTANTIATE_SERIALISE_TYPE(VkBindImageMemoryDeviceGroupInfo); @@ -7378,6 +7419,7 @@ INSTANTIATE_SERIALISE_TYPE(VkPhysicalDevice16BitStorageFeatures); INSTANTIATE_SERIALISE_TYPE(VkPhysicalDevice8BitStorageFeaturesKHR); INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceASTCDecodeFeaturesEXT); INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceBufferDeviceAddressFeaturesEXT); +INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceCoherentMemoryFeaturesAMD); INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceConditionalRenderingFeaturesEXT); INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceConservativeRasterizationPropertiesEXT); INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceDepthClipEnableFeaturesEXT); @@ -7391,6 +7433,7 @@ INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceExternalFenceInfo); INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceExternalImageFormatInfo); INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceExternalSemaphoreInfo); INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceFeatures2); +INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceFloatControlsPropertiesKHR); INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceFragmentDensityMapFeaturesEXT); INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceFragmentDensityMapPropertiesEXT); INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT); @@ -7424,6 +7467,9 @@ INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceShaderAtomicInt64FeaturesKHR); INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceShaderCorePropertiesAMD); INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT); INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceShaderDrawParametersFeatures); +INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceShaderFloat16Int8FeaturesKHR); +INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceShaderImageFootprintFeaturesNV); +INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR); INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceSparseImageFormatInfo2); INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceSubgroupProperties); INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceSubgroupSizeControlFeaturesEXT); @@ -7501,6 +7547,7 @@ INSTANTIATE_SERIALISE_TYPE(VkSubpassDependency2KHR); INSTANTIATE_SERIALISE_TYPE(VkSubpassDescription2KHR); INSTANTIATE_SERIALISE_TYPE(VkSubpassDescriptionDepthStencilResolveKHR); INSTANTIATE_SERIALISE_TYPE(VkSubpassEndInfoKHR); +INSTANTIATE_SERIALISE_TYPE(VkSubpassSampleLocationsEXT); INSTANTIATE_SERIALISE_TYPE(VkSurfaceCapabilities2EXT); INSTANTIATE_SERIALISE_TYPE(VkSurfaceCapabilities2KHR); INSTANTIATE_SERIALISE_TYPE(VkSurfaceFormat2KHR); @@ -7510,6 +7557,7 @@ INSTANTIATE_SERIALISE_TYPE(VkSwapchainCreateInfoKHR); INSTANTIATE_SERIALISE_TYPE(VkSwapchainDisplayNativeHdrCreateInfoAMD); INSTANTIATE_SERIALISE_TYPE(VkTextureLODGatherFormatPropertiesAMD); INSTANTIATE_SERIALISE_TYPE(VkValidationCacheCreateInfoEXT); +INSTANTIATE_SERIALISE_TYPE(VkValidationFeaturesEXT); INSTANTIATE_SERIALISE_TYPE(VkValidationFlagsEXT); INSTANTIATE_SERIALISE_TYPE(VkWriteDescriptorSet); @@ -7569,6 +7617,7 @@ INSTANTIATE_SERIALISE_TYPE(VkPushConstantRange); INSTANTIATE_SERIALISE_TYPE(VkQueueFamilyProperties); INSTANTIATE_SERIALISE_TYPE(VkRect2D); INSTANTIATE_SERIALISE_TYPE(VkRectLayerKHR); +INSTANTIATE_SERIALISE_TYPE(VkSampleLocationEXT); INSTANTIATE_SERIALISE_TYPE(VkSparseBufferMemoryBindInfo); INSTANTIATE_SERIALISE_TYPE(VkSparseImageFormatProperties); INSTANTIATE_SERIALISE_TYPE(VkSparseImageMemoryBind); diff --git a/renderdoc/driver/vulkan/vk_stringise.cpp b/renderdoc/driver/vulkan/vk_stringise.cpp index 7baea3360..4172df9c0 100644 --- a/renderdoc/driver/vulkan/vk_stringise.cpp +++ b/renderdoc/driver/vulkan/vk_stringise.cpp @@ -637,6 +637,8 @@ rdcstr DoStringise(const VkMemoryPropertyFlagBits &el) STRINGISE_BITFIELD_BIT(VK_MEMORY_PROPERTY_HOST_CACHED_BIT); STRINGISE_BITFIELD_BIT(VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT); STRINGISE_BITFIELD_BIT(VK_MEMORY_PROPERTY_PROTECTED_BIT); + STRINGISE_BITFIELD_BIT(VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD); + STRINGISE_BITFIELD_BIT(VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD); } END_BITFIELD_STRINGISE(); } @@ -1628,6 +1630,7 @@ rdcstr DoStringise(const VkStructureType &el) STRINGISE_ENUM(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT) STRINGISE_ENUM(VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT) STRINGISE_ENUM(VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT) + STRINGISE_ENUM(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR) STRINGISE_ENUM(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR) STRINGISE_ENUM(VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT) STRINGISE_ENUM(VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT) @@ -1676,6 +1679,7 @@ rdcstr DoStringise(const VkStructureType &el) STRINGISE_ENUM(VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT) STRINGISE_ENUM(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT) STRINGISE_ENUM(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD) + STRINGISE_ENUM(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD) STRINGISE_ENUM(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT) STRINGISE_ENUM(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT) STRINGISE_ENUM(VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT) diff --git a/renderdoc/driver/vulkan/wrappers/vk_device_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_device_funcs.cpp index 0de61f21e..9eb0b8de9 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_device_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_device_funcs.cpp @@ -2277,6 +2277,21 @@ bool WrappedVulkan::Serialise_vkCreateDevice(SerialiserType &ser, VkPhysicalDevi CHECK_PHYS_EXT_FEATURE(stippledSmoothLines); } END_PHYS_EXT_CHECK(); + + BEGIN_PHYS_EXT_CHECK( + VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR); + { + CHECK_PHYS_EXT_FEATURE(shaderSubgroupExtendedTypes); + } + END_PHYS_EXT_CHECK(); + + BEGIN_PHYS_EXT_CHECK(VkPhysicalDeviceCoherentMemoryFeaturesAMD, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD); + { + CHECK_PHYS_EXT_FEATURE(deviceCoherentMemory); + } + END_PHYS_EXT_CHECK(); } if(availFeatures.depthClamp)