diff --git a/renderdoc/driver/vulkan/official/vulkan_core.h b/renderdoc/driver/vulkan/official/vulkan_core.h
index 7edfe0a8c..6f77387a0 100644
--- a/renderdoc/driver/vulkan/official/vulkan_core.h
+++ b/renderdoc/driver/vulkan/official/vulkan_core.h
@@ -43,7 +43,7 @@ extern "C" {
#define VK_API_VERSION_1_0 VK_MAKE_VERSION(1, 0, 0)// Patch version should always be set to 0
// Version of this file
-#define VK_HEADER_VERSION 155
+#define VK_HEADER_VERSION 158
// Complete version of this file
#define VK_HEADER_VERSION_COMPLETE VK_MAKE_VERSION(1, 2, VK_HEADER_VERSION)
@@ -462,7 +462,6 @@ typedef enum VkStructureType {
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV = 1000154000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV = 1000154001,
VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000,
- VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002,
VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003,
VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004,
@@ -522,6 +521,7 @@ typedef enum VkStructureType {
VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD = 1000213000,
VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD = 1000213001,
VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR = 1000215000,
VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT = 1000217000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = 1000218000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = 1000218001,
@@ -529,6 +529,11 @@ typedef enum VkStructureType {
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT = 1000225000,
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_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000226000,
+ VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR = 1000226001,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR = 1000226002,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR = 1000226003,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR = 1000226004,
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_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT = 1000234000,
@@ -579,6 +584,9 @@ typedef enum VkStructureType {
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = 1000281001,
VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = 1000282000,
VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM = 1000282001,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT = 1000284000,
+ VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT = 1000284001,
+ VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT = 1000284002,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT = 1000286000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT = 1000286001,
VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT = 1000287000,
@@ -748,6 +756,7 @@ typedef enum VkImageLayout {
VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000,
VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
+ VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV,
VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
@@ -1281,6 +1290,7 @@ typedef enum VkDynamicState {
VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004,
VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006,
VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001,
+ VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR = 1000226000,
VK_DYNAMIC_STATE_LINE_STIPPLE_EXT = 1000259000,
VK_DYNAMIC_STATE_CULL_MODE_EXT = 1000267000,
VK_DYNAMIC_STATE_FRONT_FACE_EXT = 1000267001,
@@ -1492,6 +1502,7 @@ typedef enum VkAccessFlagBits {
VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000,
VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,
VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
+ VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV,
VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
} VkAccessFlagBits;
typedef VkFlags VkAccessFlags;
@@ -1542,6 +1553,7 @@ typedef enum VkFormatFeatureFlagBits {
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000,
VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000,
VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000,
+ VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000,
VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,
@@ -1606,6 +1618,7 @@ typedef enum VkImageUsageFlagBits {
VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00000100,
VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200,
+ VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV,
VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
} VkImageUsageFlagBits;
typedef VkFlags VkImageUsageFlags;
@@ -1678,6 +1691,7 @@ typedef enum VkPipelineStageFlagBits {
VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = 0x00020000,
VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,
VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
+ VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV,
VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
} VkPipelineStageFlagBits;
typedef VkFlags VkPipelineStageFlags;
@@ -7192,6 +7206,96 @@ typedef VkPhysicalDeviceVulkanMemoryModelFeatures VkPhysicalDeviceVulkanMemoryMo
+#define VK_KHR_shader_terminate_invocation 1
+#define VK_KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION 1
+#define VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME "VK_KHR_shader_terminate_invocation"
+typedef struct VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR {
+ VkStructureType sType;
+ void* pNext;
+ VkBool32 shaderTerminateInvocation;
+} VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR;
+
+
+
+#define VK_KHR_fragment_shading_rate 1
+#define VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION 1
+#define VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME "VK_KHR_fragment_shading_rate"
+
+typedef enum VkFragmentShadingRateCombinerOpKHR {
+ VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0,
+ VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1,
+ VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2,
+ VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3,
+ VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4,
+ VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkFragmentShadingRateCombinerOpKHR;
+typedef struct VkFragmentShadingRateAttachmentInfoKHR {
+ VkStructureType sType;
+ const void* pNext;
+ const VkAttachmentReference2* pFragmentShadingRateAttachment;
+ VkExtent2D shadingRateAttachmentTexelSize;
+} VkFragmentShadingRateAttachmentInfoKHR;
+
+typedef struct VkPipelineFragmentShadingRateStateCreateInfoKHR {
+ VkStructureType sType;
+ const void* pNext;
+ VkExtent2D fragmentSize;
+ VkFragmentShadingRateCombinerOpKHR combinerOps[2];
+} VkPipelineFragmentShadingRateStateCreateInfoKHR;
+
+typedef struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR {
+ VkStructureType sType;
+ void* pNext;
+ VkBool32 pipelineFragmentShadingRate;
+ VkBool32 primitiveFragmentShadingRate;
+ VkBool32 attachmentFragmentShadingRate;
+} VkPhysicalDeviceFragmentShadingRateFeaturesKHR;
+
+typedef struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR {
+ VkStructureType sType;
+ void* pNext;
+ VkExtent2D minFragmentShadingRateAttachmentTexelSize;
+ VkExtent2D maxFragmentShadingRateAttachmentTexelSize;
+ uint32_t maxFragmentShadingRateAttachmentTexelSizeAspectRatio;
+ VkBool32 primitiveFragmentShadingRateWithMultipleViewports;
+ VkBool32 layeredShadingRateAttachments;
+ VkBool32 fragmentShadingRateNonTrivialCombinerOps;
+ VkExtent2D maxFragmentSize;
+ uint32_t maxFragmentSizeAspectRatio;
+ uint32_t maxFragmentShadingRateCoverageSamples;
+ VkSampleCountFlagBits maxFragmentShadingRateRasterizationSamples;
+ VkBool32 fragmentShadingRateWithShaderDepthStencilWrites;
+ VkBool32 fragmentShadingRateWithSampleMask;
+ VkBool32 fragmentShadingRateWithShaderSampleMask;
+ VkBool32 fragmentShadingRateWithConservativeRasterization;
+ VkBool32 fragmentShadingRateWithFragmentShaderInterlock;
+ VkBool32 fragmentShadingRateWithCustomSampleLocations;
+ VkBool32 fragmentShadingRateStrictMultiplyCombiner;
+} VkPhysicalDeviceFragmentShadingRatePropertiesKHR;
+
+typedef struct VkPhysicalDeviceFragmentShadingRateKHR {
+ VkStructureType sType;
+ void* pNext;
+ VkSampleCountFlags sampleCounts;
+ VkExtent2D fragmentSize;
+} VkPhysicalDeviceFragmentShadingRateKHR;
+
+typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates);
+typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateKHR)(VkCommandBuffer commandBuffer, const VkExtent2D* pFragmentSize, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceFragmentShadingRatesKHR(
+ VkPhysicalDevice physicalDevice,
+ uint32_t* pFragmentShadingRateCount,
+ VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateKHR(
+ VkCommandBuffer commandBuffer,
+ const VkExtent2D* pFragmentSize,
+ const VkFragmentShadingRateCombinerOpKHR combinerOps[2]);
+#endif
+
+
#define VK_KHR_spirv_1_4 1
#define VK_KHR_SPIRV_1_4_SPEC_VERSION 1
#define VK_KHR_SPIRV_1_4_EXTENSION_NAME "VK_KHR_spirv_1_4"
@@ -10960,6 +11064,51 @@ typedef struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM {
+#define VK_EXT_device_memory_report 1
+#define VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION 1
+#define VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME "VK_EXT_device_memory_report"
+
+typedef enum VkDeviceMemoryReportEventTypeEXT {
+ VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0,
+ VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1,
+ VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2,
+ VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3,
+ VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4,
+ VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
+} VkDeviceMemoryReportEventTypeEXT;
+typedef VkFlags VkDeviceMemoryReportFlagsEXT;
+typedef struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT {
+ VkStructureType sType;
+ void* pNext;
+ VkBool32 deviceMemoryReport;
+} VkPhysicalDeviceDeviceMemoryReportFeaturesEXT;
+
+typedef struct VkDeviceMemoryReportCallbackDataEXT {
+ VkStructureType sType;
+ const void* pNext;
+ VkDeviceMemoryReportFlagsEXT flags;
+ VkDeviceMemoryReportEventTypeEXT type;
+ uint64_t memoryObjectId;
+ VkDeviceSize size;
+ VkObjectType objectType;
+ uint64_t objectHandle;
+ uint32_t heapIndex;
+} VkDeviceMemoryReportCallbackDataEXT;
+
+typedef void (VKAPI_PTR *PFN_vkDeviceMemoryReportCallbackEXT)(
+ const VkDeviceMemoryReportCallbackDataEXT* pCallbackData,
+ void* pUserData);
+
+typedef struct VkDeviceDeviceMemoryReportCreateInfoEXT {
+ VkStructureType sType;
+ const void* pNext;
+ VkDeviceMemoryReportFlagsEXT flags;
+ PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback;
+ void* pUserData;
+} VkDeviceDeviceMemoryReportCreateInfoEXT;
+
+
+
#define VK_EXT_robustness2 1
#define VK_EXT_ROBUSTNESS_2_SPEC_VERSION 1
#define VK_EXT_ROBUSTNESS_2_EXTENSION_NAME "VK_EXT_robustness2"
diff --git a/renderdoc/driver/vulkan/vk.xml b/renderdoc/driver/vulkan/vk.xml
index 5d34bab4a..8e3ad1831 100644
--- a/renderdoc/driver/vulkan/vk.xml
+++ b/renderdoc/driver/vulkan/vk.xml
@@ -53,7 +53,7 @@ branch of the member gitlab server.
-
+
@@ -135,7 +135,7 @@ branch of the member gitlab server.
// Vulkan 1.2 version number
#define VK_API_VERSION_1_2 VK_MAKE_VERSION(1, 2, 0)// Patch version should always be set to 0
// Version of this file
-#define VK_HEADER_VERSION 153
+#define VK_HEADER_VERSION 158
// Complete version of this file
#define VK_HEADER_VERSION_COMPLETE VK_MAKE_VERSION(1, 2, VK_HEADER_VERSION)
@@ -321,6 +321,7 @@ typedef void CAMetalLayer;
typedef VkFlags VkDebugUtilsMessageTypeFlagsEXT;
typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT;
typedef VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT;
+ typedef VkFlags VkDeviceMemoryReportFlagsEXT;
typedef VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT;
typedef VkFlags VkDescriptorBindingFlags;
@@ -531,6 +532,7 @@ typedef void CAMetalLayer;
+
@@ -581,6 +583,7 @@ typedef void CAMetalLayer;
+
Enumerated types in the header, but not used by the API
@@ -637,6 +640,11 @@ typedef void CAMetalLayer;
const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData,
void* pUserData);
+ The PFN_vkDeviceMemoryReportCallbackEXT type is used by the VK_EXT_device_memory_report extension
+ typedef void (VKAPI_PTR *PFN_vkDeviceMemoryReportCallbackEXT)(
+ const VkDeviceMemoryReportCallbackDataEXT* pCallbackData,
+ void* pUserData);
+
Struct types
VkStructureType sType
@@ -3175,6 +3183,29 @@ typedef void CAMetalLayer;
uint32_t objectCount
const VkDebugUtilsObjectNameInfoEXT* pObjects
+
+ VkStructureType sType
+ void* pNext
+ VkBool32 deviceMemoryReport
+
+
+ VkStructureType sType
+ const void* pNext
+ VkDeviceMemoryReportFlagsEXT flags
+ PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback
+ void* pUserData
+
+
+ VkStructureType sType
+ const void* pNext
+ VkDeviceMemoryReportFlagsEXT flags
+ VkDeviceMemoryReportEventTypeEXT type
+ uint64_t memoryObjectId
+ VkDeviceSize size
+ VkObjectType objectType
+ uint64_t objectHandle
+ uint32_t heapIndex
+
VkStructureType sType
const void* pNext
@@ -4855,12 +4886,193 @@ typedef void CAMetalLayer;
void* pNext
VkBool32 robustImageAccess
+
+ VkStructureType sType
+ void* pNext
+ VkBool32 constantAlphaColorBlendFactors
+ VkBool32 events
+ VkBool32 imageViewFormatReinterpretation
+ VkBool32 imageViewFormatSwizzle
+ VkBool32 imageView2DOn3DImage
+ VkBool32 multisampleArrayImage
+ VkBool32 mutableComparisonSamplers
+ VkBool32 pointPolygons
+ VkBool32 samplerMipLodBias
+ VkBool32 separateStencilMaskRef
+ VkBool32 shaderSampleRateInterpolationFunctions
+ VkBool32 tessellationIsolines
+ VkBool32 tessellationPointMode
+ VkBool32 triangleFans
+ VkBool32 vertexAttributeAccessBeyondStride
+
+
+ VkStructureType sType
+ void* pNext
+ uint32_t minVertexInputBindingStrideAlignment
+
VkStructureType sType
void* pNext
VkBool32 formatA4R4G4B4
VkBool32 formatA4B4G4R4
+
+ VkStructureType sType
+ const void* pNext
+ VkDeviceSize srcOffsetSpecified in bytes
+ VkDeviceSize dstOffsetSpecified in bytes
+ VkDeviceSize sizeSpecified in bytes
+
+
+ VkStructureType sType
+ const void* pNext
+ VkImageSubresourceLayers srcSubresource
+ VkOffset3D srcOffsetSpecified in pixels for both compressed and uncompressed images
+ VkImageSubresourceLayers dstSubresource
+ VkOffset3D dstOffsetSpecified in pixels for both compressed and uncompressed images
+ VkExtent3D extentSpecified in pixels for both compressed and uncompressed images
+
+
+ VkStructureType sType
+ const void* pNext
+ VkImageSubresourceLayers srcSubresource
+ VkOffset3D srcOffsets[2]Specified in pixels for both compressed and uncompressed images
+ VkImageSubresourceLayers dstSubresource
+ VkOffset3D dstOffsets[2]Specified in pixels for both compressed and uncompressed images
+
+
+ VkStructureType sType
+ const void* pNext
+ VkDeviceSize bufferOffsetSpecified in bytes
+ uint32_t bufferRowLengthSpecified in texels
+ uint32_t bufferImageHeight
+ VkImageSubresourceLayers imageSubresource
+ VkOffset3D imageOffsetSpecified in pixels for both compressed and uncompressed images
+ VkExtent3D imageExtentSpecified in pixels for both compressed and uncompressed images
+
+
+ VkStructureType sType
+ const void* pNext
+ VkImageSubresourceLayers srcSubresource
+ VkOffset3D srcOffset
+ VkImageSubresourceLayers dstSubresource
+ VkOffset3D dstOffset
+ VkExtent3D extent
+
+
+ VkStructureType sType
+ const void* pNext
+ VkBuffer srcBuffer
+ VkBuffer dstBuffer
+ uint32_t regionCount
+ const VkBufferCopy2KHR* pRegions
+
+
+ VkStructureType sType
+ const void* pNext
+ VkImage srcImage
+ VkImageLayout srcImageLayout
+ VkImage dstImage
+ VkImageLayout dstImageLayout
+ uint32_t regionCount
+ const VkImageCopy2KHR* pRegions
+
+
+ VkStructureType sType
+ const void* pNext
+ VkImage srcImage
+ VkImageLayout srcImageLayout
+ VkImage dstImage
+ VkImageLayout dstImageLayout
+ uint32_t regionCount
+ const VkImageBlit2KHR* pRegions
+ VkFilter filter
+
+
+ VkStructureType sType
+ const void* pNext
+ VkBuffer srcBuffer
+ VkImage dstImage
+ VkImageLayout dstImageLayout
+ uint32_t regionCount
+ const VkBufferImageCopy2KHR* pRegions
+
+
+ VkStructureType sType
+ const void* pNext
+ VkImage srcImage
+ VkImageLayout srcImageLayout
+ VkBuffer dstBuffer
+ uint32_t regionCount
+ const VkBufferImageCopy2KHR* pRegions
+
+
+ VkStructureType sType
+ const void* pNext
+ VkImage srcImage
+ VkImageLayout srcImageLayout
+ VkImage dstImage
+ VkImageLayout dstImageLayout
+ uint32_t regionCount
+ const VkImageResolve2KHR* pRegions
+
+
+ VkStructureType sType
+ void* pNext
+ VkBool32 shaderImageInt64Atomics
+ VkBool32 sparseImageInt64Atomics
+
+
+ VkStructureType sType
+ const void* pNext
+ const VkAttachmentReference2* pFragmentShadingRateAttachment
+ VkExtent2D shadingRateAttachmentTexelSize
+
+
+ VkStructureType sType
+ const void* pNext
+ VkExtent2D fragmentSize
+ VkFragmentShadingRateCombinerOpKHR combinerOps[2]
+
+
+ VkStructureType sType
+ void* pNext
+ VkBool32 pipelineFragmentShadingRate
+ VkBool32 primitiveFragmentShadingRate
+ VkBool32 attachmentFragmentShadingRate
+
+
+ VkStructureType sType
+ void* pNext
+ VkExtent2D minFragmentShadingRateAttachmentTexelSize
+ VkExtent2D maxFragmentShadingRateAttachmentTexelSize
+ uint32_t maxFragmentShadingRateAttachmentTexelSizeAspectRatio
+ VkBool32 primitiveFragmentShadingRateWithMultipleViewports
+ VkBool32 layeredShadingRateAttachments
+ VkBool32 fragmentShadingRateNonTrivialCombinerOps
+ VkExtent2D maxFragmentSize
+ uint32_t maxFragmentSizeAspectRatio
+ uint32_t maxFragmentShadingRateCoverageSamples
+ VkSampleCountFlagBits maxFragmentShadingRateRasterizationSamples
+ VkBool32 fragmentShadingRateWithShaderDepthStencilWrites
+ VkBool32 fragmentShadingRateWithSampleMask
+ VkBool32 fragmentShadingRateWithShaderSampleMask
+ VkBool32 fragmentShadingRateWithConservativeRasterization
+ VkBool32 fragmentShadingRateWithFragmentShaderInterlock
+ VkBool32 fragmentShadingRateWithCustomSampleLocations
+ VkBool32 fragmentShadingRateStrictMultiplyCombiner
+
+
+ VkStructureType sType
+ void* pNext
+ VkSampleCountFlags sampleCounts
+ VkExtent2D fragmentSize
+
+
+ VkStructureTypesType
+ void* pNext
+ VkBool32 shaderTerminateInvocation
+
Vulkan enumerant (token) definitions
@@ -5045,12 +5257,6 @@ typedef void CAMetalLayer;
-
-
-
-
-
-
@@ -5448,6 +5654,12 @@ typedef void CAMetalLayer;
+
+
+
+
+
+
@@ -5749,6 +5961,13 @@ typedef void CAMetalLayer;
+
+
+
+
+
+
+
@@ -6218,6 +6437,13 @@ typedef void CAMetalLayer;
+
+
+
+
+
+
+
@@ -8874,6 +9100,48 @@ typedef void CAMetalLayer;
VkPrivateDataSlotEXT privateDataSlot
uint64_t* pData
+
+ void vkCmdCopyBuffer2KHR
+ VkCommandBuffer commandBuffer
+ const VkCopyBufferInfo2KHR* pCopyBufferInfo
+
+
+ void vkCmdCopyImage2KHR
+ VkCommandBuffer commandBuffer
+ const VkCopyImageInfo2KHR* pCopyImageInfo
+
+
+ void vkCmdBlitImage2KHR
+ VkCommandBuffer commandBuffer
+ const VkBlitImageInfo2KHR* pBlitImageInfo
+
+
+ void vkCmdCopyBufferToImage2KHR
+ VkCommandBuffer commandBuffer
+ const VkCopyBufferToImageInfo2KHR* pCopyBufferToImageInfo
+
+
+ void vkCmdCopyImageToBuffer2KHR
+ VkCommandBuffer commandBuffer
+ const VkCopyImageToBufferInfo2KHR* pCopyImageToBufferInfo
+
+
+ void vkCmdResolveImage2KHR
+ VkCommandBuffer commandBuffer
+ const VkResolveImageInfo2KHR* pResolveImageInfo
+
+
+ void vkCmdSetFragmentShadingRateKHR
+ VkCommandBuffer commandBuffer
+ const VkExtent2D* pFragmentSize
+ const VkFragmentShadingRateCombinerOpKHR combinerOps[2]
+
+
+ VkResult vkGetPhysicalDeviceFragmentShadingRatesKHR
+ VkPhysicalDevice physicalDevice
+ uint32_t* pFragmentShadingRateCount
+ VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates
+
@@ -12004,7 +12272,6 @@ typedef void CAMetalLayer;
-
@@ -12082,10 +12349,14 @@ typedef void CAMetalLayer;
-
+
-
-
+
+
+
+
+
+
@@ -12723,10 +12994,12 @@ typedef void CAMetalLayer;
-
+
-
-
+
+
+
+
@@ -12820,11 +13093,29 @@ typedef void CAMetalLayer;
-
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -12877,10 +13168,12 @@ typedef void CAMetalLayer;
-
+
-
-
+
+
+
+
@@ -13419,10 +13712,19 @@ typedef void CAMetalLayer;
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
@@ -13595,7 +13897,7 @@ typedef void CAMetalLayer;
-
+
@@ -13818,8 +14120,8 @@ typedef void CAMetalLayer;
-
-
+
+
@@ -13830,10 +14132,38 @@ typedef void CAMetalLayer;
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -13942,5 +14272,53 @@ typedef void CAMetalLayer;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/renderdoc/driver/vulkan/vk_dispatch_defs.h b/renderdoc/driver/vulkan/vk_dispatch_defs.h
index 4fac29020..9e8cbae3d 100644
--- a/renderdoc/driver/vulkan/vk_dispatch_defs.h
+++ b/renderdoc/driver/vulkan/vk_dispatch_defs.h
@@ -168,6 +168,9 @@ struct VkInstDispatchTable
PFN_vkGetDisplayModeProperties2KHR GetDisplayModeProperties2KHR;
PFN_vkGetDisplayPlaneCapabilities2KHR GetDisplayPlaneCapabilities2KHR;
+ // VK_KHR_fragment_shading_rate
+ PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR GetPhysicalDeviceFragmentShadingRatesKHR;
+
// VK_EXT_debug_report
PFN_vkCreateDebugReportCallbackEXT CreateDebugReportCallbackEXT;
PFN_vkDestroyDebugReportCallbackEXT DestroyDebugReportCallbackEXT;
@@ -535,6 +538,9 @@ struct VkDevDispatchTable
PFN_vkWaitSemaphoresKHR WaitSemaphoresKHR;
PFN_vkSignalSemaphoreKHR SignalSemaphoreKHR;
+ // VK_KHR_fragment_shading_rate
+ PFN_vkCmdSetFragmentShadingRateKHR CmdSetFragmentShadingRateKHR;
+
// VK_KHR_buffer_device_address
PFN_vkGetBufferDeviceAddressKHR GetBufferDeviceAddressKHR;
PFN_vkGetBufferOpaqueCaptureAddressKHR GetBufferOpaqueCaptureAddressKHR;
@@ -554,6 +560,14 @@ struct VkDevDispatchTable
PFN_vkGetPipelineExecutableStatisticsKHR GetPipelineExecutableStatisticsKHR;
PFN_vkGetPipelineExecutableInternalRepresentationsKHR GetPipelineExecutableInternalRepresentationsKHR;
+ // VK_KHR_copy_commands2
+ PFN_vkCmdCopyBuffer2KHR CmdCopyBuffer2KHR;
+ PFN_vkCmdCopyImage2KHR CmdCopyImage2KHR;
+ PFN_vkCmdCopyBufferToImage2KHR CmdCopyBufferToImage2KHR;
+ PFN_vkCmdCopyImageToBuffer2KHR CmdCopyImageToBuffer2KHR;
+ PFN_vkCmdBlitImage2KHR CmdBlitImage2KHR;
+ PFN_vkCmdResolveImage2KHR CmdResolveImage2KHR;
+
// VK_EXT_debug_marker
PFN_vkDebugMarkerSetObjectTagEXT DebugMarkerSetObjectTagEXT;
PFN_vkDebugMarkerSetObjectNameEXT DebugMarkerSetObjectNameEXT;
diff --git a/renderdoc/driver/vulkan/vk_info.cpp b/renderdoc/driver/vulkan/vk_info.cpp
index a7ea615b2..b6f0eb443 100644
--- a/renderdoc/driver/vulkan/vk_info.cpp
+++ b/renderdoc/driver/vulkan/vk_info.cpp
@@ -45,6 +45,7 @@ VkDynamicState ConvertDynamicState(VulkanDynamicStateIndex idx)
case VkDynamicViewportCoarseSampleOrderNV:
return VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV;
case VkDynamicExclusiveScissorNV: return VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV;
+ case VkDynamicShadingRateKHR: return VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR;
case VkDynamicLineStippleEXT: return VK_DYNAMIC_STATE_LINE_STIPPLE_EXT;
case VkDynamicCullModeEXT: return VK_DYNAMIC_STATE_CULL_MODE_EXT;
case VkDynamicFrontFaceEXT: return VK_DYNAMIC_STATE_FRONT_FACE_EXT;
@@ -88,6 +89,7 @@ VulkanDynamicStateIndex ConvertDynamicState(VkDynamicState state)
case VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV:
return VkDynamicViewportCoarseSampleOrderNV;
case VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV: return VkDynamicExclusiveScissorNV;
+ case VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR: return VkDynamicShadingRateKHR;
case VK_DYNAMIC_STATE_LINE_STIPPLE_EXT: return VkDynamicLineStippleEXT;
case VK_DYNAMIC_STATE_CULL_MODE_EXT: return VkDynamicCullModeEXT;
case VK_DYNAMIC_STATE_FRONT_FACE_EXT: return VkDynamicFrontFaceEXT;
diff --git a/renderdoc/driver/vulkan/vk_info.h b/renderdoc/driver/vulkan/vk_info.h
index 24941e4ba..bf0925837 100644
--- a/renderdoc/driver/vulkan/vk_info.h
+++ b/renderdoc/driver/vulkan/vk_info.h
@@ -49,6 +49,7 @@ enum VulkanDynamicStateIndex
VkDynamicViewportShadingRatePaletteNV,
VkDynamicViewportCoarseSampleOrderNV,
VkDynamicExclusiveScissorNV,
+ VkDynamicShadingRateKHR,
VkDynamicLineStippleEXT,
VkDynamicCullModeEXT,
VkDynamicFrontFaceEXT,
diff --git a/renderdoc/driver/vulkan/vk_next_chains.cpp b/renderdoc/driver/vulkan/vk_next_chains.cpp
index caaf6b570..77261a0d1 100644
--- a/renderdoc/driver/vulkan/vk_next_chains.cpp
+++ b/renderdoc/driver/vulkan/vk_next_chains.cpp
@@ -600,10 +600,11 @@ static void AppendModifiedChainedStruct(byte *&tempMem, VkStruct *outputStruct,
case VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR: \
case VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR: \
case VK_STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR: \
+ case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT: \
case VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV: \
case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD: \
+ case VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT: \
case VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD: \
- case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT: \
case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT: \
case VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV: \
case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV: \
@@ -627,6 +628,7 @@ static void AppendModifiedChainedStruct(byte *&tempMem, VkStruct *outputStruct,
case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV: \
case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV: \
case VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL: \
+ case VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: \
case VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT: \
case VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL: \
case VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL: \
@@ -641,6 +643,7 @@ static void AppendModifiedChainedStruct(byte *&tempMem, VkStruct *outputStruct,
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV: \
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV: \
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV: \
+ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT: \
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV: \
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV: \
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT: \
@@ -663,8 +666,12 @@ static void AppendModifiedChainedStruct(byte *&tempMem, VkStruct *outputStruct,
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD: \
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT: \
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL: \
+ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR: \
+ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR: \
+ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR: \
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV: \
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV: \
+ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR: \
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV: \
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV: \
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT: \
@@ -673,6 +680,7 @@ static void AppendModifiedChainedStruct(byte *&tempMem, VkStruct *outputStruct,
case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV: \
case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV: \
case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV: \
+ case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR: \
case VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR: \
case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD: \
case VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV: \
diff --git a/renderdoc/driver/vulkan/vk_serialise.cpp b/renderdoc/driver/vulkan/vk_serialise.cpp
index 14ca8c160..72a5849ad 100644
--- a/renderdoc/driver/vulkan/vk_serialise.cpp
+++ b/renderdoc/driver/vulkan/vk_serialise.cpp
@@ -1087,13 +1087,18 @@ SERIALISE_VK_HANDLES();
/* VK_AMD_shader_core_properties2 */ \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD) \
\
+ /* VK_EXT_4444_formats */ \
+ PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT) \
+ \
/* VK_EXT_blend_operation_advanced */ \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT) \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT) \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT) \
\
- /* VK_EXT_4444_formats */ \
- PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT) \
+ /* VK_EXT_device_memory_report */ \
+ PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT) \
+ PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT) \
+ PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT) \
\
/* VK_EXT_external_memory_host */ \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT) \
@@ -1109,7 +1114,6 @@ SERIALISE_VK_HANDLES();
\
/* VK_EXT_image_drm_format_modifier */ \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT) \
- PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT) \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT) \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT) \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT) \
@@ -1118,15 +1122,15 @@ SERIALISE_VK_HANDLES();
/* VK_EXT_image_robustness */ \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT) \
\
+ /* VK_EXT_shader_atomic_float */ \
+ PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT) \
+ \
/* VK_EXT_shader_image_atomic_int64 */ \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT) \
\
/* VK_EXT_texture_compression_astc_hdr */ \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT) \
\
- /* VK_EXT_shader_atomic_float */ \
- PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT) \
- \
/* VK_INTEL_performance_query */ \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL) \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL) \
@@ -1154,6 +1158,13 @@ SERIALISE_VK_HANDLES();
/* VK_KHR_deferred_host_operations */ \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR) \
\
+ /* VK_KHR_fragment_shading_rate */ \
+ PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR) \
+ PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR) \
+ PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR) \
+ PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR) \
+ PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR) \
+ \
/* VK_KHR_pipeline_library */ \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR) \
\
@@ -1183,6 +1194,9 @@ SERIALISE_VK_HANDLES();
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR) \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR) \
\
+ /* VK_KHR_shader_terminate_invocation */ \
+ PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR) \
+ \
/* VK_NV_clip_space_w_scaling */ \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV) \
\
diff --git a/renderdoc/driver/vulkan/vk_stringise.cpp b/renderdoc/driver/vulkan/vk_stringise.cpp
index 55888d643..5b58853fb 100644
--- a/renderdoc/driver/vulkan/vk_stringise.cpp
+++ b/renderdoc/driver/vulkan/vk_stringise.cpp
@@ -333,7 +333,8 @@ rdcstr DoStringise(const VkPipelineStageFlagBits &el)
STRINGISE_BITFIELD_BIT(VK_PIPELINE_STAGE_ALL_COMMANDS_BIT);
STRINGISE_BITFIELD_BIT(VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT);
STRINGISE_BITFIELD_BIT(VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT);
- STRINGISE_BITFIELD_BIT(VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV);
+ // aliased to VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV but prefer KHR over NV
+ STRINGISE_BITFIELD_BIT(VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR);
STRINGISE_BITFIELD_BIT(VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR);
STRINGISE_BITFIELD_BIT(VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR);
STRINGISE_BITFIELD_BIT(VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV);
@@ -391,7 +392,8 @@ rdcstr DoStringise(const VkImageUsageFlagBits &el)
STRINGISE_BITFIELD_BIT(VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT);
STRINGISE_BITFIELD_BIT(VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT);
STRINGISE_BITFIELD_BIT(VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT);
- STRINGISE_BITFIELD_BIT(VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV);
+ // aliased to VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV but prefer KHR over NV
+ STRINGISE_BITFIELD_BIT(VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR);
STRINGISE_BITFIELD_BIT(VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT);
}
END_BITFIELD_STRINGISE();
@@ -708,7 +710,8 @@ rdcstr DoStringise(const VkAccessFlagBits &el)
STRINGISE_BITFIELD_BIT(VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT);
STRINGISE_BITFIELD_BIT(VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT);
STRINGISE_BITFIELD_BIT(VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT);
- STRINGISE_BITFIELD_BIT(VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV);
+ // aliased to VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV, but prefer KHR over NV
+ STRINGISE_BITFIELD_BIT(VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR);
STRINGISE_BITFIELD_BIT(VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR);
STRINGISE_BITFIELD_BIT(VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR);
STRINGISE_BITFIELD_BIT(VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT);
@@ -1140,6 +1143,7 @@ rdcstr DoStringise(const VkDynamicState &el)
STRINGISE_ENUM(VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV)
STRINGISE_ENUM(VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV)
STRINGISE_ENUM(VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV)
+ STRINGISE_ENUM(VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR)
STRINGISE_ENUM(VK_DYNAMIC_STATE_LINE_STIPPLE_EXT)
STRINGISE_ENUM(VK_DYNAMIC_STATE_CULL_MODE_EXT)
STRINGISE_ENUM(VK_DYNAMIC_STATE_FRONT_FACE_EXT)
@@ -1422,7 +1426,8 @@ rdcstr DoStringise(const VkImageLayout &el)
STRINGISE_ENUM(VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL)
STRINGISE_ENUM(VK_IMAGE_LAYOUT_PRESENT_SRC_KHR)
STRINGISE_ENUM(VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR)
- STRINGISE_ENUM(VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV)
+ // aliased to VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV but prefer KHR to NV
+ STRINGISE_ENUM(VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR)
STRINGISE_ENUM(VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT)
}
END_ENUM_STRINGISE();
@@ -1746,7 +1751,6 @@ rdcstr DoStringise(const VkStructureType &el)
STRINGISE_ENUM(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV)
STRINGISE_ENUM(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV)
STRINGISE_ENUM(VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT)
- STRINGISE_ENUM(VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT)
STRINGISE_ENUM(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT)
STRINGISE_ENUM(VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT)
STRINGISE_ENUM(VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT)
@@ -2604,6 +2608,34 @@ rdcstr DoStringise(const VkPointClippingBehavior &el)
END_ENUM_STRINGISE();
}
+template <>
+rdcstr DoStringise(const VkFragmentShadingRateCombinerOpKHR &el)
+{
+ BEGIN_ENUM_STRINGISE(VkFragmentShadingRateCombinerOpKHR);
+ {
+ STRINGISE_ENUM(VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR)
+ STRINGISE_ENUM(VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR)
+ STRINGISE_ENUM(VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR)
+ STRINGISE_ENUM(VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR)
+ STRINGISE_ENUM(VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR)
+ }
+ END_ENUM_STRINGISE();
+}
+
+template <>
+rdcstr DoStringise(const VkDeviceMemoryReportEventTypeEXT &el)
+{
+ BEGIN_ENUM_STRINGISE(VkDeviceMemoryReportEventTypeEXT);
+ {
+ STRINGISE_ENUM(VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT)
+ STRINGISE_ENUM(VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT)
+ STRINGISE_ENUM(VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT)
+ STRINGISE_ENUM(VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT)
+ STRINGISE_ENUM(VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT)
+ }
+ END_ENUM_STRINGISE();
+}
+
template <>
rdcstr DoStringise(const VkSemaphoreImportFlagBits &el)
{
@@ -2692,6 +2724,7 @@ rdcstr DoStringise(const VkFormatFeatureFlagBits &el)
STRINGISE_BITFIELD_BIT(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT)
STRINGISE_BITFIELD_BIT(VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR)
STRINGISE_BITFIELD_BIT(VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT)
+ STRINGISE_BITFIELD_BIT(VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR)
}
END_BITFIELD_STRINGISE();
}
diff --git a/util/test/demos/3rdparty/volk/README.md b/util/test/demos/3rdparty/volk/README.md
index 1ba07c9be..7d8617e34 100644
--- a/util/test/demos/3rdparty/volk/README.md
+++ b/util/test/demos/3rdparty/volk/README.md
@@ -1 +1 @@
-volk from https://github.com/zeux/volk at commit da35aa3bc0b601660db9c5c3d153e6e8e96539bc (built against 1.2.155)
+volk from https://github.com/zeux/volk at commit 3e47b23ff02d975054d382eae8cea0a9b7c5d328 (built against 1.2.158)
diff --git a/util/test/demos/3rdparty/volk/volk.c b/util/test/demos/3rdparty/volk/volk.c
index d752e193b..d4ed8f5fc 100644
--- a/util/test/demos/3rdparty/volk/volk.c
+++ b/util/test/demos/3rdparty/volk/volk.c
@@ -256,6 +256,9 @@ static void volkGenLoadInstance(void* context, PFN_vkVoidFunction (*load)(void*,
#if defined(VK_KHR_external_semaphore_capabilities)
vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = (PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)load(context, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");
#endif /* defined(VK_KHR_external_semaphore_capabilities) */
+#if defined(VK_KHR_fragment_shading_rate)
+ vkGetPhysicalDeviceFragmentShadingRatesKHR = (PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR)load(context, "vkGetPhysicalDeviceFragmentShadingRatesKHR");
+#endif /* defined(VK_KHR_fragment_shading_rate) */
#if defined(VK_KHR_get_display_properties2)
vkGetDisplayModeProperties2KHR = (PFN_vkGetDisplayModeProperties2KHR)load(context, "vkGetDisplayModeProperties2KHR");
vkGetDisplayPlaneCapabilities2KHR = (PFN_vkGetDisplayPlaneCapabilities2KHR)load(context, "vkGetDisplayPlaneCapabilities2KHR");
@@ -669,6 +672,9 @@ static void volkGenLoadDevice(void* context, PFN_vkVoidFunction (*load)(void*, c
vkGetSemaphoreWin32HandleKHR = (PFN_vkGetSemaphoreWin32HandleKHR)load(context, "vkGetSemaphoreWin32HandleKHR");
vkImportSemaphoreWin32HandleKHR = (PFN_vkImportSemaphoreWin32HandleKHR)load(context, "vkImportSemaphoreWin32HandleKHR");
#endif /* defined(VK_KHR_external_semaphore_win32) */
+#if defined(VK_KHR_fragment_shading_rate)
+ vkCmdSetFragmentShadingRateKHR = (PFN_vkCmdSetFragmentShadingRateKHR)load(context, "vkCmdSetFragmentShadingRateKHR");
+#endif /* defined(VK_KHR_fragment_shading_rate) */
#if defined(VK_KHR_get_memory_requirements2)
vkGetBufferMemoryRequirements2KHR = (PFN_vkGetBufferMemoryRequirements2KHR)load(context, "vkGetBufferMemoryRequirements2KHR");
vkGetImageMemoryRequirements2KHR = (PFN_vkGetImageMemoryRequirements2KHR)load(context, "vkGetImageMemoryRequirements2KHR");
@@ -1143,6 +1149,9 @@ static void volkGenLoadDeviceTable(struct VolkDeviceTable* table, void* context,
table->vkGetSemaphoreWin32HandleKHR = (PFN_vkGetSemaphoreWin32HandleKHR)load(context, "vkGetSemaphoreWin32HandleKHR");
table->vkImportSemaphoreWin32HandleKHR = (PFN_vkImportSemaphoreWin32HandleKHR)load(context, "vkImportSemaphoreWin32HandleKHR");
#endif /* defined(VK_KHR_external_semaphore_win32) */
+#if defined(VK_KHR_fragment_shading_rate)
+ table->vkCmdSetFragmentShadingRateKHR = (PFN_vkCmdSetFragmentShadingRateKHR)load(context, "vkCmdSetFragmentShadingRateKHR");
+#endif /* defined(VK_KHR_fragment_shading_rate) */
#if defined(VK_KHR_get_memory_requirements2)
table->vkGetBufferMemoryRequirements2KHR = (PFN_vkGetBufferMemoryRequirements2KHR)load(context, "vkGetBufferMemoryRequirements2KHR");
table->vkGetImageMemoryRequirements2KHR = (PFN_vkGetImageMemoryRequirements2KHR)load(context, "vkGetImageMemoryRequirements2KHR");
@@ -1726,6 +1735,10 @@ PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR;
PFN_vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR;
PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR;
#endif /* defined(VK_KHR_external_semaphore_win32) */
+#if defined(VK_KHR_fragment_shading_rate)
+PFN_vkCmdSetFragmentShadingRateKHR vkCmdSetFragmentShadingRateKHR;
+PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR vkGetPhysicalDeviceFragmentShadingRatesKHR;
+#endif /* defined(VK_KHR_fragment_shading_rate) */
#if defined(VK_KHR_get_display_properties2)
PFN_vkGetDisplayModeProperties2KHR vkGetDisplayModeProperties2KHR;
PFN_vkGetDisplayPlaneCapabilities2KHR vkGetDisplayPlaneCapabilities2KHR;
diff --git a/util/test/demos/3rdparty/volk/volk.h b/util/test/demos/3rdparty/volk/volk.h
index adf2f0a54..4fc001bc8 100644
--- a/util/test/demos/3rdparty/volk/volk.h
+++ b/util/test/demos/3rdparty/volk/volk.h
@@ -15,7 +15,7 @@
#endif
/* VOLK_GENERATE_VERSION_DEFINE */
-#define VOLK_HEADER_VERSION 155
+#define VOLK_HEADER_VERSION 158
/* VOLK_GENERATE_VERSION_DEFINE */
#ifndef VK_NO_PROTOTYPES
@@ -467,6 +467,9 @@ struct VolkDeviceTable
PFN_vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR;
PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR;
#endif /* defined(VK_KHR_external_semaphore_win32) */
+#if defined(VK_KHR_fragment_shading_rate)
+ PFN_vkCmdSetFragmentShadingRateKHR vkCmdSetFragmentShadingRateKHR;
+#endif /* defined(VK_KHR_fragment_shading_rate) */
#if defined(VK_KHR_get_memory_requirements2)
PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR;
PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR;
@@ -1042,6 +1045,10 @@ extern PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR;
extern PFN_vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR;
extern PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR;
#endif /* defined(VK_KHR_external_semaphore_win32) */
+#if defined(VK_KHR_fragment_shading_rate)
+extern PFN_vkCmdSetFragmentShadingRateKHR vkCmdSetFragmentShadingRateKHR;
+extern PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR vkGetPhysicalDeviceFragmentShadingRatesKHR;
+#endif /* defined(VK_KHR_fragment_shading_rate) */
#if defined(VK_KHR_get_display_properties2)
extern PFN_vkGetDisplayModeProperties2KHR vkGetDisplayModeProperties2KHR;
extern PFN_vkGetDisplayPlaneCapabilities2KHR vkGetDisplayPlaneCapabilities2KHR;