Implement support for NV diagnostics extensions

* These are treated as read-only, we replay checkpoints but they are for
  aftermath so don't mean anything.
* This allows applications to leave aftermath on, normally this could be
  silently allowed but aftermath affects shader compilation when enabled.
This commit is contained in:
baldurk committed 2026-07-03 16:31:41 +01:00
1 parent 5904abda3a
commit d0e9d73d3c
11 files changed
+308 -51

No files matched your search

+2 -2
View File
@@ -258,6 +258,8 @@ Maintainers can update this file by updating vk.xml in this folder and running `
* `VK_MVK_macos_surface`
* `VK_NV_compute_shader_derivatives`
* `VK_NV_dedicated_allocation`
* `VK_NV_device_diagnostic_checkpoints`
* `VK_NV_device_diagnostics_config`
* `VK_NV_external_memory_capabilities`
* `VK_NV_external_memory_win32`
* `VK_NV_external_memory`
@@ -427,8 +429,6 @@ The portability subset is only relevant on mac, which is not a supported platfor
* `VK_NV_cuda_kernel_launch`
* `VK_NV_dedicated_allocation_image_aliasing`
* `VK_NV_descriptor_pool_overallocation`
* `VK_NV_device_diagnostic_checkpoints`
* `VK_NV_device_diagnostics_config`
* `VK_NV_device_generated_commands_compute`
* `VK_NV_device_generated_commands`
* `VK_NV_displacement_micromap`
+35 -21
View File
@@ -1410,6 +1410,7 @@ enum class VulkanChunk : uint32_t
SetQueueAnnotation,
SetCommandAnnotation,
vkCmdBeginCustomResolveEXT,
vkCmdSetCheckpointNV,
Max,
};
@@ -1503,6 +1504,8 @@ DECLARE_REFLECTION_STRUCT(VkBufferOpaqueCaptureAddressCreateInfo);
DECLARE_REFLECTION_STRUCT(VkBufferUsageFlags2CreateInfo);
DECLARE_REFLECTION_STRUCT(VkBufferViewCreateInfo);
DECLARE_REFLECTION_STRUCT(VkCalibratedTimestampInfoKHR);
DECLARE_REFLECTION_STRUCT(VkCheckpointData2NV);
DECLARE_REFLECTION_STRUCT(VkCheckpointDataNV);
DECLARE_REFLECTION_STRUCT(VkCommandBufferAllocateInfo);
DECLARE_REFLECTION_STRUCT(VkCommandBufferBeginInfo);
DECLARE_REFLECTION_STRUCT(VkCommandBufferInheritanceConditionalRenderingInfoEXT);
@@ -1552,6 +1555,7 @@ DECLARE_REFLECTION_STRUCT(VkDescriptorSetVariableDescriptorCountLayoutSupport)
DECLARE_REFLECTION_STRUCT(VkDescriptorUpdateTemplateCreateInfo);
DECLARE_REFLECTION_STRUCT(VkDeviceBufferMemoryRequirements);
DECLARE_REFLECTION_STRUCT(VkDeviceCreateInfo);
DECLARE_REFLECTION_STRUCT(VkDeviceDiagnosticsConfigCreateInfoNV);
DECLARE_REFLECTION_STRUCT(VkDeviceEventInfoEXT);
DECLARE_REFLECTION_STRUCT(VkDeviceGroupBindSparseInfo);
DECLARE_REFLECTION_STRUCT(VkDeviceGroupCommandBufferBeginInfo);
@@ -1578,8 +1582,8 @@ DECLARE_REFLECTION_STRUCT(VkDisplayPlaneProperties2KHR);
DECLARE_REFLECTION_STRUCT(VkDisplayPowerInfoEXT);
DECLARE_REFLECTION_STRUCT(VkDisplayPresentInfoKHR);
DECLARE_REFLECTION_STRUCT(VkDisplayProperties2KHR);
DECLARE_REFLECTION_STRUCT(VkDrmFormatModifierPropertiesListEXT);
DECLARE_REFLECTION_STRUCT(VkDrmFormatModifierPropertiesList2EXT);
DECLARE_REFLECTION_STRUCT(VkDrmFormatModifierPropertiesListEXT);
DECLARE_REFLECTION_STRUCT(VkEventCreateInfo);
DECLARE_REFLECTION_STRUCT(VkExportFenceCreateInfo);
DECLARE_REFLECTION_STRUCT(VkExportMemoryAllocateInfo);
@@ -1612,10 +1616,10 @@ DECLARE_REFLECTION_STRUCT(VkImageCompressionControlEXT);
DECLARE_REFLECTION_STRUCT(VkImageCompressionPropertiesEXT);
DECLARE_REFLECTION_STRUCT(VkImageCopy2);
DECLARE_REFLECTION_STRUCT(VkImageCreateInfo);
DECLARE_REFLECTION_STRUCT(VkImageFormatListCreateInfo);
DECLARE_REFLECTION_STRUCT(VkImageDrmFormatModifierExplicitCreateInfoEXT);
DECLARE_REFLECTION_STRUCT(VkImageDrmFormatModifierListCreateInfoEXT);
DECLARE_REFLECTION_STRUCT(VkImageDrmFormatModifierPropertiesEXT);
DECLARE_REFLECTION_STRUCT(VkImageFormatListCreateInfo);
DECLARE_REFLECTION_STRUCT(VkImageFormatProperties2);
DECLARE_REFLECTION_STRUCT(VkImageMemoryBarrier);
DECLARE_REFLECTION_STRUCT(VkImageMemoryBarrier2);
@@ -1691,6 +1695,7 @@ DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceDescriptorBufferFeaturesEXT);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceDescriptorBufferPropertiesEXT);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceDescriptorIndexingFeatures)
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceDescriptorIndexingProperties)
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceDiagnosticsConfigFeaturesNV);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceDiscardRectanglePropertiesEXT);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceDriverProperties);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceDynamicRenderingFeatures);
@@ -1709,10 +1714,10 @@ DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceFloatControlsProperties);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceFragmentDensityMap2FeaturesEXT);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceFragmentDensityMap2PropertiesEXT);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceFragmentDensityMapFeaturesEXT);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceFragmentDensityMapPropertiesEXT);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR);
@@ -1740,9 +1745,9 @@ DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceImageViewMinLodFeaturesEXT);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceIndexTypeUint8Features);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceInlineUniformBlockFeatures);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceInlineUniformBlockProperties);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceLayeredApiVulkanPropertiesKHR);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceLayeredApiPropertiesListKHR);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceLayeredApiPropertiesKHR);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceLayeredApiPropertiesListKHR);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceLayeredApiVulkanPropertiesKHR);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceLineRasterizationFeatures);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceLineRasterizationProperties);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceMaintenance3Properties);
@@ -1918,6 +1923,8 @@ DECLARE_REFLECTION_STRUCT(VkPushDescriptorSetInfo)
DECLARE_REFLECTION_STRUCT(VkPushDescriptorSetWithTemplateInfo)
DECLARE_REFLECTION_STRUCT(VkQueryPoolCreateInfo);
DECLARE_REFLECTION_STRUCT(VkQueryPoolPerformanceCreateInfoKHR);
DECLARE_REFLECTION_STRUCT(VkQueueFamilyCheckpointProperties2NV);
DECLARE_REFLECTION_STRUCT(VkQueueFamilyCheckpointPropertiesNV);
DECLARE_REFLECTION_STRUCT(VkQueueFamilyGlobalPriorityProperties);
DECLARE_REFLECTION_STRUCT(VkQueueFamilyOwnershipTransferPropertiesKHR);
DECLARE_REFLECTION_STRUCT(VkQueueFamilyProperties2);
@@ -1929,10 +1936,10 @@ DECLARE_REFLECTION_STRUCT(VkReleaseSwapchainImagesInfoKHR);
DECLARE_REFLECTION_STRUCT(VkRenderingAreaInfo);
DECLARE_REFLECTION_STRUCT(VkRenderingAttachmentInfo);
DECLARE_REFLECTION_STRUCT(VkRenderingAttachmentLocationInfo);
DECLARE_REFLECTION_STRUCT(VkRenderingEndInfoKHR);
DECLARE_REFLECTION_STRUCT(VkRenderingFragmentDensityMapAttachmentInfoEXT);
DECLARE_REFLECTION_STRUCT(VkRenderingFragmentShadingRateAttachmentInfoKHR);
DECLARE_REFLECTION_STRUCT(VkRenderingInfo);
DECLARE_REFLECTION_STRUCT(VkRenderingEndInfoKHR);
DECLARE_REFLECTION_STRUCT(VkRenderingInputAttachmentIndexInfo);
DECLARE_REFLECTION_STRUCT(VkRenderPassAttachmentBeginInfo);
DECLARE_REFLECTION_STRUCT(VkRenderPassBeginInfo);
@@ -2023,6 +2030,7 @@ DECLARE_DESERIALISE_TYPE(VkAttachmentFeedbackLoopInfoEXT);
DECLARE_DESERIALISE_TYPE(VkAttachmentReference2);
DECLARE_DESERIALISE_TYPE(VkAttachmentReferenceStencilLayout);
DECLARE_DESERIALISE_TYPE(VkAttachmentSampleLocationsEXT);
DECLARE_DESERIALISE_TYPE(VkBeginCustomResolveInfoEXT);
DECLARE_DESERIALISE_TYPE(VkBindBufferMemoryDeviceGroupInfo);
DECLARE_DESERIALISE_TYPE(VkBindBufferMemoryInfo);
DECLARE_DESERIALISE_TYPE(VkBindDescriptorBufferEmbeddedSamplersInfoEXT)
@@ -2045,6 +2053,8 @@ DECLARE_DESERIALISE_TYPE(VkBufferOpaqueCaptureAddressCreateInfo);
DECLARE_DESERIALISE_TYPE(VkBufferUsageFlags2CreateInfo);
DECLARE_DESERIALISE_TYPE(VkBufferViewCreateInfo);
DECLARE_DESERIALISE_TYPE(VkCalibratedTimestampInfoKHR);
DECLARE_DESERIALISE_TYPE(VkCheckpointData2NV);
DECLARE_DESERIALISE_TYPE(VkCheckpointDataNV);
DECLARE_DESERIALISE_TYPE(VkCommandBufferAllocateInfo);
DECLARE_DESERIALISE_TYPE(VkCommandBufferBeginInfo);
DECLARE_DESERIALISE_TYPE(VkCommandBufferInheritanceConditionalRenderingInfoEXT);
@@ -2065,7 +2075,6 @@ DECLARE_DESERIALISE_TYPE(VkCopyImageToImageInfo);
DECLARE_DESERIALISE_TYPE(VkCopyImageToMemoryInfo);
DECLARE_DESERIALISE_TYPE(VkCopyMemoryToAccelerationStructureInfoKHR);
DECLARE_DESERIALISE_TYPE(VkCopyMemoryToImageInfo);
DECLARE_DESERIALISE_TYPE(VkBeginCustomResolveInfoEXT);
DECLARE_DESERIALISE_TYPE(VkDebugMarkerMarkerInfoEXT);
DECLARE_DESERIALISE_TYPE(VkDebugMarkerObjectNameInfoEXT);
DECLARE_DESERIALISE_TYPE(VkDebugMarkerObjectTagInfoEXT);
@@ -2094,6 +2103,7 @@ DECLARE_DESERIALISE_TYPE(VkDescriptorSetVariableDescriptorCountLayoutSupport)
DECLARE_DESERIALISE_TYPE(VkDescriptorUpdateTemplateCreateInfo);
DECLARE_DESERIALISE_TYPE(VkDeviceBufferMemoryRequirements);
DECLARE_DESERIALISE_TYPE(VkDeviceCreateInfo);
DECLARE_DESERIALISE_TYPE(VkDeviceDiagnosticsConfigCreateInfoNV);
DECLARE_DESERIALISE_TYPE(VkDeviceEventInfoEXT);
DECLARE_DESERIALISE_TYPE(VkDeviceGroupBindSparseInfo);
DECLARE_DESERIALISE_TYPE(VkDeviceGroupCommandBufferBeginInfo);
@@ -2153,10 +2163,10 @@ DECLARE_DESERIALISE_TYPE(VkImageCompressionControlEXT);
DECLARE_DESERIALISE_TYPE(VkImageCompressionPropertiesEXT);
DECLARE_DESERIALISE_TYPE(VkImageCopy2);
DECLARE_DESERIALISE_TYPE(VkImageCreateInfo);
DECLARE_DESERIALISE_TYPE(VkImageFormatListCreateInfo);
DECLARE_DESERIALISE_TYPE(VkImageDrmFormatModifierExplicitCreateInfoEXT);
DECLARE_DESERIALISE_TYPE(VkImageDrmFormatModifierListCreateInfoEXT);
DECLARE_DESERIALISE_TYPE(VkImageDrmFormatModifierPropertiesEXT);
DECLARE_DESERIALISE_TYPE(VkImageFormatListCreateInfo);
DECLARE_DESERIALISE_TYPE(VkImageFormatProperties2);
DECLARE_DESERIALISE_TYPE(VkImageMemoryBarrier);
DECLARE_DESERIALISE_TYPE(VkImageMemoryBarrier2);
@@ -2228,6 +2238,7 @@ DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceDescriptorBufferFeaturesEXT);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceDescriptorBufferPropertiesEXT);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceDescriptorIndexingFeatures)
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceDescriptorIndexingProperties)
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceDiagnosticsConfigFeaturesNV);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceDiscardRectanglePropertiesEXT);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceDriverProperties);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceDynamicRenderingFeatures);
@@ -2246,10 +2257,10 @@ DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceFloatControlsProperties);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceFragmentDensityMap2FeaturesEXT);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceFragmentDensityMap2PropertiesEXT);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceFragmentDensityMapFeaturesEXT);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceFragmentDensityMapPropertiesEXT);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR);
@@ -2277,9 +2288,9 @@ DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceImageViewMinLodFeaturesEXT);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceIndexTypeUint8Features);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceInlineUniformBlockFeatures);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceInlineUniformBlockProperties);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceLayeredApiVulkanPropertiesKHR);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceLayeredApiPropertiesListKHR);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceLayeredApiPropertiesKHR);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceLayeredApiPropertiesListKHR);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceLayeredApiVulkanPropertiesKHR);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceLineRasterizationFeatures);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceLineRasterizationProperties);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceMaintenance3Properties);
@@ -2417,8 +2428,8 @@ DECLARE_DESERIALISE_TYPE(VkPipelineExecutableInfoKHR);
DECLARE_DESERIALISE_TYPE(VkPipelineExecutableInternalRepresentationKHR);
DECLARE_DESERIALISE_TYPE(VkPipelineExecutablePropertiesKHR);
DECLARE_DESERIALISE_TYPE(VkPipelineExecutableStatisticKHR);
DECLARE_DESERIALISE_TYPE(VkPipelineFragmentShadingRateStateCreateInfoKHR);
DECLARE_DESERIALISE_TYPE(VkPipelineFragmentDensityMapLayeredCreateInfoVALVE);
DECLARE_DESERIALISE_TYPE(VkPipelineFragmentShadingRateStateCreateInfoKHR);
DECLARE_DESERIALISE_TYPE(VkPipelineInfoKHR);
DECLARE_DESERIALISE_TYPE(VkPipelineInputAssemblyStateCreateInfo);
DECLARE_DESERIALISE_TYPE(VkPipelineLayoutCreateInfo);
@@ -2454,6 +2465,8 @@ DECLARE_DESERIALISE_TYPE(VkPushDescriptorSetInfo)
DECLARE_DESERIALISE_TYPE(VkPushDescriptorSetWithTemplateInfo)
DECLARE_DESERIALISE_TYPE(VkQueryPoolCreateInfo);
DECLARE_DESERIALISE_TYPE(VkQueryPoolPerformanceCreateInfoKHR);
DECLARE_DESERIALISE_TYPE(VkQueueFamilyCheckpointProperties2NV);
DECLARE_DESERIALISE_TYPE(VkQueueFamilyCheckpointPropertiesNV);
DECLARE_DESERIALISE_TYPE(VkQueueFamilyGlobalPriorityProperties);
DECLARE_DESERIALISE_TYPE(VkQueueFamilyOwnershipTransferPropertiesKHR);
DECLARE_DESERIALISE_TYPE(VkQueueFamilyProperties2);
@@ -2464,10 +2477,10 @@ DECLARE_DESERIALISE_TYPE(VkReleaseSwapchainImagesInfoKHR);
DECLARE_DESERIALISE_TYPE(VkRenderingAreaInfo);
DECLARE_DESERIALISE_TYPE(VkRenderingAttachmentInfo);
DECLARE_DESERIALISE_TYPE(VkRenderingAttachmentLocationInfo);
DECLARE_DESERIALISE_TYPE(VkRenderingEndInfoKHR);
DECLARE_DESERIALISE_TYPE(VkRenderingFragmentDensityMapAttachmentInfoEXT);
DECLARE_DESERIALISE_TYPE(VkRenderingFragmentShadingRateAttachmentInfoKHR);
DECLARE_DESERIALISE_TYPE(VkRenderingInfo);
DECLARE_DESERIALISE_TYPE(VkRenderingEndInfoKHR);
DECLARE_DESERIALISE_TYPE(VkRenderingInputAttachmentIndexInfo);
DECLARE_DESERIALISE_TYPE(VkRenderPassAttachmentBeginInfo);
DECLARE_DESERIALISE_TYPE(VkRenderPassBeginInfo);
@@ -2756,8 +2769,8 @@ DECLARE_REFLECTION_ENUM(VkChromaLocation);
DECLARE_REFLECTION_ENUM(VkColorComponentFlagBits);
DECLARE_REFLECTION_ENUM(VkColorSpaceKHR);
DECLARE_REFLECTION_ENUM(VkCommandBufferLevel);
DECLARE_REFLECTION_ENUM(VkCommandBufferUsageFlagBits);
DECLARE_REFLECTION_ENUM(VkCommandBufferResetFlagBits);
DECLARE_REFLECTION_ENUM(VkCommandBufferUsageFlagBits);
DECLARE_REFLECTION_ENUM(VkCommandPoolCreateFlagBits);
DECLARE_REFLECTION_ENUM(VkCommandPoolResetFlagBits);
DECLARE_REFLECTION_ENUM(VkCompareOp);
@@ -2777,6 +2790,7 @@ DECLARE_REFLECTION_ENUM(VkDescriptorPoolCreateFlagBits);
DECLARE_REFLECTION_ENUM(VkDescriptorSetLayoutCreateFlagBits);
DECLARE_REFLECTION_ENUM(VkDescriptorType);
DECLARE_REFLECTION_ENUM(VkDescriptorUpdateTemplateType);
DECLARE_REFLECTION_ENUM(VkDeviceDiagnosticsConfigFlagBitsNV);
DECLARE_REFLECTION_ENUM(VkDeviceEventTypeEXT);
DECLARE_REFLECTION_ENUM(VkDeviceGroupPresentModeFlagBitsKHR);
DECLARE_REFLECTION_ENUM(VkDeviceQueueCreateFlagBits);
@@ -2803,11 +2817,11 @@ DECLARE_REFLECTION_ENUM(VkFormatFeatureFlagBits);
DECLARE_REFLECTION_ENUM(VkFormatFeatureFlagBits2);
DECLARE_REFLECTION_ENUM(VkFragmentShadingRateCombinerOpKHR);
DECLARE_REFLECTION_ENUM(VkFramebufferCreateFlagBits);
DECLARE_REFLECTION_ENUM(VkFrontFace);
DECLARE_REFLECTION_ENUM(VkGeometryFlagBitsKHR);
DECLARE_REFLECTION_ENUM(VkGeometryInstanceFlagBitsKHR);
DECLARE_REFLECTION_ENUM(VkGeometryTypeKHR);
DECLARE_REFLECTION_ENUM(VkGraphicsPipelineLibraryFlagBitsEXT);
DECLARE_REFLECTION_ENUM(VkFrontFace);
DECLARE_REFLECTION_ENUM(VkHostImageCopyFlagBits);
DECLARE_REFLECTION_ENUM(VkImageAspectFlagBits);
DECLARE_REFLECTION_ENUM(VkImageCompressionFixedRateFlagBitsEXT);
@@ -2833,8 +2847,8 @@ DECLARE_REFLECTION_ENUM(VkPerformanceCounterDescriptionFlagBitsKHR);
DECLARE_REFLECTION_ENUM(VkPerformanceCounterScopeKHR);
DECLARE_REFLECTION_ENUM(VkPerformanceCounterStorageKHR);
DECLARE_REFLECTION_ENUM(VkPerformanceCounterUnitKHR);
DECLARE_REFLECTION_ENUM(VkPhysicalDeviceType);
DECLARE_REFLECTION_ENUM(VkPhysicalDeviceLayeredApiKHR);
DECLARE_REFLECTION_ENUM(VkPhysicalDeviceType);
DECLARE_REFLECTION_ENUM(VkPipelineBindPoint);
DECLARE_REFLECTION_ENUM(VkPipelineCacheCreateFlagBits);
DECLARE_REFLECTION_ENUM(VkPipelineColorBlendStateCreateFlagBits);
@@ -2856,15 +2870,15 @@ DECLARE_REFLECTION_ENUM(VkPresentModeKHR);
DECLARE_REFLECTION_ENUM(VkPresentScalingFlagBitsKHR);
DECLARE_REFLECTION_ENUM(VkPrimitiveTopology);
DECLARE_REFLECTION_ENUM(VkProvokingVertexModeEXT);
DECLARE_REFLECTION_ENUM(VkRayTracingShaderGroupTypeKHR);
DECLARE_REFLECTION_ENUM(VkRenderingFlagBits);
DECLARE_REFLECTION_ENUM(VkQueryControlFlagBits);
DECLARE_REFLECTION_ENUM(VkQueryPoolCreateFlagBits);
DECLARE_REFLECTION_ENUM(VkQueryPipelineStatisticFlagBits);
DECLARE_REFLECTION_ENUM(VkQueryPoolCreateFlagBits);
DECLARE_REFLECTION_ENUM(VkQueryResultFlagBits);
DECLARE_REFLECTION_ENUM(VkQueryType);
DECLARE_REFLECTION_ENUM(VkQueueFlagBits);
DECLARE_REFLECTION_ENUM(VkQueueGlobalPriority);
DECLARE_REFLECTION_ENUM(VkRayTracingShaderGroupTypeKHR);
DECLARE_REFLECTION_ENUM(VkRenderingFlagBits);
DECLARE_REFLECTION_ENUM(VkRenderPassCreateFlagBits);
DECLARE_REFLECTION_ENUM(VkResolveModeFlagBits);
DECLARE_REFLECTION_ENUM(VkResult);
+11
View File
@@ -2037,6 +2037,14 @@ static const VkExtensionProperties supportedExtensions[] = {
VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME,
VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION,
},
{
VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME,
VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION,
},
{
VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME,
VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION,
},
{
VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME,
VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION,
@@ -4951,6 +4959,9 @@ bool WrappedVulkan::ProcessChunk(ReadSerialiser &ser, VulkanChunk chunk)
return Serialise_SetCommandAnnotation(ser, VK_NULL_HANDLE, rdcstr(), eRENDERDOC_AnnotationMax,
0, RENDERDOC_AnnotationValue());
case VulkanChunk::vkCmdSetCheckpointNV:
return Serialise_vkCmdSetCheckpointNV(ser, VK_NULL_HANDLE, NULL);
// chunks that are reserved but not yet serialised
case VulkanChunk::vkResetCommandPool:
case VulkanChunk::vkCreateDepthTargetView:
+8
View File
@@ -3370,4 +3370,12 @@ public:
// VK_EXT_custom_resolve
IMPLEMENT_FUNCTION_SERIALISED(void, vkCmdBeginCustomResolveEXT, VkCommandBuffer commandBuffer,
const VkBeginCustomResolveInfoEXT *pBeginCustomResolveInfo);
// VK_NV_device_diagnostic_checkpoints
IMPLEMENT_FUNCTION_SERIALISED(void, vkCmdSetCheckpointNV, VkCommandBuffer commandBuffer,
const void *pCheckpointMarker);
void vkGetQueueCheckpointDataNV(VkQueue queue, uint32_t *pCheckpointDataCount,
VkCheckpointDataNV *pCheckpointData);
void vkGetQueueCheckpointData2NV(VkQueue queue, uint32_t *pCheckpointDataCount,
VkCheckpointData2NV *pCheckpointData);
};
+13 -2
View File
@@ -560,7 +560,8 @@
DeclExt(KHR_present_wait2); \
DeclExt(EXT_fragment_density_map_offset); \
DeclExt(EXT_image_drm_format_modifier); \
DeclExt(EXT_custom_resolve);
DeclExt(EXT_custom_resolve); \
DeclExt(NV_device_diagnostic_checkpoints);
// for simplicity and since the check itself is platform agnostic,
// these aren't protected in platform defines
@@ -707,7 +708,8 @@
CheckExt(KHR_present_wait2, VKXX); \
CheckExt(EXT_fragment_density_map_offset, VKXX); \
CheckExt(EXT_image_drm_format_modifier, VKXX); \
CheckExt(EXT_custom_resolve, VKXX);
CheckExt(EXT_custom_resolve, VKXX); \
CheckExt(NV_device_diagnostic_checkpoints, VKXX);
#define HookInitVulkanInstanceExts_PhysDev() \
HookInitExtension(KHR_surface, GetPhysicalDeviceSurfaceSupportKHR); \
@@ -1113,6 +1115,9 @@
HookInitExtension(KHR_present_wait2, WaitForPresent2KHR); \
HookInitExtension(EXT_image_drm_format_modifier, GetImageDrmFormatModifierPropertiesEXT); \
HookInitExtension(EXT_custom_resolve, CmdBeginCustomResolveEXT); \
HookInitExtension(NV_device_diagnostic_checkpoints, CmdSetCheckpointNV); \
HookInitExtension(NV_device_diagnostic_checkpoints, GetQueueCheckpointDataNV); \
HookInitExtension(NV_device_diagnostic_checkpoints, GetQueueCheckpointData2NV); \
HookInitExtension_Device_Win32(); \
HookInitExtension_Device_Linux(); \
HookInitExtension_Device_Android(); \
@@ -2087,6 +2092,12 @@
image, VkImageDrmFormatModifierPropertiesEXT *, pProperties); \
HookDefine2(void, vkCmdBeginCustomResolveEXT, VkCommandBuffer, commandBuffer, \
const VkBeginCustomResolveInfoEXT *, pBeginCustomResolveInfo); \
HookDefine2(void, vkCmdSetCheckpointNV, VkCommandBuffer, commandBuffer, const void *, \
pCheckpointMarker); \
HookDefine3(void, vkGetQueueCheckpointDataNV, VkQueue, queue, uint32_t *, pCheckpointDataCount, \
VkCheckpointDataNV *, pCheckpointData); \
HookDefine3(void, vkGetQueueCheckpointData2NV, VkQueue, queue, uint32_t *, pCheckpointDataCount, \
VkCheckpointData2NV *, pCheckpointData); \
HookDefine_Win32(); \
HookDefine_Linux(); \
HookDefine_Android(); \
+10 -6
View File
@@ -124,6 +124,8 @@ static void AppendModifiedChainedStruct(byte *&tempMem, VkStruct *outputStruct,
VkBufferOpaqueCaptureAddressCreateInfo); \
COPY_STRUCT(VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO, VkBufferUsageFlags2CreateInfo); \
COPY_STRUCT(VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR, VkCalibratedTimestampInfoKHR); \
COPY_STRUCT(VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV, VkCheckpointDataNV); \
COPY_STRUCT(VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV, VkCheckpointData2NV); \
COPY_STRUCT(VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO, VkCommandBufferBeginInfo); \
COPY_STRUCT(VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT, \
VkCommandBufferInheritanceConditionalRenderingInfoEXT); \
@@ -152,6 +154,8 @@ static void AppendModifiedChainedStruct(byte *&tempMem, VkStruct *outputStruct,
COPY_STRUCT(VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT, \
VkDescriptorSetVariableDescriptorCountLayoutSupport); \
COPY_STRUCT(VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO, VkDeviceCreateInfo); \
COPY_STRUCT(VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV, \
VkDeviceDiagnosticsConfigCreateInfoNV); \
COPY_STRUCT(VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO, VkDeviceGroupBindSparseInfo); \
COPY_STRUCT(VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO, \
VkDeviceGroupCommandBufferBeginInfo); \
@@ -295,6 +299,8 @@ static void AppendModifiedChainedStruct(byte *&tempMem, VkStruct *outputStruct,
VkPhysicalDeviceDescriptorIndexingFeatures); \
COPY_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES, \
VkPhysicalDeviceDescriptorIndexingProperties); \
COPY_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV, \
VkPhysicalDeviceDiagnosticsConfigFeaturesNV); \
COPY_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT, \
VkPhysicalDeviceDiscardRectanglePropertiesEXT); \
COPY_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES, \
@@ -709,6 +715,10 @@ static void AppendModifiedChainedStruct(byte *&tempMem, VkStruct *outputStruct,
COPY_STRUCT(VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO, VkQueryPoolCreateInfo); \
COPY_STRUCT(VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR, \
VkQueryPoolPerformanceCreateInfoKHR); \
COPY_STRUCT(VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV, \
VkQueueFamilyCheckpointPropertiesNV); \
COPY_STRUCT(VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV, \
VkQueueFamilyCheckpointProperties2NV); \
COPY_STRUCT(VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES, \
VkQueueFamilyGlobalPriorityProperties); \
COPY_STRUCT(VK_STRUCTURE_TYPE_QUEUE_FAMILY_OWNERSHIP_TRANSFER_PROPERTIES_KHR, \
@@ -1026,8 +1036,6 @@ static void AppendModifiedChainedStruct(byte *&tempMem, VkStruct *outputStruct,
case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA: \
case VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA: \
case VK_STRUCTURE_TYPE_BUILD_PARTITIONED_ACCELERATION_STRUCTURE_INFO_NV: \
case VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV: \
case VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV: \
case VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_CLUSTERS_BOTTOM_LEVEL_INPUT_NV: \
case VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_COMMANDS_INFO_NV: \
case VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_INPUT_INFO_NV: \
@@ -1091,7 +1099,6 @@ static void AppendModifiedChainedStruct(byte *&tempMem, VkStruct *outputStruct,
case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE: \
case VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT: \
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_FAULT_COUNTS_EXT: \
case VK_STRUCTURE_TYPE_DEVICE_FAULT_DEBUG_INFO_KHR: \
case VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT: \
@@ -1280,7 +1287,6 @@ static void AppendModifiedChainedStruct(byte *&tempMem, VkStruct *outputStruct,
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT: \
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_DRM_PROPERTIES_EXT: \
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ELAPSED_TIMER_QUERY_FEATURES_QCOM: \
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV: \
@@ -1470,8 +1476,6 @@ static void AppendModifiedChainedStruct(byte *&tempMem, VkStruct *outputStruct,
case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL: \
case VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR: \
case VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_PER_PARTITION_FEEDBACK_CREATE_INFO_KHR: \
case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV: \
case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV: \
case VK_STRUCTURE_TYPE_QUEUE_FAMILY_DATA_GRAPH_OPTICAL_FLOW_PROPERTIES_ARM: \
case VK_STRUCTURE_TYPE_QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_PROPERTIES_ARM: \
case VK_STRUCTURE_TYPE_QUEUE_FAMILY_DATA_GRAPH_PROPERTIES_ARM: \
+140 -19
View File
@@ -142,6 +142,7 @@ DECL_VKFLAG_EXT(VkDisplayPlaneAlpha, KHR);
DECL_VKFLAG_EMPTY_EXT(VkDisplaySurfaceCreate, KHR);
DECL_VKFLAG_EXT(VkExternalMemoryHandleType, NV);
DECL_VKFLAG_EXT(VkExternalMemoryFeature, NV);
DECL_VKFLAG_EXT(VkDeviceDiagnosticsConfig, NV);
DECL_VKFLAG_EXT(VkIndirectCommandsLayoutUsage, NV);
DECL_VKFLAG_EXT(VkPerformanceCounterDescription, KHR);
DECL_VKFLAG_EMPTY_EXT(VkPipelineCoverageModulationStateCreate, NV);
@@ -1666,6 +1667,21 @@ SERIALISE_VK_HANDLES();
PNEXT_STRUCT(VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV, \
VkDedicatedAllocationBufferCreateInfoNV) \
\
/* VK_NV_device_diagnostic_checkpoints */ \
PNEXT_STRUCT(VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV, VkCheckpointDataNV) \
PNEXT_STRUCT(VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV, \
VkQueueFamilyCheckpointPropertiesNV) \
/* interactions with VK_KHR_synchronization2 */ \
PNEXT_STRUCT(VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV, \
VkQueueFamilyCheckpointProperties2NV) \
PNEXT_STRUCT(VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV, VkCheckpointData2NV) \
\
/* VK_NV_device_diagnostics_config */ \
PNEXT_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV, \
VkPhysicalDeviceDiagnosticsConfigFeaturesNV) \
PNEXT_STRUCT(VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV, \
VkDeviceDiagnosticsConfigCreateInfoNV) \
\
/* VK_NV_external_memory */ \
PNEXT_STRUCT(VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV, VkExportMemoryAllocateInfoNV) \
PNEXT_STRUCT(VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV, \
@@ -2420,17 +2436,6 @@ SERIALISE_VK_HANDLES();
/* VK_NV_descriptor_pool_overallocation */ \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV) \
\
/* VK_NV_device_diagnostic_checkpoints */ \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV) \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV) \
/* interactrions with VK_KHR_synchronization2 */ \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV) \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV) \
\
/* VK_NV_device_diagnostics_config */ \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV) \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV) \
\
/* VK_NV_device_generated_commands */ \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV) \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV) \
@@ -9817,6 +9822,116 @@ void Deserialise(const VkPhysicalDeviceShaderImageFootprintFeaturesNV &el)
DeserialiseNext(el.pNext);
}
template <typename SerialiserType>
void DoSerialise(SerialiserType &ser, VkCheckpointDataNV &el)
{
RDCASSERT(ser.IsReading() || el.sType == VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV);
SerialiseNext(ser, el.sType, el.pNext);
SERIALISE_MEMBER_VKFLAGS(VkPipelineStageFlags, stage);
// don't serialise pointer, treat it entirely as opaque
{
uint64_t ptr = (uint64_t)(uintptr_t)el.pCheckpointMarker;
ser.Serialise("pCheckpointMarker"_lit, ptr);
ser.TypedAs("void *"_lit);
if(ser.IsReading())
el.pCheckpointMarker = (void *)(uintptr_t)ptr;
}
}
template <>
void Deserialise(const VkCheckpointDataNV &el)
{
DeserialiseNext(el.pNext);
}
template <typename SerialiserType>
void DoSerialise(SerialiserType &ser, VkCheckpointData2NV &el)
{
RDCASSERT(ser.IsReading() || el.sType == VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV);
SerialiseNext(ser, el.sType, el.pNext);
SERIALISE_MEMBER_VKFLAGS(VkPipelineStageFlags2, stage);
// don't serialise pointer, treat it entirely as opaque
{
uint64_t ptr = (uint64_t)(uintptr_t)el.pCheckpointMarker;
ser.Serialise("pCheckpointMarker"_lit, ptr);
ser.TypedAs("void *"_lit);
if(ser.IsReading())
el.pCheckpointMarker = (void *)(uintptr_t)ptr;
}
}
template <>
void Deserialise(const VkCheckpointData2NV &el)
{
DeserialiseNext(el.pNext);
}
template <typename SerialiserType>
void DoSerialise(SerialiserType &ser, VkQueueFamilyCheckpointPropertiesNV &el)
{
RDCASSERT(ser.IsReading() || el.sType == VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV);
SerialiseNext(ser, el.sType, el.pNext);
SERIALISE_MEMBER_VKFLAGS(VkPipelineStageFlags, checkpointExecutionStageMask);
}
template <>
void Deserialise(const VkQueueFamilyCheckpointPropertiesNV &el)
{
DeserialiseNext(el.pNext);
}
template <typename SerialiserType>
void DoSerialise(SerialiserType &ser, VkQueueFamilyCheckpointProperties2NV &el)
{
RDCASSERT(ser.IsReading() || el.sType == VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV);
SerialiseNext(ser, el.sType, el.pNext);
SERIALISE_MEMBER_VKFLAGS(VkPipelineStageFlags2, checkpointExecutionStageMask);
}
template <>
void Deserialise(const VkQueueFamilyCheckpointProperties2NV &el)
{
DeserialiseNext(el.pNext);
}
template <typename SerialiserType>
void DoSerialise(SerialiserType &ser, VkPhysicalDeviceDiagnosticsConfigFeaturesNV &el)
{
RDCASSERT(ser.IsReading() ||
el.sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV);
SerialiseNext(ser, el.sType, el.pNext);
SERIALISE_MEMBER(diagnosticsConfig);
}
template <>
void Deserialise(const VkPhysicalDeviceDiagnosticsConfigFeaturesNV &el)
{
DeserialiseNext(el.pNext);
}
template <typename SerialiserType>
void DoSerialise(SerialiserType &ser, VkDeviceDiagnosticsConfigCreateInfoNV &el)
{
RDCASSERT(ser.IsReading() ||
el.sType == VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV);
SerialiseNext(ser, el.sType, el.pNext);
SERIALISE_MEMBER_VKFLAGS(VkDeviceDiagnosticsConfigFlagsNV, flags);
}
template <>
void Deserialise(const VkDeviceDiagnosticsConfigCreateInfoNV &el)
{
DeserialiseNext(el.pNext);
}
template <typename SerialiserType>
void DoSerialise(SerialiserType &ser, VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR &el)
{
@@ -15067,6 +15182,8 @@ INSTANTIATE_SERIALISE_TYPE(VkBufferOpaqueCaptureAddressCreateInfo);
INSTANTIATE_SERIALISE_TYPE(VkBufferUsageFlags2CreateInfo);
INSTANTIATE_SERIALISE_TYPE(VkBufferViewCreateInfo);
INSTANTIATE_SERIALISE_TYPE(VkCalibratedTimestampInfoKHR);
INSTANTIATE_SERIALISE_TYPE(VkCheckpointDataNV);
INSTANTIATE_SERIALISE_TYPE(VkCheckpointData2NV);
INSTANTIATE_SERIALISE_TYPE(VkCommandBufferAllocateInfo);
INSTANTIATE_SERIALISE_TYPE(VkCommandBufferBeginInfo);
INSTANTIATE_SERIALISE_TYPE(VkCommandBufferInheritanceConditionalRenderingInfoEXT);
@@ -15114,6 +15231,7 @@ INSTANTIATE_SERIALISE_TYPE(VkDescriptorSetVariableDescriptorCountLayoutSupport)
INSTANTIATE_SERIALISE_TYPE(VkDescriptorUpdateTemplateCreateInfo);
INSTANTIATE_SERIALISE_TYPE(VkDeviceBufferMemoryRequirements);
INSTANTIATE_SERIALISE_TYPE(VkDeviceCreateInfo);
INSTANTIATE_SERIALISE_TYPE(VkDeviceDiagnosticsConfigCreateInfoNV);
INSTANTIATE_SERIALISE_TYPE(VkDeviceEventInfoEXT);
INSTANTIATE_SERIALISE_TYPE(VkDeviceGroupBindSparseInfo);
INSTANTIATE_SERIALISE_TYPE(VkDeviceGroupCommandBufferBeginInfo);
@@ -15140,10 +15258,10 @@ INSTANTIATE_SERIALISE_TYPE(VkDisplayPlaneProperties2KHR);
INSTANTIATE_SERIALISE_TYPE(VkDisplayPowerInfoEXT);
INSTANTIATE_SERIALISE_TYPE(VkDisplayPresentInfoKHR);
INSTANTIATE_SERIALISE_TYPE(VkDisplayProperties2KHR);
INSTANTIATE_SERIALISE_TYPE(VkDrmFormatModifierPropertiesEXT);
INSTANTIATE_SERIALISE_TYPE(VkDrmFormatModifierProperties2EXT);
INSTANTIATE_SERIALISE_TYPE(VkDrmFormatModifierPropertiesListEXT);
INSTANTIATE_SERIALISE_TYPE(VkDrmFormatModifierPropertiesEXT);
INSTANTIATE_SERIALISE_TYPE(VkDrmFormatModifierPropertiesList2EXT);
INSTANTIATE_SERIALISE_TYPE(VkDrmFormatModifierPropertiesListEXT);
INSTANTIATE_SERIALISE_TYPE(VkEventCreateInfo);
INSTANTIATE_SERIALISE_TYPE(VkExportFenceCreateInfo);
INSTANTIATE_SERIALISE_TYPE(VkExportMemoryAllocateInfo);
@@ -15176,10 +15294,10 @@ INSTANTIATE_SERIALISE_TYPE(VkImageCompressionControlEXT);
INSTANTIATE_SERIALISE_TYPE(VkImageCompressionPropertiesEXT);
INSTANTIATE_SERIALISE_TYPE(VkImageCopy2);
INSTANTIATE_SERIALISE_TYPE(VkImageCreateInfo);
INSTANTIATE_SERIALISE_TYPE(VkImageFormatListCreateInfo);
INSTANTIATE_SERIALISE_TYPE(VkImageDrmFormatModifierExplicitCreateInfoEXT);
INSTANTIATE_SERIALISE_TYPE(VkImageDrmFormatModifierListCreateInfoEXT);
INSTANTIATE_SERIALISE_TYPE(VkImageDrmFormatModifierPropertiesEXT);
INSTANTIATE_SERIALISE_TYPE(VkImageFormatListCreateInfo);
INSTANTIATE_SERIALISE_TYPE(VkImageFormatProperties2);
INSTANTIATE_SERIALISE_TYPE(VkImageMemoryBarrier);
INSTANTIATE_SERIALISE_TYPE(VkImageMemoryBarrier2);
@@ -15254,6 +15372,7 @@ INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceDescriptorBufferFeaturesEXT);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceDescriptorBufferPropertiesEXT);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceDescriptorIndexingFeatures)
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceDescriptorIndexingProperties)
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceDiagnosticsConfigFeaturesNV);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceDiscardRectanglePropertiesEXT);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceDriverProperties);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceDynamicRenderingFeatures);
@@ -15272,11 +15391,11 @@ INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceFloatControlsProperties);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceFragmentDensityMap2FeaturesEXT);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceFragmentDensityMap2PropertiesEXT);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceFragmentDensityMapFeaturesEXT);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceFragmentDensityMapPropertiesEXT);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceFragmentDensityMapPropertiesEXT);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT);
@@ -15302,9 +15421,9 @@ INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceImageViewImageFormatInfoEXT);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceIndexTypeUint8Features);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceInlineUniformBlockFeatures);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceInlineUniformBlockProperties);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceLayeredApiVulkanPropertiesKHR);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceLayeredApiPropertiesListKHR);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceLayeredApiPropertiesKHR);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceLayeredApiPropertiesListKHR);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceLayeredApiVulkanPropertiesKHR);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceLineRasterizationFeatures);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceLineRasterizationProperties);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceMaintenance3Properties);
@@ -15479,6 +15598,8 @@ INSTANTIATE_SERIALISE_TYPE(VkPushDescriptorSetInfo);
INSTANTIATE_SERIALISE_TYPE(VkPushDescriptorSetWithTemplateInfo);
INSTANTIATE_SERIALISE_TYPE(VkQueryPoolCreateInfo);
INSTANTIATE_SERIALISE_TYPE(VkQueryPoolPerformanceCreateInfoKHR);
INSTANTIATE_SERIALISE_TYPE(VkQueueFamilyCheckpointPropertiesNV);
INSTANTIATE_SERIALISE_TYPE(VkQueueFamilyCheckpointProperties2NV);
INSTANTIATE_SERIALISE_TYPE(VkQueueFamilyGlobalPriorityProperties);
INSTANTIATE_SERIALISE_TYPE(VkQueueFamilyOwnershipTransferPropertiesKHR);
INSTANTIATE_SERIALISE_TYPE(VkQueueFamilyProperties2);
+15 -1
View File
@@ -28,7 +28,7 @@
template <>
rdcstr DoStringise(const VulkanChunk &el)
{
RDCCOMPILE_ASSERT((uint32_t)VulkanChunk::Max == 1237, "Chunks changed without updating names");
RDCCOMPILE_ASSERT((uint32_t)VulkanChunk::Max == 1238, "Chunks changed without updating names");
BEGIN_ENUM_STRINGISE(VulkanChunk)
{
@@ -269,6 +269,7 @@ rdcstr DoStringise(const VulkanChunk &el)
STRINGISE_ENUM_CLASS_NAMED(SetCommandAnnotation, "Internal::SetCommandAnnotation");
STRINGISE_ENUM_CLASS_NAMED(SetQueueAnnotation, "Internal::SetQueueAnnotation");
STRINGISE_ENUM_CLASS(vkCmdBeginCustomResolveEXT)
STRINGISE_ENUM_CLASS(vkCmdSetCheckpointNV)
STRINGISE_ENUM_CLASS_NAMED(Max, "Max Chunk");
}
END_ENUM_STRINGISE()
@@ -4816,3 +4817,16 @@ rdcstr DoStringise(const VkImageCompressionFlagBitsEXT &el)
}
END_BITFIELD_STRINGISE();
}
template <>
rdcstr DoStringise(const VkDeviceDiagnosticsConfigFlagBitsNV &el)
{
BEGIN_BITFIELD_STRINGISE(VkDeviceDiagnosticsConfigFlagBitsNV);
{
STRINGISE_BITFIELD_BIT(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV);
STRINGISE_BITFIELD_BIT(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV);
STRINGISE_BITFIELD_BIT(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV);
STRINGISE_BITFIELD_BIT(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV);
}
END_BITFIELD_STRINGISE();
}
@@ -10479,6 +10479,57 @@ void WrappedVulkan::vkCmdBeginCustomResolveEXT(
}
}
template <typename SerialiserType>
bool WrappedVulkan::Serialise_vkCmdSetCheckpointNV(SerialiserType &ser, VkCommandBuffer commandBuffer,
const void *pCheckpointMarker)
{
SERIALISE_ELEMENT(commandBuffer);
SERIALISE_ELEMENT_LOCAL(marker, (uint64_t)(uintptr_t)pCheckpointMarker)
.Important()
.OffsetOrSize()
.Named("pCheckpointMarker")
.TypedAs("void *"_lit);
if(IsReplayingAndReading())
{
m_LastCmdBufferID = GetResID(commandBuffer);
if(IsActiveReplaying(m_State))
{
if(InRerecordRange(m_LastCmdBufferID))
commandBuffer = RerecordCmdBuf(m_LastCmdBufferID);
else
commandBuffer = VK_NULL_HANDLE;
}
if(commandBuffer != VK_NULL_HANDLE)
{
ObjDisp(commandBuffer)->CmdSetCheckpointNV(Unwrap(commandBuffer), (void *)(uintptr_t)marker);
}
}
return true;
}
void WrappedVulkan::vkCmdSetCheckpointNV(VkCommandBuffer commandBuffer, const void *pCheckpointMarker)
{
SCOPED_DBG_SINK();
SERIALISE_TIME_CALL(
ObjDisp(commandBuffer)->CmdSetCheckpointNV(Unwrap(commandBuffer), pCheckpointMarker));
if(IsCaptureMode(m_State))
{
VkResourceRecord *record = GetRecord(commandBuffer);
CACHE_THREAD_SERIALISER();
ser.SetActionChunk();
SCOPED_SERIALISE_CHUNK(VulkanChunk::vkCmdSetCheckpointNV);
Serialise_vkCmdSetCheckpointNV(ser, commandBuffer, pCheckpointMarker);
record->AddChunk(scope.Get(&record->cmdInfo->alloc));
}
}
INSTANTIATE_FUNCTION_SERIALISED(VkResult, vkCreateCommandPool, VkDevice device,
const VkCommandPoolCreateInfo *pCreateInfo,
const VkAllocationCallbacks *, VkCommandPool *pCommandPool);
@@ -10709,3 +10760,6 @@ INSTANTIATE_FUNCTION_SERIALISED(
INSTANTIATE_FUNCTION_SERIALISED(void, vkCmdBeginCustomResolveEXT, VkCommandBuffer commandBuffer,
const VkBeginCustomResolveInfoEXT *pBeginCustomResolveInfo);
INSTANTIATE_FUNCTION_SERIALISED(void, vkCmdSetCheckpointNV, VkCommandBuffer commandBuffer,
const void *pCheckpointMarker);
@@ -3674,6 +3674,13 @@ bool WrappedVulkan::Serialise_vkCreateDevice(SerialiserType &ser, VkPhysicalDevi
CHECK_PHYS_EXT_FEATURE(customResolve);
}
END_PHYS_EXT_CHECK();
BEGIN_PHYS_EXT_CHECK(VkPhysicalDeviceDiagnosticsConfigFeaturesNV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV);
{
CHECK_PHYS_EXT_FEATURE(diagnosticsConfig);
}
END_PHYS_EXT_CHECK();
}
if(availFeatures.depthClamp)
@@ -1508,3 +1508,16 @@ VkResult WrappedVulkan::vkGetImageDrmFormatModifierPropertiesEXT(
return ObjDisp(device)->GetImageDrmFormatModifierPropertiesEXT(Unwrap(device), Unwrap(image),
pProperties);
}
void WrappedVulkan::vkGetQueueCheckpointDataNV(VkQueue queue, uint32_t *pCheckpointDataCount,
VkCheckpointDataNV *pCheckpointData)
{
return ObjDisp(queue)->GetQueueCheckpointDataNV(Unwrap(queue), pCheckpointDataCount,
pCheckpointData);
}
void WrappedVulkan::vkGetQueueCheckpointData2NV(VkQueue queue, uint32_t *pCheckpointDataCount,
VkCheckpointData2NV *pCheckpointData)
{
return ObjDisp(queue)->GetQueueCheckpointData2NV(Unwrap(queue), pCheckpointDataCount,
pCheckpointData);
}