diff --git a/layers/VkLayer_khronos_validation.json.in b/layers/VkLayer_khronos_validation.json.in index ca7aa7a5a23..3dbc8ddd409 100644 --- a/layers/VkLayer_khronos_validation.json.in +++ b/layers/VkLayer_khronos_validation.json.in @@ -4,7 +4,7 @@ "name": "@JSON_LAYER_NAME@", "type": "GLOBAL", "library_path": "@JSON_LIBRARY_PATH@", - "api_version": "1.4.306", + "api_version": "1.4.307", "implementation_version": "1", "description": "Khronos Validation Layer", "introduction": "The main, comprehensive Khronos validation layer.\n\nVulkan is an Explicit API, enabling direct control over how GPUs actually work. By design, minimal error checking is done inside a Vulkan driver. Applications have full control and responsibility for correct operation. Any errors in how Vulkan is used can result in a crash. \n\nThe Khronos Validation Layer can be enabled to assist development by enabling developers to verify their applications correctly use the Vulkan API.", diff --git a/layers/core_checks/cc_descriptor.cpp b/layers/core_checks/cc_descriptor.cpp index 5cc12692769..390b03fdd02 100644 --- a/layers/core_checks/cc_descriptor.cpp +++ b/layers/core_checks/cc_descriptor.cpp @@ -2194,6 +2194,9 @@ bool CoreChecks::VerifyWriteUpdateContents(const vvl::DescriptorSet &dst_set, co } } break; + case VK_DESCRIPTOR_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_NV: + // TODO + break; // KHR acceleration structures don't require memory to be bound manually to them. case VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR: case VK_DESCRIPTOR_TYPE_MUTABLE_EXT: diff --git a/layers/object_tracker/object_tracker_utils.cpp b/layers/object_tracker/object_tracker_utils.cpp index 5141a38453d..68249ac33f5 100644 --- a/layers/object_tracker/object_tracker_utils.cpp +++ b/layers/object_tracker/object_tracker_utils.cpp @@ -303,6 +303,9 @@ bool Device::ValidateDescriptorWrite(VkWriteDescriptorSet const *desc, bool isPu // handled in core check because need to know if using immutable samplers or not case VK_DESCRIPTOR_TYPE_SAMPLER: + // VkWriteDescriptorSetPartitionedAccelerationStructureNV contains no VkObjects to validate + case VK_DESCRIPTOR_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_NV: + // TODO - These need to be checked as well case VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK: case VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV: diff --git a/layers/state_tracker/descriptor_sets.cpp b/layers/state_tracker/descriptor_sets.cpp index eae9f2c595c..00a89d8ded2 100644 --- a/layers/state_tracker/descriptor_sets.cpp +++ b/layers/state_tracker/descriptor_sets.cpp @@ -18,6 +18,7 @@ #include "state_tracker/descriptor_sets.h" #include +#include #include "state_tracker/image_state.h" #include "state_tracker/buffer_state.h" #include "state_tracker/cmd_buffer_state.h" @@ -166,6 +167,9 @@ vvl::DescriptorClass vvl::DescriptorTypeToClass(VkDescriptorType type) { return DescriptorClass::AccelerationStructure; case VK_DESCRIPTOR_TYPE_MUTABLE_EXT: return DescriptorClass::Mutable; + case VK_DESCRIPTOR_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_NV: + // TODO + break; case VK_DESCRIPTOR_TYPE_MAX_ENUM: break; } diff --git a/layers/vulkan/generated/best_practices.cpp b/layers/vulkan/generated/best_practices.cpp index 761d3753191..59290294eb6 100644 --- a/layers/vulkan/generated/best_practices.cpp +++ b/layers/vulkan/generated/best_practices.cpp @@ -2094,6 +2094,22 @@ void BestPractices::PostCallRecordGetFramebufferTilePropertiesQCOM(VkDevice devi bp_state::LogResult(*this, device, record_obj); } +void bp_state::Instance::PostCallRecordGetPhysicalDeviceCooperativeVectorPropertiesNV(VkPhysicalDevice physicalDevice, + uint32_t* pPropertyCount, + VkCooperativeVectorPropertiesNV* pProperties, + const RecordObject& record_obj) { + BaseClass::PostCallRecordGetPhysicalDeviceCooperativeVectorPropertiesNV(physicalDevice, pPropertyCount, pProperties, + record_obj); + bp_state::LogResult(*this, physicalDevice, record_obj); +} + +void BestPractices::PostCallRecordConvertCooperativeVectorMatrixNV(VkDevice device, + const VkConvertCooperativeVectorMatrixInfoNV* pInfo, + const RecordObject& record_obj) { + BaseClass::PostCallRecordConvertCooperativeVectorMatrixNV(device, pInfo, record_obj); + bp_state::LogResult(*this, device, record_obj); +} + void BestPractices::PostCallRecordSetLatencySleepModeNV(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepModeInfoNV* pSleepModeInfo, const RecordObject& record_obj) { diff --git a/layers/vulkan/generated/best_practices_device_methods.h b/layers/vulkan/generated/best_practices_device_methods.h index 511ef0c3d60..abad0da3bfc 100644 --- a/layers/vulkan/generated/best_practices_device_methods.h +++ b/layers/vulkan/generated/best_practices_device_methods.h @@ -702,6 +702,9 @@ void PostCallRecordGetShaderBinaryDataEXT(VkDevice device, VkShaderEXT shader, s void PostCallRecordGetFramebufferTilePropertiesQCOM(VkDevice device, VkFramebuffer framebuffer, uint32_t* pPropertiesCount, VkTilePropertiesQCOM* pProperties, const RecordObject& record_obj) override; +void PostCallRecordConvertCooperativeVectorMatrixNV(VkDevice device, const VkConvertCooperativeVectorMatrixInfoNV* pInfo, + const RecordObject& record_obj) override; + void PostCallRecordSetLatencySleepModeNV(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepModeInfoNV* pSleepModeInfo, const RecordObject& record_obj) override; diff --git a/layers/vulkan/generated/best_practices_instance_methods.h b/layers/vulkan/generated/best_practices_instance_methods.h index 8ce3383dff3..6377e7543cb 100644 --- a/layers/vulkan/generated/best_practices_instance_methods.h +++ b/layers/vulkan/generated/best_practices_instance_methods.h @@ -325,6 +325,10 @@ void PostCallRecordGetPhysicalDeviceOpticalFlowImageFormatsNV(VkPhysicalDevice p VkOpticalFlowImageFormatPropertiesNV* pImageFormatProperties, const RecordObject& record_obj) override; +void PostCallRecordGetPhysicalDeviceCooperativeVectorPropertiesNV(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, + VkCooperativeVectorPropertiesNV* pProperties, + const RecordObject& record_obj) override; + void PostCallRecordGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixFlexibleDimensionsPropertiesNV* pProperties, const RecordObject& record_obj) override; diff --git a/layers/vulkan/generated/chassis.cpp b/layers/vulkan/generated/chassis.cpp index e49b210c9fd..8cae673b3a7 100644 --- a/layers/vulkan/generated/chassis.cpp +++ b/layers/vulkan/generated/chassis.cpp @@ -24728,6 +24728,123 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDynamicRenderingTilePropertiesQCOM(VkDevice de return result; } +VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCooperativeVectorPropertiesNV(VkPhysicalDevice physicalDevice, + uint32_t* pPropertyCount, + VkCooperativeVectorPropertiesNV* pProperties) { + VVL_ZoneScoped; + + auto instance_dispatch = vvl::dispatch::GetData(physicalDevice); + bool skip = false; + ErrorObject error_obj(vvl::Func::vkGetPhysicalDeviceCooperativeVectorPropertiesNV, + VulkanTypedHandle(physicalDevice, kVulkanObjectTypePhysicalDevice)); + { + VVL_ZoneScopedN("PreCallValidate"); + for (const auto& vo : instance_dispatch->object_dispatch) { + skip |= vo->PreCallValidateGetPhysicalDeviceCooperativeVectorPropertiesNV(physicalDevice, pPropertyCount, pProperties, + error_obj); + if (skip) return VK_ERROR_VALIDATION_FAILED_EXT; + } + } + RecordObject record_obj(vvl::Func::vkGetPhysicalDeviceCooperativeVectorPropertiesNV); + { + VVL_ZoneScopedN("PreCallRecord"); + for (auto& vo : instance_dispatch->object_dispatch) { + vo->PreCallRecordGetPhysicalDeviceCooperativeVectorPropertiesNV(physicalDevice, pPropertyCount, pProperties, + record_obj); + } + } + VkResult result; + { + VVL_ZoneScopedN("Dispatch"); + result = instance_dispatch->GetPhysicalDeviceCooperativeVectorPropertiesNV(physicalDevice, pPropertyCount, pProperties); + } + record_obj.result = result; + { + VVL_ZoneScopedN("PostCallRecord"); + for (auto& vo : instance_dispatch->object_dispatch) { + vo->PostCallRecordGetPhysicalDeviceCooperativeVectorPropertiesNV(physicalDevice, pPropertyCount, pProperties, + record_obj); + } + } + return result; +} + +VKAPI_ATTR VkResult VKAPI_CALL ConvertCooperativeVectorMatrixNV(VkDevice device, + const VkConvertCooperativeVectorMatrixInfoNV* pInfo) { + VVL_ZoneScoped; + + auto device_dispatch = vvl::dispatch::GetData(device); + bool skip = false; + ErrorObject error_obj(vvl::Func::vkConvertCooperativeVectorMatrixNV, VulkanTypedHandle(device, kVulkanObjectTypeDevice)); + { + VVL_ZoneScopedN("PreCallValidate"); + for (const auto& vo : device_dispatch->intercept_vectors[InterceptIdPreCallValidateConvertCooperativeVectorMatrixNV]) { + auto lock = vo->ReadLock(); + skip |= vo->PreCallValidateConvertCooperativeVectorMatrixNV(device, pInfo, error_obj); + if (skip) return VK_ERROR_VALIDATION_FAILED_EXT; + } + } + RecordObject record_obj(vvl::Func::vkConvertCooperativeVectorMatrixNV); + { + VVL_ZoneScopedN("PreCallRecord"); + for (auto& vo : device_dispatch->intercept_vectors[InterceptIdPreCallRecordConvertCooperativeVectorMatrixNV]) { + auto lock = vo->WriteLock(); + vo->PreCallRecordConvertCooperativeVectorMatrixNV(device, pInfo, record_obj); + } + } + VkResult result; + { + VVL_ZoneScopedN("Dispatch"); + result = device_dispatch->ConvertCooperativeVectorMatrixNV(device, pInfo); + } + record_obj.result = result; + { + VVL_ZoneScopedN("PostCallRecord"); + for (auto& vo : device_dispatch->intercept_vectors[InterceptIdPostCallRecordConvertCooperativeVectorMatrixNV]) { + auto lock = vo->WriteLock(); + vo->PostCallRecordConvertCooperativeVectorMatrixNV(device, pInfo, record_obj); + } + } + return result; +} + +VKAPI_ATTR void VKAPI_CALL CmdConvertCooperativeVectorMatrixNV(VkCommandBuffer commandBuffer, uint32_t infoCount, + const VkConvertCooperativeVectorMatrixInfoNV* pInfos) { + VVL_ZoneScoped; + + auto device_dispatch = vvl::dispatch::GetData(commandBuffer); + bool skip = false; + ErrorObject error_obj(vvl::Func::vkCmdConvertCooperativeVectorMatrixNV, + VulkanTypedHandle(commandBuffer, kVulkanObjectTypeCommandBuffer)); + { + VVL_ZoneScopedN("PreCallValidate"); + for (const auto& vo : device_dispatch->intercept_vectors[InterceptIdPreCallValidateCmdConvertCooperativeVectorMatrixNV]) { + auto lock = vo->ReadLock(); + skip |= vo->PreCallValidateCmdConvertCooperativeVectorMatrixNV(commandBuffer, infoCount, pInfos, error_obj); + if (skip) return; + } + } + RecordObject record_obj(vvl::Func::vkCmdConvertCooperativeVectorMatrixNV); + { + VVL_ZoneScopedN("PreCallRecord"); + for (auto& vo : device_dispatch->intercept_vectors[InterceptIdPreCallRecordCmdConvertCooperativeVectorMatrixNV]) { + auto lock = vo->WriteLock(); + vo->PreCallRecordCmdConvertCooperativeVectorMatrixNV(commandBuffer, infoCount, pInfos, record_obj); + } + } + { + VVL_ZoneScopedN("Dispatch"); + device_dispatch->CmdConvertCooperativeVectorMatrixNV(commandBuffer, infoCount, pInfos); + } + { + VVL_ZoneScopedN("PostCallRecord"); + for (auto& vo : device_dispatch->intercept_vectors[InterceptIdPostCallRecordCmdConvertCooperativeVectorMatrixNV]) { + auto lock = vo->WriteLock(); + vo->PostCallRecordCmdConvertCooperativeVectorMatrixNV(commandBuffer, infoCount, pInfos, record_obj); + } + } +} + VKAPI_ATTR VkResult VKAPI_CALL SetLatencySleepModeNV(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepModeInfoNV* pSleepModeInfo) { VVL_ZoneScoped; @@ -24989,6 +25106,164 @@ VKAPI_ATTR VkResult VKAPI_CALL GetScreenBufferPropertiesQNX(VkDevice device, con } #endif // VK_USE_PLATFORM_SCREEN_QNX +VKAPI_ATTR void VKAPI_CALL GetClusterAccelerationStructureBuildSizesNV(VkDevice device, + const VkClusterAccelerationStructureInputInfoNV* pInfo, + VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo) { + VVL_ZoneScoped; + + auto device_dispatch = vvl::dispatch::GetData(device); + bool skip = false; + ErrorObject error_obj(vvl::Func::vkGetClusterAccelerationStructureBuildSizesNV, + VulkanTypedHandle(device, kVulkanObjectTypeDevice)); + { + VVL_ZoneScopedN("PreCallValidate"); + for (const auto& vo : + device_dispatch->intercept_vectors[InterceptIdPreCallValidateGetClusterAccelerationStructureBuildSizesNV]) { + auto lock = vo->ReadLock(); + skip |= vo->PreCallValidateGetClusterAccelerationStructureBuildSizesNV(device, pInfo, pSizeInfo, error_obj); + if (skip) return; + } + } + RecordObject record_obj(vvl::Func::vkGetClusterAccelerationStructureBuildSizesNV); + { + VVL_ZoneScopedN("PreCallRecord"); + for (auto& vo : device_dispatch->intercept_vectors[InterceptIdPreCallRecordGetClusterAccelerationStructureBuildSizesNV]) { + auto lock = vo->WriteLock(); + vo->PreCallRecordGetClusterAccelerationStructureBuildSizesNV(device, pInfo, pSizeInfo, record_obj); + } + } + { + VVL_ZoneScopedN("Dispatch"); + device_dispatch->GetClusterAccelerationStructureBuildSizesNV(device, pInfo, pSizeInfo); + } + { + VVL_ZoneScopedN("PostCallRecord"); + for (auto& vo : device_dispatch->intercept_vectors[InterceptIdPostCallRecordGetClusterAccelerationStructureBuildSizesNV]) { + auto lock = vo->WriteLock(); + vo->PostCallRecordGetClusterAccelerationStructureBuildSizesNV(device, pInfo, pSizeInfo, record_obj); + } + } +} + +VKAPI_ATTR void VKAPI_CALL CmdBuildClusterAccelerationStructureIndirectNV( + VkCommandBuffer commandBuffer, const VkClusterAccelerationStructureCommandsInfoNV* pCommandInfos) { + VVL_ZoneScoped; + + auto device_dispatch = vvl::dispatch::GetData(commandBuffer); + bool skip = false; + ErrorObject error_obj(vvl::Func::vkCmdBuildClusterAccelerationStructureIndirectNV, + VulkanTypedHandle(commandBuffer, kVulkanObjectTypeCommandBuffer)); + { + VVL_ZoneScopedN("PreCallValidate"); + for (const auto& vo : + device_dispatch->intercept_vectors[InterceptIdPreCallValidateCmdBuildClusterAccelerationStructureIndirectNV]) { + auto lock = vo->ReadLock(); + skip |= vo->PreCallValidateCmdBuildClusterAccelerationStructureIndirectNV(commandBuffer, pCommandInfos, error_obj); + if (skip) return; + } + } + RecordObject record_obj(vvl::Func::vkCmdBuildClusterAccelerationStructureIndirectNV); + { + VVL_ZoneScopedN("PreCallRecord"); + for (auto& vo : + device_dispatch->intercept_vectors[InterceptIdPreCallRecordCmdBuildClusterAccelerationStructureIndirectNV]) { + auto lock = vo->WriteLock(); + vo->PreCallRecordCmdBuildClusterAccelerationStructureIndirectNV(commandBuffer, pCommandInfos, record_obj); + } + } + { + VVL_ZoneScopedN("Dispatch"); + device_dispatch->CmdBuildClusterAccelerationStructureIndirectNV(commandBuffer, pCommandInfos); + } + { + VVL_ZoneScopedN("PostCallRecord"); + for (auto& vo : + device_dispatch->intercept_vectors[InterceptIdPostCallRecordCmdBuildClusterAccelerationStructureIndirectNV]) { + auto lock = vo->WriteLock(); + vo->PostCallRecordCmdBuildClusterAccelerationStructureIndirectNV(commandBuffer, pCommandInfos, record_obj); + } + } +} + +VKAPI_ATTR void VKAPI_CALL +GetPartitionedAccelerationStructuresBuildSizesNV(VkDevice device, const VkPartitionedAccelerationStructureInstancesInputNV* pInfo, + VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo) { + VVL_ZoneScoped; + + auto device_dispatch = vvl::dispatch::GetData(device); + bool skip = false; + ErrorObject error_obj(vvl::Func::vkGetPartitionedAccelerationStructuresBuildSizesNV, + VulkanTypedHandle(device, kVulkanObjectTypeDevice)); + { + VVL_ZoneScopedN("PreCallValidate"); + for (const auto& vo : + device_dispatch->intercept_vectors[InterceptIdPreCallValidateGetPartitionedAccelerationStructuresBuildSizesNV]) { + auto lock = vo->ReadLock(); + skip |= vo->PreCallValidateGetPartitionedAccelerationStructuresBuildSizesNV(device, pInfo, pSizeInfo, error_obj); + if (skip) return; + } + } + RecordObject record_obj(vvl::Func::vkGetPartitionedAccelerationStructuresBuildSizesNV); + { + VVL_ZoneScopedN("PreCallRecord"); + for (auto& vo : + device_dispatch->intercept_vectors[InterceptIdPreCallRecordGetPartitionedAccelerationStructuresBuildSizesNV]) { + auto lock = vo->WriteLock(); + vo->PreCallRecordGetPartitionedAccelerationStructuresBuildSizesNV(device, pInfo, pSizeInfo, record_obj); + } + } + { + VVL_ZoneScopedN("Dispatch"); + device_dispatch->GetPartitionedAccelerationStructuresBuildSizesNV(device, pInfo, pSizeInfo); + } + { + VVL_ZoneScopedN("PostCallRecord"); + for (auto& vo : + device_dispatch->intercept_vectors[InterceptIdPostCallRecordGetPartitionedAccelerationStructuresBuildSizesNV]) { + auto lock = vo->WriteLock(); + vo->PostCallRecordGetPartitionedAccelerationStructuresBuildSizesNV(device, pInfo, pSizeInfo, record_obj); + } + } +} + +VKAPI_ATTR void VKAPI_CALL CmdBuildPartitionedAccelerationStructuresNV( + VkCommandBuffer commandBuffer, const VkBuildPartitionedAccelerationStructureInfoNV* pBuildInfo) { + VVL_ZoneScoped; + + auto device_dispatch = vvl::dispatch::GetData(commandBuffer); + bool skip = false; + ErrorObject error_obj(vvl::Func::vkCmdBuildPartitionedAccelerationStructuresNV, + VulkanTypedHandle(commandBuffer, kVulkanObjectTypeCommandBuffer)); + { + VVL_ZoneScopedN("PreCallValidate"); + for (const auto& vo : + device_dispatch->intercept_vectors[InterceptIdPreCallValidateCmdBuildPartitionedAccelerationStructuresNV]) { + auto lock = vo->ReadLock(); + skip |= vo->PreCallValidateCmdBuildPartitionedAccelerationStructuresNV(commandBuffer, pBuildInfo, error_obj); + if (skip) return; + } + } + RecordObject record_obj(vvl::Func::vkCmdBuildPartitionedAccelerationStructuresNV); + { + VVL_ZoneScopedN("PreCallRecord"); + for (auto& vo : device_dispatch->intercept_vectors[InterceptIdPreCallRecordCmdBuildPartitionedAccelerationStructuresNV]) { + auto lock = vo->WriteLock(); + vo->PreCallRecordCmdBuildPartitionedAccelerationStructuresNV(commandBuffer, pBuildInfo, record_obj); + } + } + { + VVL_ZoneScopedN("Dispatch"); + device_dispatch->CmdBuildPartitionedAccelerationStructuresNV(commandBuffer, pBuildInfo); + } + { + VVL_ZoneScopedN("PostCallRecord"); + for (auto& vo : device_dispatch->intercept_vectors[InterceptIdPostCallRecordCmdBuildPartitionedAccelerationStructuresNV]) { + auto lock = vo->WriteLock(); + vo->PostCallRecordCmdBuildPartitionedAccelerationStructuresNV(commandBuffer, pBuildInfo, record_obj); + } + } +} + VKAPI_ATTR void VKAPI_CALL GetGeneratedCommandsMemoryRequirementsEXT(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoEXT* pInfo, VkMemoryRequirements2* pMemoryRequirements) { @@ -27195,6 +27470,10 @@ const vvl::unordered_map& GetNameToFuncPtrMap() { {"vkCmdSetDepthClampRangeEXT", {kFuncTypeDev, (void*)CmdSetDepthClampRangeEXT}}, {"vkGetFramebufferTilePropertiesQCOM", {kFuncTypeDev, (void*)GetFramebufferTilePropertiesQCOM}}, {"vkGetDynamicRenderingTilePropertiesQCOM", {kFuncTypeDev, (void*)GetDynamicRenderingTilePropertiesQCOM}}, + {"vkGetPhysicalDeviceCooperativeVectorPropertiesNV", + {kFuncTypePdev, (void*)GetPhysicalDeviceCooperativeVectorPropertiesNV}}, + {"vkConvertCooperativeVectorMatrixNV", {kFuncTypeDev, (void*)ConvertCooperativeVectorMatrixNV}}, + {"vkCmdConvertCooperativeVectorMatrixNV", {kFuncTypeDev, (void*)CmdConvertCooperativeVectorMatrixNV}}, {"vkSetLatencySleepModeNV", {kFuncTypeDev, (void*)SetLatencySleepModeNV}}, {"vkLatencySleepNV", {kFuncTypeDev, (void*)LatencySleepNV}}, {"vkSetLatencyMarkerNV", {kFuncTypeDev, (void*)SetLatencyMarkerNV}}, @@ -27204,6 +27483,11 @@ const vvl::unordered_map& GetNameToFuncPtrMap() { #ifdef VK_USE_PLATFORM_SCREEN_QNX {"vkGetScreenBufferPropertiesQNX", {kFuncTypeDev, (void*)GetScreenBufferPropertiesQNX}}, #endif // VK_USE_PLATFORM_SCREEN_QNX + {"vkGetClusterAccelerationStructureBuildSizesNV", {kFuncTypeDev, (void*)GetClusterAccelerationStructureBuildSizesNV}}, + {"vkCmdBuildClusterAccelerationStructureIndirectNV", {kFuncTypeDev, (void*)CmdBuildClusterAccelerationStructureIndirectNV}}, + {"vkGetPartitionedAccelerationStructuresBuildSizesNV", + {kFuncTypeDev, (void*)GetPartitionedAccelerationStructuresBuildSizesNV}}, + {"vkCmdBuildPartitionedAccelerationStructuresNV", {kFuncTypeDev, (void*)CmdBuildPartitionedAccelerationStructuresNV}}, {"vkGetGeneratedCommandsMemoryRequirementsEXT", {kFuncTypeDev, (void*)GetGeneratedCommandsMemoryRequirementsEXT}}, {"vkCmdPreprocessGeneratedCommandsEXT", {kFuncTypeDev, (void*)CmdPreprocessGeneratedCommandsEXT}}, {"vkCmdExecuteGeneratedCommandsEXT", {kFuncTypeDev, (void*)CmdExecuteGeneratedCommandsEXT}}, diff --git a/layers/vulkan/generated/command_validation.cpp b/layers/vulkan/generated/command_validation.cpp index 861b09a7159..7f4545befdd 100644 --- a/layers/vulkan/generated/command_validation.cpp +++ b/layers/vulkan/generated/command_validation.cpp @@ -3,8 +3,8 @@ /*************************************************************************** * - * Copyright (c) 2021-2024 Valve Corporation - * Copyright (c) 2021-2024 LunarG, Inc. + * Copyright (c) 2021-2025 Valve Corporation + * Copyright (c) 2021-2025 LunarG, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -1801,6 +1801,13 @@ static const vvl::unordered_map kCommandValidationT CMD_SCOPE_BOTH, "kVUIDUndefined", CMD_SCOPE_OUTSIDE, "VUID-vkCmdSetDepthClampRangeEXT-videocoding", }}, +{Func::vkCmdConvertCooperativeVectorMatrixNV, { + "VUID-vkCmdConvertCooperativeVectorMatrixNV-commandBuffer-recording", + nullptr, + VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT, "VUID-vkCmdConvertCooperativeVectorMatrixNV-commandBuffer-cmdpool", + CMD_SCOPE_OUTSIDE, "VUID-vkCmdConvertCooperativeVectorMatrixNV-renderpass", + CMD_SCOPE_OUTSIDE, "VUID-vkCmdConvertCooperativeVectorMatrixNV-videocoding", +}}, {Func::vkCmdSetAttachmentFeedbackLoopEnableEXT, { "VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-commandBuffer-recording", nullptr, @@ -1808,6 +1815,20 @@ static const vvl::unordered_map kCommandValidationT CMD_SCOPE_BOTH, "kVUIDUndefined", CMD_SCOPE_OUTSIDE, "VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-videocoding", }}, +{Func::vkCmdBuildClusterAccelerationStructureIndirectNV, { + "VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-commandBuffer-recording", + nullptr, + VK_QUEUE_COMPUTE_BIT, "VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-commandBuffer-cmdpool", + CMD_SCOPE_OUTSIDE, "VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-renderpass", + CMD_SCOPE_OUTSIDE, "VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-videocoding", +}}, +{Func::vkCmdBuildPartitionedAccelerationStructuresNV, { + "VUID-vkCmdBuildPartitionedAccelerationStructuresNV-commandBuffer-recording", + nullptr, + VK_QUEUE_COMPUTE_BIT, "VUID-vkCmdBuildPartitionedAccelerationStructuresNV-commandBuffer-cmdpool", + CMD_SCOPE_OUTSIDE, "VUID-vkCmdBuildPartitionedAccelerationStructuresNV-renderpass", + CMD_SCOPE_OUTSIDE, "VUID-vkCmdBuildPartitionedAccelerationStructuresNV-videocoding", +}}, {Func::vkCmdPreprocessGeneratedCommandsEXT, { "VUID-vkCmdPreprocessGeneratedCommandsEXT-commandBuffer-recording", "VUID-vkCmdPreprocessGeneratedCommandsEXT-bufferlevel", diff --git a/layers/vulkan/generated/device_features.cpp b/layers/vulkan/generated/device_features.cpp index 248b67b018b..b5826a3e4df 100644 --- a/layers/vulkan/generated/device_features.cpp +++ b/layers/vulkan/generated/device_features.cpp @@ -1343,6 +1343,13 @@ void GetEnabledDeviceFeatures(const VkDeviceCreateInfo *pCreateInfo, DeviceFeatu features->deviceGeneratedComputeCaptureReplay |= enabled->deviceGeneratedComputeCaptureReplay == VK_TRUE; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_LINEAR_SWEPT_SPHERES_FEATURES_NV: { + const VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV *enabled = + reinterpret_cast(pNext); + features->spheres |= enabled->spheres == VK_TRUE; + features->linearSweptSpheres |= enabled->linearSweptSpheres == VK_TRUE; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV: { const VkPhysicalDeviceLinearColorAttachmentFeaturesNV *enabled = reinterpret_cast(pNext); @@ -1492,6 +1499,13 @@ void GetEnabledDeviceFeatures(const VkDeviceCreateInfo *pCreateInfo, DeviceFeatu features->rayTracingInvocationReorder |= enabled->rayTracingInvocationReorder == VK_TRUE; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_VECTOR_FEATURES_NV: { + const VkPhysicalDeviceCooperativeVectorFeaturesNV *enabled = + reinterpret_cast(pNext); + features->cooperativeVector |= enabled->cooperativeVector == VK_TRUE; + features->cooperativeVectorTraining |= enabled->cooperativeVectorTraining == VK_TRUE; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV: { const VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV *enabled = reinterpret_cast(pNext); @@ -1609,6 +1623,18 @@ void GetEnabledDeviceFeatures(const VkDeviceCreateInfo *pCreateInfo, DeviceFeatu features->rayTracingValidation |= enabled->rayTracingValidation == VK_TRUE; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_FEATURES_NV: { + const VkPhysicalDeviceClusterAccelerationStructureFeaturesNV *enabled = + reinterpret_cast(pNext); + features->clusterAccelerationStructure |= enabled->clusterAccelerationStructure == VK_TRUE; + break; + } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_FEATURES_NV: { + const VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV *enabled = + reinterpret_cast(pNext); + features->partitionedAccelerationStructure |= enabled->partitionedAccelerationStructure == VK_TRUE; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT: { const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT *enabled = reinterpret_cast(pNext); diff --git a/layers/vulkan/generated/device_features.h b/layers/vulkan/generated/device_features.h index f8d09fb8fd2..04e002267ad 100644 --- a/layers/vulkan/generated/device_features.h +++ b/layers/vulkan/generated/device_features.h @@ -86,6 +86,8 @@ struct DeviceFeatures { bool bufferDeviceAddressEXT; // VkPhysicalDeviceBufferDeviceAddressFeaturesEXT bool bufferDeviceAddressMultiDeviceEXT; + // VkPhysicalDeviceClusterAccelerationStructureFeaturesNV + bool clusterAccelerationStructure; // VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI bool clustercullingShader; // VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI @@ -124,6 +126,10 @@ struct DeviceFeatures { bool cooperativeMatrix; // VkPhysicalDeviceCooperativeMatrixFeaturesKHR, VkPhysicalDeviceCooperativeMatrixFeaturesNV bool cooperativeMatrixRobustBufferAccess; + // VkPhysicalDeviceCooperativeVectorFeaturesNV + bool cooperativeVector; + // VkPhysicalDeviceCooperativeVectorFeaturesNV + bool cooperativeVectorTraining; // VkPhysicalDeviceCopyMemoryIndirectFeaturesNV bool indirectCopy; // VkPhysicalDeviceCornerSampledImageFeaturesNV @@ -588,6 +594,8 @@ struct DeviceFeatures { bool opticalFlow; // VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT bool pageableDeviceLocalMemory; + // VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV + bool partitionedAccelerationStructure; // VkPhysicalDevicePerStageDescriptorSetFeaturesNV bool dynamicPipelineLayout; // VkPhysicalDevicePerStageDescriptorSetFeaturesNV @@ -682,6 +690,10 @@ struct DeviceFeatures { bool rayQuery; // VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV bool rayTracingInvocationReorder; + // VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV + bool linearSweptSpheres; + // VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV + bool spheres; // VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR bool rayTracingMaintenance1; // VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR diff --git a/layers/vulkan/generated/dispatch_functions.h b/layers/vulkan/generated/dispatch_functions.h index 02eaf8f73a1..3817028a6c3 100644 --- a/layers/vulkan/generated/dispatch_functions.h +++ b/layers/vulkan/generated/dispatch_functions.h @@ -4094,6 +4094,25 @@ static inline VkResult DispatchGetDynamicRenderingTilePropertiesQCOM(VkDevice de return dispatch->GetDynamicRenderingTilePropertiesQCOM(device, pRenderingInfo, pProperties); } +static inline VkResult DispatchGetPhysicalDeviceCooperativeVectorPropertiesNV(VkPhysicalDevice physicalDevice, + uint32_t* pPropertyCount, + VkCooperativeVectorPropertiesNV* pProperties) { + auto dispatch = vvl::dispatch::GetData(physicalDevice); + return dispatch->GetPhysicalDeviceCooperativeVectorPropertiesNV(physicalDevice, pPropertyCount, pProperties); +} + +static inline VkResult DispatchConvertCooperativeVectorMatrixNV(VkDevice device, + const VkConvertCooperativeVectorMatrixInfoNV* pInfo) { + auto dispatch = vvl::dispatch::GetData(device); + return dispatch->ConvertCooperativeVectorMatrixNV(device, pInfo); +} + +static inline void DispatchCmdConvertCooperativeVectorMatrixNV(VkCommandBuffer commandBuffer, uint32_t infoCount, + const VkConvertCooperativeVectorMatrixInfoNV* pInfos) { + auto dispatch = vvl::dispatch::GetData(commandBuffer); + dispatch->CmdConvertCooperativeVectorMatrixNV(commandBuffer, infoCount, pInfos); +} + static inline VkResult DispatchSetLatencySleepModeNV(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepModeInfoNV* pSleepModeInfo) { auto dispatch = vvl::dispatch::GetData(device); @@ -4135,6 +4154,32 @@ static inline VkResult DispatchGetScreenBufferPropertiesQNX(VkDevice device, con } #endif // VK_USE_PLATFORM_SCREEN_QNX +static inline void DispatchGetClusterAccelerationStructureBuildSizesNV(VkDevice device, + const VkClusterAccelerationStructureInputInfoNV* pInfo, + VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo) { + auto dispatch = vvl::dispatch::GetData(device); + dispatch->GetClusterAccelerationStructureBuildSizesNV(device, pInfo, pSizeInfo); +} + +static inline void DispatchCmdBuildClusterAccelerationStructureIndirectNV( + VkCommandBuffer commandBuffer, const VkClusterAccelerationStructureCommandsInfoNV* pCommandInfos) { + auto dispatch = vvl::dispatch::GetData(commandBuffer); + dispatch->CmdBuildClusterAccelerationStructureIndirectNV(commandBuffer, pCommandInfos); +} + +static inline void DispatchGetPartitionedAccelerationStructuresBuildSizesNV( + VkDevice device, const VkPartitionedAccelerationStructureInstancesInputNV* pInfo, + VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo) { + auto dispatch = vvl::dispatch::GetData(device); + dispatch->GetPartitionedAccelerationStructuresBuildSizesNV(device, pInfo, pSizeInfo); +} + +static inline void DispatchCmdBuildPartitionedAccelerationStructuresNV( + VkCommandBuffer commandBuffer, const VkBuildPartitionedAccelerationStructureInfoNV* pBuildInfo) { + auto dispatch = vvl::dispatch::GetData(commandBuffer); + dispatch->CmdBuildPartitionedAccelerationStructuresNV(commandBuffer, pBuildInfo); +} + static inline void DispatchGetGeneratedCommandsMemoryRequirementsEXT(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoEXT* pInfo, VkMemoryRequirements2* pMemoryRequirements) { diff --git a/layers/vulkan/generated/dispatch_object.cpp b/layers/vulkan/generated/dispatch_object.cpp index b27be382529..cc85670b2db 100644 --- a/layers/vulkan/generated/dispatch_object.cpp +++ b/layers/vulkan/generated/dispatch_object.cpp @@ -8033,6 +8033,25 @@ VkResult Device::GetDynamicRenderingTilePropertiesQCOM(VkDevice device, const Vk return result; } +VkResult Instance::GetPhysicalDeviceCooperativeVectorPropertiesNV(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, + VkCooperativeVectorPropertiesNV* pProperties) { + VkResult result = + instance_dispatch_table.GetPhysicalDeviceCooperativeVectorPropertiesNV(physicalDevice, pPropertyCount, pProperties); + + return result; +} + +VkResult Device::ConvertCooperativeVectorMatrixNV(VkDevice device, const VkConvertCooperativeVectorMatrixInfoNV* pInfo) { + VkResult result = device_dispatch_table.ConvertCooperativeVectorMatrixNV(device, pInfo); + + return result; +} + +void Device::CmdConvertCooperativeVectorMatrixNV(VkCommandBuffer commandBuffer, uint32_t infoCount, + const VkConvertCooperativeVectorMatrixInfoNV* pInfos) { + device_dispatch_table.CmdConvertCooperativeVectorMatrixNV(commandBuffer, infoCount, pInfos); +} + VkResult Device::SetLatencySleepModeNV(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepModeInfoNV* pSleepModeInfo) { if (!wrap_handles) return device_dispatch_table.SetLatencySleepModeNV(device, swapchain, pSleepModeInfo); { swapchain = Unwrap(swapchain); } @@ -8090,6 +8109,27 @@ VkResult Device::GetScreenBufferPropertiesQNX(VkDevice device, const struct _scr } #endif // VK_USE_PLATFORM_SCREEN_QNX +void Device::GetClusterAccelerationStructureBuildSizesNV(VkDevice device, const VkClusterAccelerationStructureInputInfoNV* pInfo, + VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo) { + device_dispatch_table.GetClusterAccelerationStructureBuildSizesNV(device, pInfo, pSizeInfo); +} + +void Device::CmdBuildClusterAccelerationStructureIndirectNV(VkCommandBuffer commandBuffer, + const VkClusterAccelerationStructureCommandsInfoNV* pCommandInfos) { + device_dispatch_table.CmdBuildClusterAccelerationStructureIndirectNV(commandBuffer, pCommandInfos); +} + +void Device::GetPartitionedAccelerationStructuresBuildSizesNV(VkDevice device, + const VkPartitionedAccelerationStructureInstancesInputNV* pInfo, + VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo) { + device_dispatch_table.GetPartitionedAccelerationStructuresBuildSizesNV(device, pInfo, pSizeInfo); +} + +void Device::CmdBuildPartitionedAccelerationStructuresNV(VkCommandBuffer commandBuffer, + const VkBuildPartitionedAccelerationStructureInfoNV* pBuildInfo) { + device_dispatch_table.CmdBuildPartitionedAccelerationStructuresNV(commandBuffer, pBuildInfo); +} + void Device::GetGeneratedCommandsMemoryRequirementsEXT(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoEXT* pInfo, VkMemoryRequirements2* pMemoryRequirements) { if (!wrap_handles) return device_dispatch_table.GetGeneratedCommandsMemoryRequirementsEXT(device, pInfo, pMemoryRequirements); diff --git a/layers/vulkan/generated/dispatch_object_device_methods.h b/layers/vulkan/generated/dispatch_object_device_methods.h index 540f6423040..75c41574ef0 100644 --- a/layers/vulkan/generated/dispatch_object_device_methods.h +++ b/layers/vulkan/generated/dispatch_object_device_methods.h @@ -893,6 +893,9 @@ VkResult GetFramebufferTilePropertiesQCOM(VkDevice device, VkFramebuffer framebu VkTilePropertiesQCOM* pProperties); VkResult GetDynamicRenderingTilePropertiesQCOM(VkDevice device, const VkRenderingInfo* pRenderingInfo, VkTilePropertiesQCOM* pProperties); +VkResult ConvertCooperativeVectorMatrixNV(VkDevice device, const VkConvertCooperativeVectorMatrixInfoNV* pInfo); +void CmdConvertCooperativeVectorMatrixNV(VkCommandBuffer commandBuffer, uint32_t infoCount, + const VkConvertCooperativeVectorMatrixInfoNV* pInfos); VkResult SetLatencySleepModeNV(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepModeInfoNV* pSleepModeInfo); VkResult LatencySleepNV(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepInfoNV* pSleepInfo); void SetLatencyMarkerNV(VkDevice device, VkSwapchainKHR swapchain, const VkSetLatencyMarkerInfoNV* pLatencyMarkerInfo); @@ -903,6 +906,15 @@ void CmdSetAttachmentFeedbackLoopEnableEXT(VkCommandBuffer commandBuffer, VkImag VkResult GetScreenBufferPropertiesQNX(VkDevice device, const struct _screen_buffer* buffer, VkScreenBufferPropertiesQNX* pProperties); #endif // VK_USE_PLATFORM_SCREEN_QNX +void GetClusterAccelerationStructureBuildSizesNV(VkDevice device, const VkClusterAccelerationStructureInputInfoNV* pInfo, + VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo); +void CmdBuildClusterAccelerationStructureIndirectNV(VkCommandBuffer commandBuffer, + const VkClusterAccelerationStructureCommandsInfoNV* pCommandInfos); +void GetPartitionedAccelerationStructuresBuildSizesNV(VkDevice device, + const VkPartitionedAccelerationStructureInstancesInputNV* pInfo, + VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo); +void CmdBuildPartitionedAccelerationStructuresNV(VkCommandBuffer commandBuffer, + const VkBuildPartitionedAccelerationStructureInfoNV* pBuildInfo); void GetGeneratedCommandsMemoryRequirementsEXT(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoEXT* pInfo, VkMemoryRequirements2* pMemoryRequirements); void CmdPreprocessGeneratedCommandsEXT(VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo, diff --git a/layers/vulkan/generated/dispatch_object_instance_methods.h b/layers/vulkan/generated/dispatch_object_instance_methods.h index 55669ee210b..ebc2ab3bfe0 100644 --- a/layers/vulkan/generated/dispatch_object_instance_methods.h +++ b/layers/vulkan/generated/dispatch_object_instance_methods.h @@ -271,6 +271,8 @@ VkResult GetPhysicalDeviceOpticalFlowImageFormatsNV(VkPhysicalDevice physicalDev const VkOpticalFlowImageFormatInfoNV* pOpticalFlowImageFormatInfo, uint32_t* pFormatCount, VkOpticalFlowImageFormatPropertiesNV* pImageFormatProperties); +VkResult GetPhysicalDeviceCooperativeVectorPropertiesNV(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, + VkCooperativeVectorPropertiesNV* pProperties); VkResult GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixFlexibleDimensionsPropertiesNV* pProperties); diff --git a/layers/vulkan/generated/dispatch_vector.cpp b/layers/vulkan/generated/dispatch_vector.cpp index 57773137163..83b84ce03c0 100644 --- a/layers/vulkan/generated/dispatch_vector.cpp +++ b/layers/vulkan/generated/dispatch_vector.cpp @@ -1770,6 +1770,12 @@ void Device::InitObjectDispatchVectors() { BUILD_DISPATCH_VECTOR(PreCallValidateGetDynamicRenderingTilePropertiesQCOM); BUILD_DISPATCH_VECTOR(PreCallRecordGetDynamicRenderingTilePropertiesQCOM); BUILD_DISPATCH_VECTOR(PostCallRecordGetDynamicRenderingTilePropertiesQCOM); + BUILD_DISPATCH_VECTOR(PreCallValidateConvertCooperativeVectorMatrixNV); + BUILD_DISPATCH_VECTOR(PreCallRecordConvertCooperativeVectorMatrixNV); + BUILD_DISPATCH_VECTOR(PostCallRecordConvertCooperativeVectorMatrixNV); + BUILD_DISPATCH_VECTOR(PreCallValidateCmdConvertCooperativeVectorMatrixNV); + BUILD_DISPATCH_VECTOR(PreCallRecordCmdConvertCooperativeVectorMatrixNV); + BUILD_DISPATCH_VECTOR(PostCallRecordCmdConvertCooperativeVectorMatrixNV); BUILD_DISPATCH_VECTOR(PreCallValidateSetLatencySleepModeNV); BUILD_DISPATCH_VECTOR(PreCallRecordSetLatencySleepModeNV); BUILD_DISPATCH_VECTOR(PostCallRecordSetLatencySleepModeNV); @@ -1793,6 +1799,18 @@ void Device::InitObjectDispatchVectors() { BUILD_DISPATCH_VECTOR(PreCallRecordGetScreenBufferPropertiesQNX); BUILD_DISPATCH_VECTOR(PostCallRecordGetScreenBufferPropertiesQNX); #endif // VK_USE_PLATFORM_SCREEN_QNX + BUILD_DISPATCH_VECTOR(PreCallValidateGetClusterAccelerationStructureBuildSizesNV); + BUILD_DISPATCH_VECTOR(PreCallRecordGetClusterAccelerationStructureBuildSizesNV); + BUILD_DISPATCH_VECTOR(PostCallRecordGetClusterAccelerationStructureBuildSizesNV); + BUILD_DISPATCH_VECTOR(PreCallValidateCmdBuildClusterAccelerationStructureIndirectNV); + BUILD_DISPATCH_VECTOR(PreCallRecordCmdBuildClusterAccelerationStructureIndirectNV); + BUILD_DISPATCH_VECTOR(PostCallRecordCmdBuildClusterAccelerationStructureIndirectNV); + BUILD_DISPATCH_VECTOR(PreCallValidateGetPartitionedAccelerationStructuresBuildSizesNV); + BUILD_DISPATCH_VECTOR(PreCallRecordGetPartitionedAccelerationStructuresBuildSizesNV); + BUILD_DISPATCH_VECTOR(PostCallRecordGetPartitionedAccelerationStructuresBuildSizesNV); + BUILD_DISPATCH_VECTOR(PreCallValidateCmdBuildPartitionedAccelerationStructuresNV); + BUILD_DISPATCH_VECTOR(PreCallRecordCmdBuildPartitionedAccelerationStructuresNV); + BUILD_DISPATCH_VECTOR(PostCallRecordCmdBuildPartitionedAccelerationStructuresNV); BUILD_DISPATCH_VECTOR(PreCallValidateGetGeneratedCommandsMemoryRequirementsEXT); BUILD_DISPATCH_VECTOR(PreCallRecordGetGeneratedCommandsMemoryRequirementsEXT); BUILD_DISPATCH_VECTOR(PostCallRecordGetGeneratedCommandsMemoryRequirementsEXT); diff --git a/layers/vulkan/generated/dispatch_vector.h b/layers/vulkan/generated/dispatch_vector.h index 01690f6a457..716fc3e76ab 100644 --- a/layers/vulkan/generated/dispatch_vector.h +++ b/layers/vulkan/generated/dispatch_vector.h @@ -1694,6 +1694,12 @@ typedef enum InterceptId { InterceptIdPreCallValidateGetDynamicRenderingTilePropertiesQCOM, InterceptIdPreCallRecordGetDynamicRenderingTilePropertiesQCOM, InterceptIdPostCallRecordGetDynamicRenderingTilePropertiesQCOM, + InterceptIdPreCallValidateConvertCooperativeVectorMatrixNV, + InterceptIdPreCallRecordConvertCooperativeVectorMatrixNV, + InterceptIdPostCallRecordConvertCooperativeVectorMatrixNV, + InterceptIdPreCallValidateCmdConvertCooperativeVectorMatrixNV, + InterceptIdPreCallRecordCmdConvertCooperativeVectorMatrixNV, + InterceptIdPostCallRecordCmdConvertCooperativeVectorMatrixNV, InterceptIdPreCallValidateSetLatencySleepModeNV, InterceptIdPreCallRecordSetLatencySleepModeNV, InterceptIdPostCallRecordSetLatencySleepModeNV, @@ -1715,6 +1721,18 @@ typedef enum InterceptId { InterceptIdPreCallValidateGetScreenBufferPropertiesQNX, InterceptIdPreCallRecordGetScreenBufferPropertiesQNX, InterceptIdPostCallRecordGetScreenBufferPropertiesQNX, + InterceptIdPreCallValidateGetClusterAccelerationStructureBuildSizesNV, + InterceptIdPreCallRecordGetClusterAccelerationStructureBuildSizesNV, + InterceptIdPostCallRecordGetClusterAccelerationStructureBuildSizesNV, + InterceptIdPreCallValidateCmdBuildClusterAccelerationStructureIndirectNV, + InterceptIdPreCallRecordCmdBuildClusterAccelerationStructureIndirectNV, + InterceptIdPostCallRecordCmdBuildClusterAccelerationStructureIndirectNV, + InterceptIdPreCallValidateGetPartitionedAccelerationStructuresBuildSizesNV, + InterceptIdPreCallRecordGetPartitionedAccelerationStructuresBuildSizesNV, + InterceptIdPostCallRecordGetPartitionedAccelerationStructuresBuildSizesNV, + InterceptIdPreCallValidateCmdBuildPartitionedAccelerationStructuresNV, + InterceptIdPreCallRecordCmdBuildPartitionedAccelerationStructuresNV, + InterceptIdPostCallRecordCmdBuildPartitionedAccelerationStructuresNV, InterceptIdPreCallValidateGetGeneratedCommandsMemoryRequirementsEXT, InterceptIdPreCallRecordGetGeneratedCommandsMemoryRequirementsEXT, InterceptIdPostCallRecordGetGeneratedCommandsMemoryRequirementsEXT, diff --git a/layers/vulkan/generated/enum_flag_bits.h b/layers/vulkan/generated/enum_flag_bits.h index 704197c88d8..560daa82ba9 100644 --- a/layers/vulkan/generated/enum_flag_bits.h +++ b/layers/vulkan/generated/enum_flag_bits.h @@ -24,7 +24,7 @@ #include #include "vulkan/vulkan.h" // clang-format off -const uint32_t GeneratedVulkanHeaderVersion = 306; +const uint32_t GeneratedVulkanHeaderVersion = 307; const VkAccessFlags AllVkAccessFlagBits = VK_ACCESS_INDIRECT_COMMAND_READ_BIT|VK_ACCESS_INDEX_READ_BIT|VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT|VK_ACCESS_UNIFORM_READ_BIT|VK_ACCESS_INPUT_ATTACHMENT_READ_BIT|VK_ACCESS_SHADER_READ_BIT|VK_ACCESS_SHADER_WRITE_BIT|VK_ACCESS_COLOR_ATTACHMENT_READ_BIT|VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT|VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT|VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT|VK_ACCESS_TRANSFER_READ_BIT|VK_ACCESS_TRANSFER_WRITE_BIT|VK_ACCESS_HOST_READ_BIT|VK_ACCESS_HOST_WRITE_BIT|VK_ACCESS_MEMORY_READ_BIT|VK_ACCESS_MEMORY_WRITE_BIT|VK_ACCESS_NONE|VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT|VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT|VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT|VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT|VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT|VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR|VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR|VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT|VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR|VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV|VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV; const VkImageAspectFlags AllVkImageAspectFlagBits = VK_IMAGE_ASPECT_COLOR_BIT|VK_IMAGE_ASPECT_DEPTH_BIT|VK_IMAGE_ASPECT_STENCIL_BIT|VK_IMAGE_ASPECT_METADATA_BIT|VK_IMAGE_ASPECT_PLANE_0_BIT|VK_IMAGE_ASPECT_PLANE_1_BIT|VK_IMAGE_ASPECT_PLANE_2_BIT|VK_IMAGE_ASPECT_NONE|VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT|VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT|VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT|VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT; const VkInstanceCreateFlags AllVkInstanceCreateFlagBits = VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR; @@ -66,13 +66,13 @@ const VkExternalSemaphoreHandleTypeFlags AllVkExternalSemaphoreHandleTypeFlagBit const VkDescriptorBindingFlags AllVkDescriptorBindingFlagBits = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT|VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT|VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT|VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT; const VkResolveModeFlags AllVkResolveModeFlagBits = VK_RESOLVE_MODE_NONE|VK_RESOLVE_MODE_SAMPLE_ZERO_BIT|VK_RESOLVE_MODE_AVERAGE_BIT|VK_RESOLVE_MODE_MIN_BIT|VK_RESOLVE_MODE_MAX_BIT|VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID; const VkSemaphoreWaitFlags AllVkSemaphoreWaitFlagBits = VK_SEMAPHORE_WAIT_ANY_BIT; -const VkPipelineStageFlags2 AllVkPipelineStageFlagBits2 = VK_PIPELINE_STAGE_2_NONE|VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT|VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT|VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT|VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT|VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT|VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT|VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT|VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT|VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT|VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT|VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT|VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT|VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT|VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT|VK_PIPELINE_STAGE_2_HOST_BIT|VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT|VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT|VK_PIPELINE_STAGE_2_COPY_BIT|VK_PIPELINE_STAGE_2_RESOLVE_BIT|VK_PIPELINE_STAGE_2_BLIT_BIT|VK_PIPELINE_STAGE_2_CLEAR_BIT|VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT|VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT|VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT|VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR|VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR|VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT|VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT|VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV|VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR|VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR|VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR|VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT|VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT|VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT|VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI|VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI|VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR|VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT|VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI|VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV; +const VkPipelineStageFlags2 AllVkPipelineStageFlagBits2 = VK_PIPELINE_STAGE_2_NONE|VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT|VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT|VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT|VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT|VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT|VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT|VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT|VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT|VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT|VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT|VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT|VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT|VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT|VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT|VK_PIPELINE_STAGE_2_HOST_BIT|VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT|VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT|VK_PIPELINE_STAGE_2_COPY_BIT|VK_PIPELINE_STAGE_2_RESOLVE_BIT|VK_PIPELINE_STAGE_2_BLIT_BIT|VK_PIPELINE_STAGE_2_CLEAR_BIT|VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT|VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT|VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT|VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR|VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR|VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT|VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT|VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV|VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR|VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR|VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR|VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT|VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT|VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT|VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI|VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI|VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR|VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT|VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI|VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV|VK_PIPELINE_STAGE_2_CONVERT_COOPERATIVE_VECTOR_MATRIX_BIT_NV; const VkAccessFlags2 AllVkAccessFlagBits2 = VK_ACCESS_2_NONE|VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT|VK_ACCESS_2_INDEX_READ_BIT|VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT|VK_ACCESS_2_UNIFORM_READ_BIT|VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT|VK_ACCESS_2_SHADER_READ_BIT|VK_ACCESS_2_SHADER_WRITE_BIT|VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT|VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT|VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT|VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT|VK_ACCESS_2_TRANSFER_READ_BIT|VK_ACCESS_2_TRANSFER_WRITE_BIT|VK_ACCESS_2_HOST_READ_BIT|VK_ACCESS_2_HOST_WRITE_BIT|VK_ACCESS_2_MEMORY_READ_BIT|VK_ACCESS_2_MEMORY_WRITE_BIT|VK_ACCESS_2_SHADER_SAMPLED_READ_BIT|VK_ACCESS_2_SHADER_STORAGE_READ_BIT|VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT|VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR|VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR|VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR|VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR|VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT|VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT|VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT|VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT|VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV|VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV|VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR|VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR|VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR|VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT|VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT|VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT|VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI|VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR|VK_ACCESS_2_MICROMAP_READ_BIT_EXT|VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT|VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV|VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV; const VkSubmitFlags AllVkSubmitFlagBits = VK_SUBMIT_PROTECTED_BIT; const VkRenderingFlags AllVkRenderingFlagBits = VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT|VK_RENDERING_SUSPENDING_BIT|VK_RENDERING_RESUMING_BIT|VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT|VK_RENDERING_CONTENTS_INLINE_BIT_KHR; const VkMemoryMapFlags AllVkMemoryMapFlagBits = VK_MEMORY_MAP_PLACED_BIT_EXT; const VkMemoryUnmapFlags AllVkMemoryUnmapFlagBits = VK_MEMORY_UNMAP_RESERVE_BIT_EXT; -const VkPipelineCreateFlags2 AllVkPipelineCreateFlagBits2 = VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT|VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT|VK_PIPELINE_CREATE_2_DERIVATIVE_BIT|VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT|VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT|VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT|VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT|VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT|VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT|VK_PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX|VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT|VK_PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV|VK_PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR|VK_PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR|VK_PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT|VK_PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT|VK_PIPELINE_CREATE_2_LIBRARY_BIT_KHR|VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR|VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR|VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR|VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR|VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR|VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR|VK_PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR|VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV|VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV|VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR|VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT|VK_PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT|VK_PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT|VK_PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT|VK_PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV|VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT|VK_PIPELINE_CREATE_2_DISALLOW_OPACITY_MICROMAP_BIT_ARM|VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR|VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT; +const VkPipelineCreateFlags2 AllVkPipelineCreateFlagBits2 = VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT|VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT|VK_PIPELINE_CREATE_2_DERIVATIVE_BIT|VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT|VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT|VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT|VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT|VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT|VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT|VK_PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX|VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_SPHERES_AND_LINEAR_SWEPT_SPHERES_BIT_NV|VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT|VK_PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV|VK_PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR|VK_PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR|VK_PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT|VK_PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT|VK_PIPELINE_CREATE_2_LIBRARY_BIT_KHR|VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR|VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR|VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR|VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR|VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR|VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR|VK_PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR|VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV|VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV|VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR|VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT|VK_PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT|VK_PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT|VK_PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT|VK_PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV|VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT|VK_PIPELINE_CREATE_2_DISALLOW_OPACITY_MICROMAP_BIT_ARM|VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR|VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT; const VkBufferUsageFlags2 AllVkBufferUsageFlagBits2 = VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT|VK_BUFFER_USAGE_2_TRANSFER_DST_BIT|VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT|VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT|VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT|VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT|VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT|VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT|VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT|VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT|VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX|VK_BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT|VK_BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR|VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT|VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT|VK_BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR|VK_BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR|VK_BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR|VK_BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR|VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR|VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR|VK_BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT|VK_BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT|VK_BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT|VK_BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT|VK_BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT|VK_BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT; const VkHostImageCopyFlags AllVkHostImageCopyFlagBits = VK_HOST_IMAGE_COPY_MEMCPY; const VkSwapchainCreateFlagsKHR AllVkSwapchainCreateFlagBitsKHR = VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR|VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR|VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR|VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT; @@ -132,9 +132,12 @@ const VkOpticalFlowGridSizeFlagsNV AllVkOpticalFlowGridSizeFlagBitsNV = VK_OPTIC const VkOpticalFlowSessionCreateFlagsNV AllVkOpticalFlowSessionCreateFlagBitsNV = VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV|VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV|VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV|VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV|VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV; const VkOpticalFlowExecuteFlagsNV AllVkOpticalFlowExecuteFlagBitsNV = VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV; const VkShaderCreateFlagsEXT AllVkShaderCreateFlagBitsEXT = VK_SHADER_CREATE_LINK_STAGE_BIT_EXT|VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT|VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT|VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT|VK_SHADER_CREATE_DISPATCH_BASE_BIT_EXT|VK_SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT|VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT|VK_SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT; +const VkBuildAccelerationStructureFlagsKHR AllVkBuildAccelerationStructureFlagBitsKHR = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR|VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR|VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR|VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR|VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR|VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV|VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT|VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT|VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT|VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV|VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR; +const VkClusterAccelerationStructureAddressResolutionFlagsNV AllVkClusterAccelerationStructureAddressResolutionFlagBitsNV = VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_DST_IMPLICIT_DATA_BIT_NV|VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_SCRATCH_DATA_BIT_NV|VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_DST_ADDRESS_ARRAY_BIT_NV|VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_DST_SIZES_ARRAY_BIT_NV|VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_SRC_INFOS_ARRAY_BIT_NV|VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_SRC_INFOS_COUNT_BIT_NV; +const VkClusterAccelerationStructureClusterFlagsNV AllVkClusterAccelerationStructureClusterFlagBitsNV = VK_CLUSTER_ACCELERATION_STRUCTURE_CLUSTER_ALLOW_DISABLE_OPACITY_MICROMAPS_NV; +const VkPartitionedAccelerationStructureInstanceFlagsNV AllVkPartitionedAccelerationStructureInstanceFlagBitsNV = VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_TRIANGLE_FACING_CULL_DISABLE_BIT_NV|VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_TRIANGLE_FLIP_FACING_BIT_NV|VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_FORCE_OPAQUE_BIT_NV|VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_FORCE_NO_OPAQUE_BIT_NV|VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_ENABLE_EXPLICIT_BOUNDING_BOX_NV; const VkIndirectCommandsInputModeFlagsEXT AllVkIndirectCommandsInputModeFlagBitsEXT = VK_INDIRECT_COMMANDS_INPUT_MODE_VULKAN_INDEX_BUFFER_EXT|VK_INDIRECT_COMMANDS_INPUT_MODE_DXGI_INDEX_BUFFER_EXT; const VkIndirectCommandsLayoutUsageFlagsEXT AllVkIndirectCommandsLayoutUsageFlagBitsEXT = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_EXT|VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_EXT; -const VkBuildAccelerationStructureFlagsKHR AllVkBuildAccelerationStructureFlagBitsKHR = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR|VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR|VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR|VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR|VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR|VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV|VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT|VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT|VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT|VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV|VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR; const VkAccelerationStructureCreateFlagsKHR AllVkAccelerationStructureCreateFlagBitsKHR = VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR|VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT|VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV; const VkQueryResultFlags AllVkQueryResultFlagBits = VK_QUERY_RESULT_64_BIT|VK_QUERY_RESULT_WAIT_BIT|VK_QUERY_RESULT_WITH_AVAILABILITY_BIT|VK_QUERY_RESULT_PARTIAL_BIT|VK_QUERY_RESULT_WITH_STATUS_BIT_KHR; const VkCommandPoolResetFlags AllVkCommandPoolResetFlagBits = VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT; diff --git a/layers/vulkan/generated/error_location_helper.cpp b/layers/vulkan/generated/error_location_helper.cpp index 3973a0dcab8..c3a9d41af47 100644 --- a/layers/vulkan/generated/error_location_helper.cpp +++ b/layers/vulkan/generated/error_location_helper.cpp @@ -91,11 +91,14 @@ const char* String(Func func) { {"vkCmdBuildAccelerationStructureNV", 34}, {"vkCmdBuildAccelerationStructuresIndirectKHR", 44}, {"vkCmdBuildAccelerationStructuresKHR", 36}, + {"vkCmdBuildClusterAccelerationStructureIndirectNV", 49}, {"vkCmdBuildMicromapsEXT", 23}, + {"vkCmdBuildPartitionedAccelerationStructuresNV", 46}, {"vkCmdClearAttachments", 22}, {"vkCmdClearColorImage", 21}, {"vkCmdClearDepthStencilImage", 28}, {"vkCmdControlVideoCodingKHR", 27}, + {"vkCmdConvertCooperativeVectorMatrixNV", 38}, {"vkCmdCopyAccelerationStructureKHR", 34}, {"vkCmdCopyAccelerationStructureNV", 33}, {"vkCmdCopyAccelerationStructureToMemoryKHR", 42}, @@ -323,6 +326,7 @@ const char* String(Func func) { {"vkCmdWriteTimestamp2", 21}, {"vkCmdWriteTimestamp2KHR", 24}, {"vkCompileDeferredNV", 20}, + {"vkConvertCooperativeVectorMatrixNV", 35}, {"vkCopyAccelerationStructureKHR", 31}, {"vkCopyAccelerationStructureToMemoryKHR", 39}, {"vkCopyImageToImage", 19}, @@ -492,6 +496,7 @@ const char* String(Func func) { {"vkGetBufferOpaqueCaptureDescriptorDataEXT", 42}, {"vkGetCalibratedTimestampsEXT", 29}, {"vkGetCalibratedTimestampsKHR", 29}, + {"vkGetClusterAccelerationStructureBuildSizesNV", 46}, {"vkGetCudaModuleCacheNV", 23}, {"vkGetDeferredOperationMaxConcurrencyKHR", 40}, {"vkGetDeferredOperationResultKHR", 32}, @@ -573,6 +578,7 @@ const char* String(Func func) { {"vkGetMemoryZirconHandleFUCHSIA", 31}, {"vkGetMemoryZirconHandlePropertiesFUCHSIA", 41}, {"vkGetMicromapBuildSizesEXT", 27}, + {"vkGetPartitionedAccelerationStructuresBuildSizesNV", 51}, {"vkGetPastPresentationTimingGOOGLE", 34}, {"vkGetPerformanceParameterINTEL", 31}, {"vkGetPhysicalDeviceCalibrateableTimeDomainsEXT", 47}, @@ -580,6 +586,7 @@ const char* String(Func func) { {"vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV", 67}, {"vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR", 50}, {"vkGetPhysicalDeviceCooperativeMatrixPropertiesNV", 49}, + {"vkGetPhysicalDeviceCooperativeVectorPropertiesNV", 49}, {"vkGetPhysicalDeviceDirectFBPresentationSupportEXT", 50}, {"vkGetPhysicalDeviceDisplayPlaneProperties2KHR", 46}, {"vkGetPhysicalDeviceDisplayPlanePropertiesKHR", 45}, @@ -770,7 +777,9 @@ const char* String(Struct structure) { {"VkAccelerationStructureGeometryDataKHR", 39}, {"VkAccelerationStructureGeometryInstancesDataKHR", 48}, {"VkAccelerationStructureGeometryKHR", 35}, + {"VkAccelerationStructureGeometryLinearSweptSpheresDataNV", 56}, {"VkAccelerationStructureGeometryMotionTrianglesDataNV", 53}, + {"VkAccelerationStructureGeometrySpheresDataNV", 45}, {"VkAccelerationStructureGeometryTrianglesDataKHR", 48}, {"VkAccelerationStructureInfoNV", 30}, {"VkAccelerationStructureInstanceKHR", 35}, @@ -846,6 +855,8 @@ const char* String(Struct structure) { {"VkBufferOpaqueCaptureAddressCreateInfo", 39}, {"VkBufferUsageFlags2CreateInfo", 30}, {"VkBufferViewCreateInfo", 23}, + {"VkBuildPartitionedAccelerationStructureIndirectCommandNV", 57}, + {"VkBuildPartitionedAccelerationStructureInfoNV", 46}, {"VkCalibratedTimestampInfoKHR", 29}, {"VkCheckpointData2NV", 20}, {"VkCheckpointDataNV", 19}, @@ -854,6 +865,18 @@ const char* String(Struct structure) { {"VkClearDepthStencilValue", 25}, {"VkClearRect", 12}, {"VkClearValue", 13}, + {"VkClusterAccelerationStructureBuildClustersBottomLevelInfoNV", 61}, + {"VkClusterAccelerationStructureBuildTriangleClusterInfoNV", 57}, + {"VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV", 65}, + {"VkClusterAccelerationStructureClustersBottomLevelInputNV", 57}, + {"VkClusterAccelerationStructureCommandsInfoNV", 45}, + {"VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV", 62}, + {"VkClusterAccelerationStructureInputInfoNV", 42}, + {"VkClusterAccelerationStructureInstantiateClusterInfoNV", 55}, + {"VkClusterAccelerationStructureMoveObjectsInfoNV", 48}, + {"VkClusterAccelerationStructureMoveObjectsInputNV", 49}, + {"VkClusterAccelerationStructureOpInputNV", 40}, + {"VkClusterAccelerationStructureTriangleClusterInputNV", 53}, {"VkCoarseSampleLocationNV", 25}, {"VkCoarseSampleOrderCustomNV", 28}, {"VkColorBlendAdvancedEXT", 24}, @@ -872,9 +895,11 @@ const char* String(Struct structure) { {"VkComputePipelineIndirectBufferInfoNV", 38}, {"VkConditionalRenderingBeginInfoEXT", 35}, {"VkConformanceVersion", 21}, + {"VkConvertCooperativeVectorMatrixInfoNV", 39}, {"VkCooperativeMatrixFlexibleDimensionsPropertiesNV", 50}, {"VkCooperativeMatrixPropertiesKHR", 33}, {"VkCooperativeMatrixPropertiesNV", 32}, + {"VkCooperativeVectorPropertiesNV", 32}, {"VkCopyAccelerationStructureInfoKHR", 35}, {"VkCopyAccelerationStructureToMemoryInfoKHR", 43}, {"VkCopyBufferInfo2", 18}, @@ -1211,6 +1236,11 @@ const char* String(Struct structure) { {"VkOpticalFlowSessionCreateInfoNV", 33}, {"VkOpticalFlowSessionCreatePrivateDataInfoNV", 44}, {"VkOutOfBandQueueTypeInfoNV", 27}, + {"VkPartitionedAccelerationStructureFlagsNV", 42}, + {"VkPartitionedAccelerationStructureInstancesInputNV", 51}, + {"VkPartitionedAccelerationStructureUpdateInstanceDataNV", 55}, + {"VkPartitionedAccelerationStructureWriteInstanceDataNV", 54}, + {"VkPartitionedAccelerationStructureWritePartitionTranslationDataNV", 66}, {"VkPastPresentationTimingGOOGLE", 31}, {"VkPerformanceConfigurationAcquireInfoINTEL", 43}, {"VkPerformanceCounterDescriptionKHR", 35}, @@ -1238,6 +1268,8 @@ const char* String(Struct structure) { {"VkPhysicalDeviceBorderColorSwizzleFeaturesEXT", 46}, {"VkPhysicalDeviceBufferDeviceAddressFeatures", 44}, {"VkPhysicalDeviceBufferDeviceAddressFeaturesEXT", 47}, + {"VkPhysicalDeviceClusterAccelerationStructureFeaturesNV", 55}, + {"VkPhysicalDeviceClusterAccelerationStructurePropertiesNV", 57}, {"VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI", 51}, {"VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI", 53}, {"VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI", 54}, @@ -1254,6 +1286,8 @@ const char* String(Struct structure) { {"VkPhysicalDeviceCooperativeMatrixFeaturesNV", 44}, {"VkPhysicalDeviceCooperativeMatrixPropertiesKHR", 47}, {"VkPhysicalDeviceCooperativeMatrixPropertiesNV", 46}, + {"VkPhysicalDeviceCooperativeVectorFeaturesNV", 44}, + {"VkPhysicalDeviceCooperativeVectorPropertiesNV", 46}, {"VkPhysicalDeviceCopyMemoryIndirectFeaturesNV", 45}, {"VkPhysicalDeviceCopyMemoryIndirectPropertiesNV", 47}, {"VkPhysicalDeviceCornerSampledImageFeaturesNV", 45}, @@ -1409,6 +1443,8 @@ const char* String(Struct structure) { {"VkPhysicalDeviceOpticalFlowPropertiesNV", 40}, {"VkPhysicalDevicePCIBusInfoPropertiesEXT", 40}, {"VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT", 53}, + {"VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV", 59}, + {"VkPhysicalDevicePartitionedAccelerationStructurePropertiesNV", 61}, {"VkPhysicalDevicePerStageDescriptorSetFeaturesNV", 48}, {"VkPhysicalDevicePerformanceQueryFeaturesKHR", 44}, {"VkPhysicalDevicePerformanceQueryPropertiesKHR", 46}, @@ -1445,6 +1481,7 @@ const char* String(Struct structure) { {"VkPhysicalDeviceRayQueryFeaturesKHR", 36}, {"VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV", 54}, {"VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV", 56}, + {"VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV", 55}, {"VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR", 50}, {"VkPhysicalDeviceRayTracingMotionBlurFeaturesNV", 47}, {"VkPhysicalDeviceRayTracingPipelineFeaturesKHR", 46}, @@ -1643,6 +1680,7 @@ const char* String(Struct structure) { {"VkQueueFamilyProperties2", 25}, {"VkQueueFamilyQueryResultStatusPropertiesKHR", 44}, {"VkQueueFamilyVideoPropertiesKHR", 32}, + {"VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV", 61}, {"VkRayTracingPipelineCreateInfoKHR", 34}, {"VkRayTracingPipelineCreateInfoNV", 33}, {"VkRayTracingPipelineInterfaceCreateInfoKHR", 43}, @@ -1727,6 +1765,7 @@ const char* String(Struct structure) { {"VkSpecializationMapEntry", 25}, {"VkStencilOpState", 17}, {"VkStreamDescriptorSurfaceCreateInfoGGP", 39}, + {"VkStridedDeviceAddressNV", 25}, {"VkStridedDeviceAddressRegionKHR", 32}, {"VkSubmitInfo", 13}, {"VkSubmitInfo2", 14}, @@ -1892,6 +1931,7 @@ const char* String(Struct structure) { {"VkWriteDescriptorSetAccelerationStructureKHR", 45}, {"VkWriteDescriptorSetAccelerationStructureNV", 44}, {"VkWriteDescriptorSetInlineUniformBlock", 39}, + {"VkWriteDescriptorSetPartitionedAccelerationStructureNV", 55}, {"VkWriteIndirectExecutionSetPipelineEXT", 39}, {"VkWriteIndirectExecutionSetShaderEXT", 37}, {"VkXYColorEXT", 13}, @@ -1938,6 +1978,7 @@ const char* String(Field field) { {"addressModeV", 13}, {"addressModeW", 13}, {"addressPrecision", 17}, + {"addressResolutionFlags", 23}, {"addressType", 12}, {"advancedBlendAllOperations", 27}, {"advancedBlendCoherentOperations", 32}, @@ -1949,6 +1990,7 @@ const char* String(Field field) { {"advancedBlendOp", 16}, {"alignment", 10}, {"allocationSize", 15}, + {"allowClusterAccelerationStructure", 34}, {"allowCommandBufferQueryCopies", 30}, {"allowSamplerImageViewPostSubmitCreation", 40}, {"alphaBlendOp", 13}, @@ -1965,6 +2007,8 @@ const char* String(Field field) { {"applicationNameOffset", 22}, {"applicationVersion", 19}, {"apronSize", 10}, + {"argCount", 9}, + {"argData", 8}, {"arrayLayer", 11}, {"arrayLayers", 12}, {"arrayOfPointers", 16}, @@ -1985,6 +2029,7 @@ const char* String(Field field) { {"back", 5}, {"baseAddress", 12}, {"baseArrayLayer", 15}, + {"baseGeometryIndexAndGeometryFlags", 34}, {"baseGroupX", 11}, {"baseGroupY", 11}, {"baseGroupZ", 11}, @@ -1992,6 +2037,7 @@ const char* String(Field field) { {"basePipelineHandle", 19}, {"basePipelineIndex", 18}, {"baseTriangle", 13}, + {"biasInterpretation", 19}, {"bidirectionalCompoundReferenceNameMask", 39}, {"bidirectionalFlowSupported", 27}, {"binaryCount", 12}, @@ -2053,7 +2099,20 @@ const char* String(Field field) { {"clearValueCount", 16}, {"clipped", 8}, {"closestHitShader", 17}, + {"clusterAccelerationStructure", 29}, + {"clusterBottomLevelByteAlignment", 32}, + {"clusterByteAlignment", 21}, + {"clusterFlags", 13}, + {"clusterID", 10}, + {"clusterIdOffset", 16}, + {"clusterReferences", 18}, + {"clusterReferencesCount", 23}, + {"clusterReferencesStride", 24}, + {"clusterScratchByteAlignment", 28}, {"clusterShadingRate", 19}, + {"clusterTemplateAddress", 23}, + {"clusterTemplateBoundsByteAlignment", 35}, + {"clusterTemplateByteAlignment", 29}, {"clustercullingShader", 21}, {"cmdBufLabelCount", 17}, {"codeSize", 9}, @@ -2135,6 +2194,11 @@ const char* String(Field field) { {"cooperativeMatrixWorkgroupScope", 32}, {"cooperativeMatrixWorkgroupScopeMaxWorkgroupSize", 48}, {"cooperativeMatrixWorkgroupScopeReservedSharedMemory", 52}, + {"cooperativeVector", 18}, + {"cooperativeVectorSupportedStages", 33}, + {"cooperativeVectorTraining", 26}, + {"cooperativeVectorTrainingFloat16Accumulation", 45}, + {"cooperativeVectorTrainingFloat32Accumulation", 45}, {"copyBufferAddress", 18}, {"copyCount", 10}, {"copyDstLayoutCount", 19}, @@ -2338,9 +2402,11 @@ const char* String(Field field) { {"drmFormatModifierTilingFeatures", 32}, {"dst", 4}, {"dstAccelerationStructure", 25}, + {"dstAccelerationStructureData", 29}, {"dstAccessMask", 14}, {"dstAccessMask3", 15}, {"dstAddress", 11}, + {"dstAddressesArray", 18}, {"dstAlphaBlendFactor", 20}, {"dstArrayElement", 16}, {"dstBinding", 11}, @@ -2349,8 +2415,12 @@ const char* String(Field field) { {"dstBufferRange", 15}, {"dstCache", 9}, {"dstColorBlendFactor", 20}, + {"dstComponentType", 17}, + {"dstData", 8}, {"dstImage", 9}, {"dstImageLayout", 15}, + {"dstImplicitData", 16}, + {"dstLayout", 10}, {"dstMicromap", 12}, {"dstOffset", 10}, {"dstOffsets", 11}, @@ -2359,7 +2429,9 @@ const char* String(Field field) { {"dstQueueFamilyIndex", 20}, {"dstRect", 8}, {"dstSet", 7}, + {"dstSizesArray", 14}, {"dstStageMask", 13}, + {"dstStride", 10}, {"dstSubpass", 11}, {"dstSubresource", 15}, {"dualSrcBlend", 13}, @@ -2381,12 +2453,14 @@ const char* String(Field field) { {"earlyFragmentSampleMaskTestBeforeSampleCounting", 48}, {"enable", 7}, {"enableCbCrDegamma", 18}, + {"enablePartitionTranslation", 27}, {"enableYDegamma", 15}, {"enabledExtensionCount", 22}, {"enabledLayerCount", 18}, {"enabledValidationFeatureCount", 30}, {"encodeFeedbackFlags", 20}, {"encodeInputPictureGranularity", 30}, + {"endCapsMode", 12}, {"engineNameOffset", 17}, {"engineVersion", 14}, {"event", 6}, @@ -2400,6 +2474,7 @@ const char* String(Field field) { {"executionSetWriteCount", 23}, {"expectDyadicTemporalLayerPattern", 33}, {"expectDyadicTemporalSubLayerPattern", 36}, + {"explicitAABB", 13}, {"exportFromImportedHandleTypes", 30}, {"exportObjectType", 17}, {"extendedDynamicState", 21}, @@ -2557,6 +2632,11 @@ const char* String(Field field) { {"generatePrefixNalu", 19}, {"geometry", 9}, {"geometryCount", 14}, + {"geometryFlags", 14}, + {"geometryIndex", 14}, + {"geometryIndexAndFlagsBuffer", 28}, + {"geometryIndexAndFlagsBufferStride", 34}, + {"geometryIndexOffset", 20}, {"geometryShader", 15}, {"geometryStreams", 16}, {"geometryType", 13}, @@ -2677,6 +2757,7 @@ const char* String(Field field) { {"independentResolveNone", 23}, {"index", 6}, {"indexBuffer", 12}, + {"indexBufferStride", 18}, {"indexCount", 11}, {"indexData", 10}, {"indexOffset", 12}, @@ -2684,6 +2765,7 @@ const char* String(Field field) { {"indexType", 10}, {"indexTypeCount", 15}, {"indexTypeUint8", 15}, + {"indexingMode", 13}, {"indirectAddress", 16}, {"indirectAddressSize", 20}, {"indirectBufferOffsetAlignment", 30}, @@ -2708,18 +2790,27 @@ const char* String(Field field) { {"initialValue", 13}, {"initialVirtualBufferSizeInMs", 29}, {"inlineUniformBlock", 19}, + {"input", 6}, {"inputAttachmentCount", 21}, {"inputAttachmentDescriptorSize", 30}, {"inputAttachmentIndex", 21}, + {"inputInterpretation", 20}, {"inputRate", 10}, {"inputSampleTimeUs", 18}, + {"inputType", 10}, {"instance", 9}, + {"instanceContributionToHitGroupIndex", 36}, {"instanceCount", 14}, {"instanceCustomIndex", 20}, {"instanceData", 13}, + {"instanceFlags", 14}, + {"instanceID", 11}, + {"instanceIndex", 14}, + {"instanceMask", 13}, {"instanceOffset", 15}, {"instanceShaderBindingTableRecordOffset", 39}, {"instances", 10}, + {"instantiationBoundingBoxLimit", 30}, {"int32", 6}, {"int64", 6}, {"integerDotProduct16BitMixedSignednessAccelerated", 49}, @@ -2789,6 +2880,7 @@ const char* String(Field field) { {"lineWidthGranularity", 21}, {"lineWidthRange", 15}, {"linearColorAttachment", 22}, + {"linearSweptSpheres", 19}, {"linearTilingFeatures", 21}, {"loadOp", 7}, {"localDeviceIndex", 17}, @@ -2811,7 +2903,9 @@ const char* String(Field field) { {"marker", 7}, {"mask", 5}, {"matrix", 7}, + {"matrixInterpretation", 21}, {"matrixMotionInstance", 21}, + {"maxAccelerationStructureCount", 30}, {"maxActiveReferencePictures", 27}, {"maxAnisotropy", 14}, {"maxArrayLayers", 15}, @@ -2827,6 +2921,11 @@ const char* String(Field field) { {"maxBufferCount", 15}, {"maxBufferSize", 14}, {"maxClipDistances", 17}, + {"maxClusterCountPerAccelerationStructure", 40}, + {"maxClusterGeometryIndex", 24}, + {"maxClusterTriangleCount", 24}, + {"maxClusterUniqueGeometryCount", 30}, + {"maxClusterVertexCount", 22}, {"maxCodedExtent", 15}, {"maxColorAttachments", 20}, {"maxCombinedClipAndCullDistances", 32}, @@ -2838,6 +2937,7 @@ const char* String(Field field) { {"maxComputeWorkGroupSize", 24}, {"maxComputeWorkgroupSubgroups", 29}, {"maxContentLightLevel", 21}, + {"maxCooperativeVectorComponents", 31}, {"maxCullDistances", 17}, {"maxCustomBorderColorSamplers", 29}, {"maxDecompressionIndirectCount", 30}, @@ -2910,6 +3010,7 @@ const char* String(Field field) { {"maxFramebufferLayers", 21}, {"maxFramebufferWidth", 20}, {"maxGeometryCount", 17}, + {"maxGeometryIndexValue", 22}, {"maxGeometryInputComponents", 27}, {"maxGeometryOutputComponents", 28}, {"maxGeometryOutputVertices", 26}, @@ -2936,6 +3037,8 @@ const char* String(Field field) { {"maxInlineUniformBlockSize", 26}, {"maxInlineUniformTotalSize", 26}, {"maxInstanceCount", 17}, + {"maxInstanceInGlobalPartitionCount", 34}, + {"maxInstancePerPartitionCount", 29}, {"maxInstances", 13}, {"maxInterpolationOffset", 23}, {"maxL1ReferenceCount", 20}, @@ -2960,6 +3063,7 @@ const char* String(Field field) { {"maxMeshWorkGroupSize", 21}, {"maxMeshWorkGroupTotalCount", 27}, {"maxMipLevels", 13}, + {"maxMovedBytes", 14}, {"maxMultiDrawCount", 18}, {"maxMultiviewInstanceIndex", 26}, {"maxMultiviewViewCount", 22}, @@ -2969,6 +3073,7 @@ const char* String(Field field) { {"maxOperatingPoints", 19}, {"maxOutputClusterCount", 22}, {"maxPPictureL0ReferenceCount", 28}, + {"maxPartitionCount", 18}, {"maxPerSetDescriptors", 21}, {"maxPerStageDescriptorAccelerationStructures", 44}, {"maxPerStageDescriptorInlineUniformBlocks", 41}, @@ -3065,6 +3170,9 @@ const char* String(Field field) { {"maxTileSize", 12}, {"maxTiles", 9}, {"maxTimelineSemaphoreValueDifference", 36}, + {"maxTotalClusterCount", 21}, + {"maxTotalTriangleCount", 22}, + {"maxTotalVertexCount", 20}, {"maxTransformFeedbackBufferDataSize", 35}, {"maxTransformFeedbackBufferDataStride", 37}, {"maxTransformFeedbackBufferSize", 31}, @@ -3072,6 +3180,7 @@ const char* String(Field field) { {"maxTransformFeedbackStreamDataSize", 35}, {"maxTransformFeedbackStreams", 28}, {"maxTriangleCount", 17}, + {"maxTrianglesPerCluster", 23}, {"maxUnidirectionalCompoundGroup1ReferenceCount", 46}, {"maxUnidirectionalCompoundReferenceCount", 40}, {"maxUniformBufferRange", 22}, @@ -3084,6 +3193,7 @@ const char* String(Field field) { {"maxVertexInputBindingStride", 28}, {"maxVertexInputBindings", 23}, {"maxVertexOutputComponents", 26}, + {"maxVerticesPerCluster", 22}, {"maxVgprAllocation", 18}, {"maxViewportDimensions", 22}, {"maxViewports", 13}, @@ -3162,6 +3272,7 @@ const char* String(Field field) { {"minLuminance", 13}, {"minMemoryMapAlignment", 22}, {"minPlacedMemoryMapAlignment", 28}, + {"minPositionTruncateBitCount", 28}, {"minQIndex", 10}, {"minQIndexDelta", 15}, {"minQp", 6}, @@ -3235,6 +3346,7 @@ const char* String(Field field) { {"newLayout", 10}, {"nextStage", 10}, {"noInvocationFragmentShadingRates", 33}, + {"noMoveOverlap", 14}, {"nodeIndex", 10}, {"nonCoherentAtomSize", 20}, {"nonSeamlessCubeMap", 19}, @@ -3245,9 +3357,11 @@ const char* String(Field field) { {"numAABBs", 9}, {"numAvailableSgprs", 18}, {"numAvailableVgprs", 18}, + {"numColumns", 11}, {"numPhases", 10}, {"numPhysicalSgprs", 17}, {"numPhysicalVgprs", 17}, + {"numRows", 8}, {"numUsedSgprs", 13}, {"numUsedVgprs", 13}, {"object", 7}, @@ -3259,6 +3373,13 @@ const char* String(Field field) { {"offset", 7}, {"oldLayout", 10}, {"oldSwapchain", 13}, + {"opInput", 8}, + {"opMode", 7}, + {"opType", 7}, + {"opacityMicromapArray", 21}, + {"opacityMicromapIndexBuffer", 27}, + {"opacityMicromapIndexBufferStride", 33}, + {"opacityMicromapIndexType", 25}, {"opaqueCaptureAddress", 21}, {"opaqueCaptureDescriptorData", 28}, {"operation", 10}, @@ -3324,6 +3445,7 @@ const char* String(Field field) { {"pCheckpointDataCount", 21}, {"pCheckpointMarker", 18}, {"pClearValues", 13}, + {"pClustersBottomLevel", 21}, {"pCmdBufLabels", 14}, {"pCode", 6}, {"pCodingControlInfo", 19}, @@ -3347,6 +3469,7 @@ const char* String(Field field) { {"pCommandBufferDeviceMasks", 26}, {"pCommandBufferInfos", 20}, {"pCommandBuffers", 16}, + {"pCommandInfos", 14}, {"pCommandPool", 13}, {"pCommittedMemoryInBytes", 24}, {"pCompatibility", 15}, @@ -3420,6 +3543,7 @@ const char* String(Field field) { {"pDrivers", 9}, {"pDrmFormatModifierProperties", 29}, {"pDrmFormatModifiers", 20}, + {"pDstSize", 9}, {"pDynamicMetadata", 17}, {"pDynamicOffsets", 16}, {"pDynamicState", 14}, @@ -3565,6 +3689,7 @@ const char* String(Field field) { {"pMode", 6}, {"pModes", 7}, {"pModule", 8}, + {"pMoveObjects", 13}, {"pMultisampleProperties", 23}, {"pMultisampleState", 18}, {"pMutableDescriptorTypeLists", 28}, @@ -3760,6 +3885,7 @@ const char* String(Field field) { {"pToolCount", 11}, {"pToolProperties", 16}, {"pTransitions", 13}, + {"pTriangleClusters", 18}, {"pUniformBuffer", 15}, {"pUniformTexelBuffer", 20}, {"pUpdateInfo", 12}, @@ -3807,6 +3933,10 @@ const char* String(Field field) { {"paramCount", 11}, {"parameter", 10}, {"parameters", 11}, + {"partitionCount", 15}, + {"partitionIndex", 15}, + {"partitionTranslation", 21}, + {"partitionedAccelerationStructure", 33}, {"passOp", 7}, {"patch", 6}, {"patchControlPoints", 19}, @@ -3889,6 +4019,7 @@ const char* String(Field field) { {"polygonMode", 12}, {"polygonModePointSize", 21}, {"poolSizeCount", 14}, + {"positionTruncateBitCount", 25}, {"postMergeIndex", 15}, {"postMergeSubpassCount", 22}, {"postSubpassSampleLocationsCount", 32}, @@ -4027,6 +4158,9 @@ const char* String(Field field) { {"qy", 3}, {"qz", 3}, {"r", 2}, + {"radiusData", 11}, + {"radiusFormat", 13}, + {"radiusStride", 13}, {"range", 6}, {"rangeCount", 11}, {"rasterizationOrder", 19}, @@ -4090,6 +4224,7 @@ const char* String(Field field) { {"requiredSubgroupSizeStages", 27}, {"requiresDedicatedAllocation", 28}, {"requiresGopRemainingFrames", 27}, + {"reserved", 9}, {"residencyAlignedMipSize", 24}, {"residencyNonResidentStrict", 27}, {"residencyStandard2DBlockShape", 30}, @@ -4102,6 +4237,7 @@ const char* String(Field field) { {"resourceDeviceIndex", 20}, {"resourceOffset", 15}, {"resourceUsage", 14}, + {"resultType", 11}, {"robustBufferAccess", 19}, {"robustBufferAccess2", 20}, {"robustBufferAccessUpdateAfterBind", 34}, @@ -4360,9 +4496,11 @@ const char* String(Field field) { {"sparseResidencyImage2D", 23}, {"sparseResidencyImage3D", 23}, {"specVersion", 12}, + {"spheres", 8}, {"splitInstanceBindRegionCount", 29}, {"src", 4}, {"srcAccelerationStructure", 25}, + {"srcAccelerationStructureData", 29}, {"srcAccessMask", 14}, {"srcAccessMask3", 15}, {"srcAddress", 11}, @@ -4374,8 +4512,14 @@ const char* String(Field field) { {"srcBufferRange", 15}, {"srcCacheCount", 14}, {"srcColorBlendFactor", 20}, + {"srcComponentType", 17}, + {"srcData", 8}, {"srcImage", 9}, {"srcImageLayout", 15}, + {"srcInfos", 9}, + {"srcInfosArray", 14}, + {"srcInfosCount", 14}, + {"srcLayout", 10}, {"srcOffset", 10}, {"srcOffsets", 11}, {"srcPictureResource", 19}, @@ -4383,7 +4527,9 @@ const char* String(Field field) { {"srcQueueFamilyIndex", 20}, {"srcRect", 8}, {"srcSet", 7}, + {"srcSize", 8}, {"srcStageMask", 13}, + {"srcStride", 10}, {"srcSubpass", 11}, {"srcSubresource", 15}, {"srgb", 5}, @@ -4394,6 +4540,7 @@ const char* String(Field field) { {"stageMask", 10}, {"stages", 7}, {"standardSampleLocations", 24}, + {"startAddress", 13}, {"stateCommandBuffer", 19}, {"staticInstance", 15}, {"stdHeaderVersion", 17}, @@ -4441,6 +4588,7 @@ const char* String(Field field) { {"streamDescriptor", 17}, {"strictLines", 12}, {"stride", 7}, + {"strideInBytes", 14}, {"stripeArea", 11}, {"stripeInfoCount", 16}, {"stripeSemaphoreInfoCount", 25}, @@ -4563,9 +4711,11 @@ const char* String(Field field) { {"transformT0", 12}, {"transformT1", 12}, {"transitionCount", 16}, + {"transpose", 10}, {"triStripVertexOrderIndependentOfProvokingVertex", 48}, {"triangleArray", 14}, {"triangleArrayStride", 20}, + {"triangleCount", 14}, {"triangleFans", 13}, {"triangles", 10}, {"tuningMode", 11}, @@ -4630,6 +4780,8 @@ const char* String(Field field) { {"vertexBindingDescriptionCount", 30}, {"vertexBindingDivisorCount", 26}, {"vertexBindingUnit", 18}, + {"vertexBuffer", 13}, + {"vertexBufferStride", 19}, {"vertexCount", 12}, {"vertexData", 11}, {"vertexDynamicStride", 20}, @@ -4731,6 +4883,9 @@ const char* String(Enum value) { {"VkBuildAccelerationStructureModeKHR", 36}, {"VkBuildMicromapModeEXT", 23}, {"VkChromaLocation", 17}, + {"VkClusterAccelerationStructureOpModeNV", 39}, + {"VkClusterAccelerationStructureOpTypeNV", 39}, + {"VkClusterAccelerationStructureTypeNV", 37}, {"VkCoarseSampleOrderTypeNV", 26}, {"VkColorSpaceKHR", 16}, {"VkCommandBufferLevel", 21}, @@ -4738,6 +4893,7 @@ const char* String(Enum value) { {"VkComponentSwizzle", 19}, {"VkComponentTypeKHR", 19}, {"VkConservativeRasterizationModeEXT", 35}, + {"VkCooperativeVectorMatrixLayoutNV", 34}, {"VkCopyAccelerationStructureModeKHR", 35}, {"VkCopyMicromapModeEXT", 22}, {"VkCoverageModulationModeNV", 27}, @@ -4791,6 +4947,7 @@ const char* String(Enum value) { {"VkOpticalFlowPerformanceLevelNV", 32}, {"VkOpticalFlowSessionBindingPointNV", 35}, {"VkOutOfBandQueueTypeNV", 23}, + {"VkPartitionedAccelerationStructureOpTypeNV", 43}, {"VkPerformanceConfigurationTypeINTEL", 36}, {"VkPerformanceCounterScopeKHR", 29}, {"VkPerformanceCounterStorageKHR", 31}, @@ -4816,6 +4973,8 @@ const char* String(Enum value) { {"VkQueueGlobalPriority", 22}, {"VkRasterizationOrderAMD", 24}, {"VkRayTracingInvocationReorderModeNV", 36}, + {"VkRayTracingLssIndexingModeNV", 30}, + {"VkRayTracingLssPrimitiveEndCapsModeNV", 38}, {"VkRayTracingShaderGroupTypeKHR", 31}, {"VkResult", 9}, {"VkSamplerAddressMode", 21}, @@ -4866,6 +5025,10 @@ const char* String(FlagBitmask value) { {"VkBufferUsageFlagBits2", 23}, {"VkBuildAccelerationStructureFlagBitsKHR", 40}, {"VkBuildMicromapFlagBitsEXT", 27}, + {"VkClusterAccelerationStructureAddressResolutionFlagBitsNV", 58}, + {"VkClusterAccelerationStructureClusterFlagBitsNV", 48}, + {"VkClusterAccelerationStructureGeometryFlagBitsNV", 49}, + {"VkClusterAccelerationStructureIndexFormatFlagBitsNV", 52}, {"VkColorComponentFlagBits", 25}, {"VkCommandBufferResetFlagBits", 29}, {"VkCommandBufferUsageFlagBits", 29}, @@ -4929,6 +5092,7 @@ const char* String(FlagBitmask value) { {"VkOpticalFlowGridSizeFlagBitsNV", 32}, {"VkOpticalFlowSessionCreateFlagBitsNV", 37}, {"VkOpticalFlowUsageFlagBitsNV", 29}, + {"VkPartitionedAccelerationStructureInstanceFlagBitsNV", 53}, {"VkPeerMemoryFeatureFlagBits", 28}, {"VkPerformanceCounterDescriptionFlagBitsKHR", 43}, {"VkPhysicalDeviceSchedulingControlsFlagBitsARM", 46}, @@ -5325,10 +5489,12 @@ const char* String(Extension extension) { {"VK_NVX_multiview_per_view_attributes", 37}, {"VK_NV_acquire_winrt_display", 28}, {"VK_NV_clip_space_w_scaling", 27}, + {"VK_NV_cluster_acceleration_structure", 37}, {"VK_NV_command_buffer_inheritance", 33}, {"VK_NV_compute_shader_derivatives", 33}, {"VK_NV_cooperative_matrix", 25}, {"VK_NV_cooperative_matrix2", 26}, + {"VK_NV_cooperative_vector", 25}, {"VK_NV_copy_memory_indirect", 27}, {"VK_NV_corner_sampled_image", 27}, {"VK_NV_coverage_reduction_mode", 30}, @@ -5361,11 +5527,13 @@ const char* String(Extension extension) { {"VK_NV_memory_decompression", 27}, {"VK_NV_mesh_shader", 18}, {"VK_NV_optical_flow", 19}, + {"VK_NV_partitioned_acceleration_structure", 41}, {"VK_NV_per_stage_descriptor_set", 31}, {"VK_NV_present_barrier", 22}, {"VK_NV_raw_access_chains", 24}, {"VK_NV_ray_tracing", 18}, {"VK_NV_ray_tracing_invocation_reorder", 37}, + {"VK_NV_ray_tracing_linear_swept_spheres", 39}, {"VK_NV_ray_tracing_motion_blur", 30}, {"VK_NV_ray_tracing_validation", 29}, {"VK_NV_representative_fragment_test", 35}, @@ -5461,6 +5629,7 @@ bool IsFieldPointer(Field field) { case Field::pCheckpointDataCount: case Field::pCheckpointMarker: case Field::pClearValues: + case Field::pClustersBottomLevel: case Field::pCmdBufLabels: case Field::pCode: case Field::pCodingControlInfo: @@ -5484,6 +5653,7 @@ bool IsFieldPointer(Field field) { case Field::pCommandBufferDeviceMasks: case Field::pCommandBufferInfos: case Field::pCommandBuffers: + case Field::pCommandInfos: case Field::pCommandPool: case Field::pCommittedMemoryInBytes: case Field::pCompatibility: @@ -5557,6 +5727,7 @@ bool IsFieldPointer(Field field) { case Field::pDrivers: case Field::pDrmFormatModifierProperties: case Field::pDrmFormatModifiers: + case Field::pDstSize: case Field::pDynamicMetadata: case Field::pDynamicOffsets: case Field::pDynamicState: @@ -5702,6 +5873,7 @@ bool IsFieldPointer(Field field) { case Field::pMode: case Field::pModes: case Field::pModule: + case Field::pMoveObjects: case Field::pMultisampleProperties: case Field::pMultisampleState: case Field::pMutableDescriptorTypeLists: @@ -5897,6 +6069,7 @@ bool IsFieldPointer(Field field) { case Field::pToolCount: case Field::pToolProperties: case Field::pTransitions: + case Field::pTriangleClusters: case Field::pUniformBuffer: case Field::pUniformTexelBuffer: case Field::pUpdateInfo: diff --git a/layers/vulkan/generated/error_location_helper.h b/layers/vulkan/generated/error_location_helper.h index e0638bf8dba..884ff9328f4 100644 --- a/layers/vulkan/generated/error_location_helper.h +++ b/layers/vulkan/generated/error_location_helper.h @@ -88,11 +88,14 @@ enum class Func { vkCmdBuildAccelerationStructureNV, vkCmdBuildAccelerationStructuresIndirectKHR, vkCmdBuildAccelerationStructuresKHR, + vkCmdBuildClusterAccelerationStructureIndirectNV, vkCmdBuildMicromapsEXT, + vkCmdBuildPartitionedAccelerationStructuresNV, vkCmdClearAttachments, vkCmdClearColorImage, vkCmdClearDepthStencilImage, vkCmdControlVideoCodingKHR, + vkCmdConvertCooperativeVectorMatrixNV, vkCmdCopyAccelerationStructureKHR, vkCmdCopyAccelerationStructureNV, vkCmdCopyAccelerationStructureToMemoryKHR, @@ -320,6 +323,7 @@ enum class Func { vkCmdWriteTimestamp2, vkCmdWriteTimestamp2KHR, vkCompileDeferredNV, + vkConvertCooperativeVectorMatrixNV, vkCopyAccelerationStructureKHR, vkCopyAccelerationStructureToMemoryKHR, vkCopyImageToImage, @@ -489,6 +493,7 @@ enum class Func { vkGetBufferOpaqueCaptureDescriptorDataEXT, vkGetCalibratedTimestampsEXT, vkGetCalibratedTimestampsKHR, + vkGetClusterAccelerationStructureBuildSizesNV, vkGetCudaModuleCacheNV, vkGetDeferredOperationMaxConcurrencyKHR, vkGetDeferredOperationResultKHR, @@ -570,6 +575,7 @@ enum class Func { vkGetMemoryZirconHandleFUCHSIA, vkGetMemoryZirconHandlePropertiesFUCHSIA, vkGetMicromapBuildSizesEXT, + vkGetPartitionedAccelerationStructuresBuildSizesNV, vkGetPastPresentationTimingGOOGLE, vkGetPerformanceParameterINTEL, vkGetPhysicalDeviceCalibrateableTimeDomainsEXT, @@ -577,6 +583,7 @@ enum class Func { vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV, vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR, vkGetPhysicalDeviceCooperativeMatrixPropertiesNV, + vkGetPhysicalDeviceCooperativeVectorPropertiesNV, vkGetPhysicalDeviceDirectFBPresentationSupportEXT, vkGetPhysicalDeviceDisplayPlaneProperties2KHR, vkGetPhysicalDeviceDisplayPlanePropertiesKHR, @@ -764,7 +771,9 @@ enum class Struct { VkAccelerationStructureGeometryDataKHR, VkAccelerationStructureGeometryInstancesDataKHR, VkAccelerationStructureGeometryKHR, + VkAccelerationStructureGeometryLinearSweptSpheresDataNV, VkAccelerationStructureGeometryMotionTrianglesDataNV, + VkAccelerationStructureGeometrySpheresDataNV, VkAccelerationStructureGeometryTrianglesDataKHR, VkAccelerationStructureInfoNV, VkAccelerationStructureInstanceKHR, @@ -840,6 +849,8 @@ enum class Struct { VkBufferOpaqueCaptureAddressCreateInfo, VkBufferUsageFlags2CreateInfo, VkBufferViewCreateInfo, + VkBuildPartitionedAccelerationStructureIndirectCommandNV, + VkBuildPartitionedAccelerationStructureInfoNV, VkCalibratedTimestampInfoKHR, VkCheckpointData2NV, VkCheckpointDataNV, @@ -848,6 +859,18 @@ enum class Struct { VkClearDepthStencilValue, VkClearRect, VkClearValue, + VkClusterAccelerationStructureBuildClustersBottomLevelInfoNV, + VkClusterAccelerationStructureBuildTriangleClusterInfoNV, + VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV, + VkClusterAccelerationStructureClustersBottomLevelInputNV, + VkClusterAccelerationStructureCommandsInfoNV, + VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV, + VkClusterAccelerationStructureInputInfoNV, + VkClusterAccelerationStructureInstantiateClusterInfoNV, + VkClusterAccelerationStructureMoveObjectsInfoNV, + VkClusterAccelerationStructureMoveObjectsInputNV, + VkClusterAccelerationStructureOpInputNV, + VkClusterAccelerationStructureTriangleClusterInputNV, VkCoarseSampleLocationNV, VkCoarseSampleOrderCustomNV, VkColorBlendAdvancedEXT, @@ -866,9 +889,11 @@ enum class Struct { VkComputePipelineIndirectBufferInfoNV, VkConditionalRenderingBeginInfoEXT, VkConformanceVersion, + VkConvertCooperativeVectorMatrixInfoNV, VkCooperativeMatrixFlexibleDimensionsPropertiesNV, VkCooperativeMatrixPropertiesKHR, VkCooperativeMatrixPropertiesNV, + VkCooperativeVectorPropertiesNV, VkCopyAccelerationStructureInfoKHR, VkCopyAccelerationStructureToMemoryInfoKHR, VkCopyBufferInfo2, @@ -1205,6 +1230,11 @@ enum class Struct { VkOpticalFlowSessionCreateInfoNV, VkOpticalFlowSessionCreatePrivateDataInfoNV, VkOutOfBandQueueTypeInfoNV, + VkPartitionedAccelerationStructureFlagsNV, + VkPartitionedAccelerationStructureInstancesInputNV, + VkPartitionedAccelerationStructureUpdateInstanceDataNV, + VkPartitionedAccelerationStructureWriteInstanceDataNV, + VkPartitionedAccelerationStructureWritePartitionTranslationDataNV, VkPastPresentationTimingGOOGLE, VkPerformanceConfigurationAcquireInfoINTEL, VkPerformanceCounterDescriptionKHR, @@ -1232,6 +1262,8 @@ enum class Struct { VkPhysicalDeviceBorderColorSwizzleFeaturesEXT, VkPhysicalDeviceBufferDeviceAddressFeatures, VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, + VkPhysicalDeviceClusterAccelerationStructureFeaturesNV, + VkPhysicalDeviceClusterAccelerationStructurePropertiesNV, VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI, VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI, VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI, @@ -1248,6 +1280,8 @@ enum class Struct { VkPhysicalDeviceCooperativeMatrixFeaturesNV, VkPhysicalDeviceCooperativeMatrixPropertiesKHR, VkPhysicalDeviceCooperativeMatrixPropertiesNV, + VkPhysicalDeviceCooperativeVectorFeaturesNV, + VkPhysicalDeviceCooperativeVectorPropertiesNV, VkPhysicalDeviceCopyMemoryIndirectFeaturesNV, VkPhysicalDeviceCopyMemoryIndirectPropertiesNV, VkPhysicalDeviceCornerSampledImageFeaturesNV, @@ -1403,6 +1437,8 @@ enum class Struct { VkPhysicalDeviceOpticalFlowPropertiesNV, VkPhysicalDevicePCIBusInfoPropertiesEXT, VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT, + VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV, + VkPhysicalDevicePartitionedAccelerationStructurePropertiesNV, VkPhysicalDevicePerStageDescriptorSetFeaturesNV, VkPhysicalDevicePerformanceQueryFeaturesKHR, VkPhysicalDevicePerformanceQueryPropertiesKHR, @@ -1439,6 +1475,7 @@ enum class Struct { VkPhysicalDeviceRayQueryFeaturesKHR, VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV, VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV, + VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV, VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR, VkPhysicalDeviceRayTracingMotionBlurFeaturesNV, VkPhysicalDeviceRayTracingPipelineFeaturesKHR, @@ -1637,6 +1674,7 @@ enum class Struct { VkQueueFamilyProperties2, VkQueueFamilyQueryResultStatusPropertiesKHR, VkQueueFamilyVideoPropertiesKHR, + VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV, VkRayTracingPipelineCreateInfoKHR, VkRayTracingPipelineCreateInfoNV, VkRayTracingPipelineInterfaceCreateInfoKHR, @@ -1721,6 +1759,7 @@ enum class Struct { VkSpecializationMapEntry, VkStencilOpState, VkStreamDescriptorSurfaceCreateInfoGGP, + VkStridedDeviceAddressNV, VkStridedDeviceAddressRegionKHR, VkSubmitInfo, VkSubmitInfo2, @@ -1886,6 +1925,7 @@ enum class Struct { VkWriteDescriptorSetAccelerationStructureKHR, VkWriteDescriptorSetAccelerationStructureNV, VkWriteDescriptorSetInlineUniformBlock, + VkWriteDescriptorSetPartitionedAccelerationStructureNV, VkWriteIndirectExecutionSetPipelineEXT, VkWriteIndirectExecutionSetShaderEXT, VkXYColorEXT, @@ -1929,6 +1969,7 @@ enum class Field { addressModeV, addressModeW, addressPrecision, + addressResolutionFlags, addressType, advancedBlendAllOperations, advancedBlendCoherentOperations, @@ -1940,6 +1981,7 @@ enum class Field { advancedBlendOp, alignment, allocationSize, + allowClusterAccelerationStructure, allowCommandBufferQueryCopies, allowSamplerImageViewPostSubmitCreation, alphaBlendOp, @@ -1956,6 +1998,8 @@ enum class Field { applicationNameOffset, applicationVersion, apronSize, + argCount, + argData, arrayLayer, arrayLayers, arrayOfPointers, @@ -1976,6 +2020,7 @@ enum class Field { back, baseAddress, baseArrayLayer, + baseGeometryIndexAndGeometryFlags, baseGroupX, baseGroupY, baseGroupZ, @@ -1983,6 +2028,7 @@ enum class Field { basePipelineHandle, basePipelineIndex, baseTriangle, + biasInterpretation, bidirectionalCompoundReferenceNameMask, bidirectionalFlowSupported, binaryCount, @@ -2044,7 +2090,20 @@ enum class Field { clearValueCount, clipped, closestHitShader, + clusterAccelerationStructure, + clusterBottomLevelByteAlignment, + clusterByteAlignment, + clusterFlags, + clusterID, + clusterIdOffset, + clusterReferences, + clusterReferencesCount, + clusterReferencesStride, + clusterScratchByteAlignment, clusterShadingRate, + clusterTemplateAddress, + clusterTemplateBoundsByteAlignment, + clusterTemplateByteAlignment, clustercullingShader, cmdBufLabelCount, codeSize, @@ -2126,6 +2185,11 @@ enum class Field { cooperativeMatrixWorkgroupScope, cooperativeMatrixWorkgroupScopeMaxWorkgroupSize, cooperativeMatrixWorkgroupScopeReservedSharedMemory, + cooperativeVector, + cooperativeVectorSupportedStages, + cooperativeVectorTraining, + cooperativeVectorTrainingFloat16Accumulation, + cooperativeVectorTrainingFloat32Accumulation, copyBufferAddress, copyCount, copyDstLayoutCount, @@ -2329,9 +2393,11 @@ enum class Field { drmFormatModifierTilingFeatures, dst, dstAccelerationStructure, + dstAccelerationStructureData, dstAccessMask, dstAccessMask3, dstAddress, + dstAddressesArray, dstAlphaBlendFactor, dstArrayElement, dstBinding, @@ -2340,8 +2406,12 @@ enum class Field { dstBufferRange, dstCache, dstColorBlendFactor, + dstComponentType, + dstData, dstImage, dstImageLayout, + dstImplicitData, + dstLayout, dstMicromap, dstOffset, dstOffsets, @@ -2350,7 +2420,9 @@ enum class Field { dstQueueFamilyIndex, dstRect, dstSet, + dstSizesArray, dstStageMask, + dstStride, dstSubpass, dstSubresource, dualSrcBlend, @@ -2372,12 +2444,14 @@ enum class Field { earlyFragmentSampleMaskTestBeforeSampleCounting, enable, enableCbCrDegamma, + enablePartitionTranslation, enableYDegamma, enabledExtensionCount, enabledLayerCount, enabledValidationFeatureCount, encodeFeedbackFlags, encodeInputPictureGranularity, + endCapsMode, engineNameOffset, engineVersion, event, @@ -2391,6 +2465,7 @@ enum class Field { executionSetWriteCount, expectDyadicTemporalLayerPattern, expectDyadicTemporalSubLayerPattern, + explicitAABB, exportFromImportedHandleTypes, exportObjectType, extendedDynamicState, @@ -2548,6 +2623,11 @@ enum class Field { generatePrefixNalu, geometry, geometryCount, + geometryFlags, + geometryIndex, + geometryIndexAndFlagsBuffer, + geometryIndexAndFlagsBufferStride, + geometryIndexOffset, geometryShader, geometryStreams, geometryType, @@ -2668,6 +2748,7 @@ enum class Field { independentResolveNone, index, indexBuffer, + indexBufferStride, indexCount, indexData, indexOffset, @@ -2675,6 +2756,7 @@ enum class Field { indexType, indexTypeCount, indexTypeUint8, + indexingMode, indirectAddress, indirectAddressSize, indirectBufferOffsetAlignment, @@ -2699,18 +2781,27 @@ enum class Field { initialValue, initialVirtualBufferSizeInMs, inlineUniformBlock, + input, inputAttachmentCount, inputAttachmentDescriptorSize, inputAttachmentIndex, + inputInterpretation, inputRate, inputSampleTimeUs, + inputType, instance, + instanceContributionToHitGroupIndex, instanceCount, instanceCustomIndex, instanceData, + instanceFlags, + instanceID, + instanceIndex, + instanceMask, instanceOffset, instanceShaderBindingTableRecordOffset, instances, + instantiationBoundingBoxLimit, int32, int64, integerDotProduct16BitMixedSignednessAccelerated, @@ -2780,6 +2871,7 @@ enum class Field { lineWidthGranularity, lineWidthRange, linearColorAttachment, + linearSweptSpheres, linearTilingFeatures, loadOp, localDeviceIndex, @@ -2802,7 +2894,9 @@ enum class Field { marker, mask, matrix, + matrixInterpretation, matrixMotionInstance, + maxAccelerationStructureCount, maxActiveReferencePictures, maxAnisotropy, maxArrayLayers, @@ -2818,6 +2912,11 @@ enum class Field { maxBufferCount, maxBufferSize, maxClipDistances, + maxClusterCountPerAccelerationStructure, + maxClusterGeometryIndex, + maxClusterTriangleCount, + maxClusterUniqueGeometryCount, + maxClusterVertexCount, maxCodedExtent, maxColorAttachments, maxCombinedClipAndCullDistances, @@ -2829,6 +2928,7 @@ enum class Field { maxComputeWorkGroupSize, maxComputeWorkgroupSubgroups, maxContentLightLevel, + maxCooperativeVectorComponents, maxCullDistances, maxCustomBorderColorSamplers, maxDecompressionIndirectCount, @@ -2901,6 +3001,7 @@ enum class Field { maxFramebufferLayers, maxFramebufferWidth, maxGeometryCount, + maxGeometryIndexValue, maxGeometryInputComponents, maxGeometryOutputComponents, maxGeometryOutputVertices, @@ -2927,6 +3028,8 @@ enum class Field { maxInlineUniformBlockSize, maxInlineUniformTotalSize, maxInstanceCount, + maxInstanceInGlobalPartitionCount, + maxInstancePerPartitionCount, maxInstances, maxInterpolationOffset, maxL1ReferenceCount, @@ -2951,6 +3054,7 @@ enum class Field { maxMeshWorkGroupSize, maxMeshWorkGroupTotalCount, maxMipLevels, + maxMovedBytes, maxMultiDrawCount, maxMultiviewInstanceIndex, maxMultiviewViewCount, @@ -2960,6 +3064,7 @@ enum class Field { maxOperatingPoints, maxOutputClusterCount, maxPPictureL0ReferenceCount, + maxPartitionCount, maxPerSetDescriptors, maxPerStageDescriptorAccelerationStructures, maxPerStageDescriptorInlineUniformBlocks, @@ -3056,6 +3161,9 @@ enum class Field { maxTileSize, maxTiles, maxTimelineSemaphoreValueDifference, + maxTotalClusterCount, + maxTotalTriangleCount, + maxTotalVertexCount, maxTransformFeedbackBufferDataSize, maxTransformFeedbackBufferDataStride, maxTransformFeedbackBufferSize, @@ -3063,6 +3171,7 @@ enum class Field { maxTransformFeedbackStreamDataSize, maxTransformFeedbackStreams, maxTriangleCount, + maxTrianglesPerCluster, maxUnidirectionalCompoundGroup1ReferenceCount, maxUnidirectionalCompoundReferenceCount, maxUniformBufferRange, @@ -3075,6 +3184,7 @@ enum class Field { maxVertexInputBindingStride, maxVertexInputBindings, maxVertexOutputComponents, + maxVerticesPerCluster, maxVgprAllocation, maxViewportDimensions, maxViewports, @@ -3153,6 +3263,7 @@ enum class Field { minLuminance, minMemoryMapAlignment, minPlacedMemoryMapAlignment, + minPositionTruncateBitCount, minQIndex, minQIndexDelta, minQp, @@ -3226,6 +3337,7 @@ enum class Field { newLayout, nextStage, noInvocationFragmentShadingRates, + noMoveOverlap, nodeIndex, nonCoherentAtomSize, nonSeamlessCubeMap, @@ -3236,9 +3348,11 @@ enum class Field { numAABBs, numAvailableSgprs, numAvailableVgprs, + numColumns, numPhases, numPhysicalSgprs, numPhysicalVgprs, + numRows, numUsedSgprs, numUsedVgprs, object, @@ -3250,6 +3364,13 @@ enum class Field { offset, oldLayout, oldSwapchain, + opInput, + opMode, + opType, + opacityMicromapArray, + opacityMicromapIndexBuffer, + opacityMicromapIndexBufferStride, + opacityMicromapIndexType, opaqueCaptureAddress, opaqueCaptureDescriptorData, operation, @@ -3315,6 +3436,7 @@ enum class Field { pCheckpointDataCount, pCheckpointMarker, pClearValues, + pClustersBottomLevel, pCmdBufLabels, pCode, pCodingControlInfo, @@ -3338,6 +3460,7 @@ enum class Field { pCommandBufferDeviceMasks, pCommandBufferInfos, pCommandBuffers, + pCommandInfos, pCommandPool, pCommittedMemoryInBytes, pCompatibility, @@ -3411,6 +3534,7 @@ enum class Field { pDrivers, pDrmFormatModifierProperties, pDrmFormatModifiers, + pDstSize, pDynamicMetadata, pDynamicOffsets, pDynamicState, @@ -3556,6 +3680,7 @@ enum class Field { pMode, pModes, pModule, + pMoveObjects, pMultisampleProperties, pMultisampleState, pMutableDescriptorTypeLists, @@ -3751,6 +3876,7 @@ enum class Field { pToolCount, pToolProperties, pTransitions, + pTriangleClusters, pUniformBuffer, pUniformTexelBuffer, pUpdateInfo, @@ -3798,6 +3924,10 @@ enum class Field { paramCount, parameter, parameters, + partitionCount, + partitionIndex, + partitionTranslation, + partitionedAccelerationStructure, passOp, patch, patchControlPoints, @@ -3880,6 +4010,7 @@ enum class Field { polygonMode, polygonModePointSize, poolSizeCount, + positionTruncateBitCount, postMergeIndex, postMergeSubpassCount, postSubpassSampleLocationsCount, @@ -4018,6 +4149,9 @@ enum class Field { qy, qz, r, + radiusData, + radiusFormat, + radiusStride, range, rangeCount, rasterizationOrder, @@ -4081,6 +4215,7 @@ enum class Field { requiredSubgroupSizeStages, requiresDedicatedAllocation, requiresGopRemainingFrames, + reserved, residencyAlignedMipSize, residencyNonResidentStrict, residencyStandard2DBlockShape, @@ -4093,6 +4228,7 @@ enum class Field { resourceDeviceIndex, resourceOffset, resourceUsage, + resultType, robustBufferAccess, robustBufferAccess2, robustBufferAccessUpdateAfterBind, @@ -4351,9 +4487,11 @@ enum class Field { sparseResidencyImage2D, sparseResidencyImage3D, specVersion, + spheres, splitInstanceBindRegionCount, src, srcAccelerationStructure, + srcAccelerationStructureData, srcAccessMask, srcAccessMask3, srcAddress, @@ -4365,8 +4503,14 @@ enum class Field { srcBufferRange, srcCacheCount, srcColorBlendFactor, + srcComponentType, + srcData, srcImage, srcImageLayout, + srcInfos, + srcInfosArray, + srcInfosCount, + srcLayout, srcOffset, srcOffsets, srcPictureResource, @@ -4374,7 +4518,9 @@ enum class Field { srcQueueFamilyIndex, srcRect, srcSet, + srcSize, srcStageMask, + srcStride, srcSubpass, srcSubresource, srgb, @@ -4385,6 +4531,7 @@ enum class Field { stageMask, stages, standardSampleLocations, + startAddress, stateCommandBuffer, staticInstance, stdHeaderVersion, @@ -4432,6 +4579,7 @@ enum class Field { streamDescriptor, strictLines, stride, + strideInBytes, stripeArea, stripeInfoCount, stripeSemaphoreInfoCount, @@ -4554,9 +4702,11 @@ enum class Field { transformT0, transformT1, transitionCount, + transpose, triStripVertexOrderIndependentOfProvokingVertex, triangleArray, triangleArrayStride, + triangleCount, triangleFans, triangles, tuningMode, @@ -4621,6 +4771,8 @@ enum class Field { vertexBindingDescriptionCount, vertexBindingDivisorCount, vertexBindingUnit, + vertexBuffer, + vertexBufferStride, vertexCount, vertexData, vertexDynamicStride, @@ -4719,6 +4871,9 @@ enum class Enum { VkBuildAccelerationStructureModeKHR, VkBuildMicromapModeEXT, VkChromaLocation, + VkClusterAccelerationStructureOpModeNV, + VkClusterAccelerationStructureOpTypeNV, + VkClusterAccelerationStructureTypeNV, VkCoarseSampleOrderTypeNV, VkColorSpaceKHR, VkCommandBufferLevel, @@ -4726,6 +4881,7 @@ enum class Enum { VkComponentSwizzle, VkComponentTypeKHR, VkConservativeRasterizationModeEXT, + VkCooperativeVectorMatrixLayoutNV, VkCopyAccelerationStructureModeKHR, VkCopyMicromapModeEXT, VkCoverageModulationModeNV, @@ -4779,6 +4935,7 @@ enum class Enum { VkOpticalFlowPerformanceLevelNV, VkOpticalFlowSessionBindingPointNV, VkOutOfBandQueueTypeNV, + VkPartitionedAccelerationStructureOpTypeNV, VkPerformanceConfigurationTypeINTEL, VkPerformanceCounterScopeKHR, VkPerformanceCounterStorageKHR, @@ -4804,6 +4961,8 @@ enum class Enum { VkQueueGlobalPriority, VkRasterizationOrderAMD, VkRayTracingInvocationReorderModeNV, + VkRayTracingLssIndexingModeNV, + VkRayTracingLssPrimitiveEndCapsModeNV, VkRayTracingShaderGroupTypeKHR, VkResult, VkSamplerAddressMode, @@ -4850,6 +5009,10 @@ enum class FlagBitmask { VkBufferUsageFlagBits2, VkBuildAccelerationStructureFlagBitsKHR, VkBuildMicromapFlagBitsEXT, + VkClusterAccelerationStructureAddressResolutionFlagBitsNV, + VkClusterAccelerationStructureClusterFlagBitsNV, + VkClusterAccelerationStructureGeometryFlagBitsNV, + VkClusterAccelerationStructureIndexFormatFlagBitsNV, VkColorComponentFlagBits, VkCommandBufferResetFlagBits, VkCommandBufferUsageFlagBits, @@ -4913,6 +5076,7 @@ enum class FlagBitmask { VkOpticalFlowGridSizeFlagBitsNV, VkOpticalFlowSessionCreateFlagBitsNV, VkOpticalFlowUsageFlagBitsNV, + VkPartitionedAccelerationStructureInstanceFlagBitsNV, VkPeerMemoryFeatureFlagBits, VkPerformanceCounterDescriptionFlagBitsKHR, VkPhysicalDeviceSchedulingControlsFlagBitsARM, @@ -5307,10 +5471,12 @@ enum class Extension { _VK_NVX_multiview_per_view_attributes, _VK_NV_acquire_winrt_display, _VK_NV_clip_space_w_scaling, + _VK_NV_cluster_acceleration_structure, _VK_NV_command_buffer_inheritance, _VK_NV_compute_shader_derivatives, _VK_NV_cooperative_matrix, _VK_NV_cooperative_matrix2, + _VK_NV_cooperative_vector, _VK_NV_copy_memory_indirect, _VK_NV_corner_sampled_image, _VK_NV_coverage_reduction_mode, @@ -5343,11 +5509,13 @@ enum class Extension { _VK_NV_memory_decompression, _VK_NV_mesh_shader, _VK_NV_optical_flow, + _VK_NV_partitioned_acceleration_structure, _VK_NV_per_stage_descriptor_set, _VK_NV_present_barrier, _VK_NV_raw_access_chains, _VK_NV_ray_tracing, _VK_NV_ray_tracing_invocation_reorder, + _VK_NV_ray_tracing_linear_swept_spheres, _VK_NV_ray_tracing_motion_blur, _VK_NV_ray_tracing_validation, _VK_NV_representative_fragment_test, diff --git a/layers/vulkan/generated/feature_requirements_helper.cpp b/layers/vulkan/generated/feature_requirements_helper.cpp index 2c991b188cc..546a3af2f1e 100644 --- a/layers/vulkan/generated/feature_requirements_helper.cpp +++ b/layers/vulkan/generated/feature_requirements_helper.cpp @@ -567,6 +567,22 @@ FeatureAndName AddFeature(APIVersion api_version, vkt::Feature feature, void **i return {&vk_struct->bufferDeviceAddressMultiDevice, "VkPhysicalDeviceBufferDeviceAddressFeatures::bufferDeviceAddressMultiDevice"}; } + case Feature::clusterAccelerationStructure: { + auto vk_struct = const_cast( + vku::FindStructInPNextChain(*inout_pnext_chain)); + if (!vk_struct) { + vk_struct = new VkPhysicalDeviceClusterAccelerationStructureFeaturesNV; + *vk_struct = vku::InitStructHelper(); + if (*inout_pnext_chain) { + vvl::PnextChainAdd(*inout_pnext_chain, vk_struct); + } else { + *inout_pnext_chain = vk_struct; + } + } + return {&vk_struct->clusterAccelerationStructure, + "VkPhysicalDeviceClusterAccelerationStructureFeaturesNV::clusterAccelerationStructure"}; + } + case Feature::clustercullingShader: { auto vk_struct = const_cast( vku::FindStructInPNextChain(*inout_pnext_chain)); @@ -850,6 +866,37 @@ FeatureAndName AddFeature(APIVersion api_version, vkt::Feature feature, void **i "VkPhysicalDeviceCooperativeMatrixFeaturesKHR::cooperativeMatrixRobustBufferAccess"}; } + case Feature::cooperativeVector: { + auto vk_struct = const_cast( + vku::FindStructInPNextChain(*inout_pnext_chain)); + if (!vk_struct) { + vk_struct = new VkPhysicalDeviceCooperativeVectorFeaturesNV; + *vk_struct = vku::InitStructHelper(); + if (*inout_pnext_chain) { + vvl::PnextChainAdd(*inout_pnext_chain, vk_struct); + } else { + *inout_pnext_chain = vk_struct; + } + } + return {&vk_struct->cooperativeVector, "VkPhysicalDeviceCooperativeVectorFeaturesNV::cooperativeVector"}; + } + + case Feature::cooperativeVectorTraining: { + auto vk_struct = const_cast( + vku::FindStructInPNextChain(*inout_pnext_chain)); + if (!vk_struct) { + vk_struct = new VkPhysicalDeviceCooperativeVectorFeaturesNV; + *vk_struct = vku::InitStructHelper(); + if (*inout_pnext_chain) { + vvl::PnextChainAdd(*inout_pnext_chain, vk_struct); + } else { + *inout_pnext_chain = vk_struct; + } + } + return {&vk_struct->cooperativeVectorTraining, + "VkPhysicalDeviceCooperativeVectorFeaturesNV::cooperativeVectorTraining"}; + } + case Feature::indirectCopy: { auto vk_struct = const_cast( vku::FindStructInPNextChain(*inout_pnext_chain)); @@ -4159,6 +4206,22 @@ FeatureAndName AddFeature(APIVersion api_version, vkt::Feature feature, void **i "VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT::pageableDeviceLocalMemory"}; } + case Feature::partitionedAccelerationStructure: { + auto vk_struct = const_cast( + vku::FindStructInPNextChain(*inout_pnext_chain)); + if (!vk_struct) { + vk_struct = new VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV; + *vk_struct = vku::InitStructHelper(); + if (*inout_pnext_chain) { + vvl::PnextChainAdd(*inout_pnext_chain, vk_struct); + } else { + *inout_pnext_chain = vk_struct; + } + } + return {&vk_struct->partitionedAccelerationStructure, + "VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV::partitionedAccelerationStructure"}; + } + case Feature::dynamicPipelineLayout: { auto vk_struct = const_cast( vku::FindStructInPNextChain(*inout_pnext_chain)); @@ -4388,21 +4451,21 @@ FeatureAndName AddFeature(APIVersion api_version, vkt::Feature feature, void **i } #ifdef VK_ENABLE_BETA_EXTENSIONS - case Feature::constantAlphaColorBlendFactors: { - auto vk_struct = const_cast( - vku::FindStructInPNextChain(*inout_pnext_chain)); - if (!vk_struct) { - vk_struct = new VkPhysicalDevicePortabilitySubsetFeaturesKHR; - *vk_struct = vku::InitStructHelper(); - if (*inout_pnext_chain) { - vvl::PnextChainAdd(*inout_pnext_chain, vk_struct); - } else { - *inout_pnext_chain = vk_struct; + case Feature::constantAlphaColorBlendFactors : { + auto vk_struct = const_cast( + vku::FindStructInPNextChain(*inout_pnext_chain)); + if (!vk_struct) { + vk_struct = new VkPhysicalDevicePortabilitySubsetFeaturesKHR; + *vk_struct = vku::InitStructHelper(); + if (*inout_pnext_chain) { + vvl::PnextChainAdd(*inout_pnext_chain, vk_struct); + } else { + *inout_pnext_chain = vk_struct; + } } + return {&vk_struct->constantAlphaColorBlendFactors, + "VkPhysicalDevicePortabilitySubsetFeaturesKHR::constantAlphaColorBlendFactors"}; } - return {&vk_struct->constantAlphaColorBlendFactors, - "VkPhysicalDevicePortabilitySubsetFeaturesKHR::constantAlphaColorBlendFactors"}; - } #endif // VK_ENABLE_BETA_EXTENSIONS #ifdef VK_ENABLE_BETA_EXTENSIONS @@ -4985,6 +5048,36 @@ FeatureAndName AddFeature(APIVersion api_version, vkt::Feature feature, void **i "VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV::rayTracingInvocationReorder"}; } + case Feature::linearSweptSpheres: { + auto vk_struct = const_cast( + vku::FindStructInPNextChain(*inout_pnext_chain)); + if (!vk_struct) { + vk_struct = new VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV; + *vk_struct = vku::InitStructHelper(); + if (*inout_pnext_chain) { + vvl::PnextChainAdd(*inout_pnext_chain, vk_struct); + } else { + *inout_pnext_chain = vk_struct; + } + } + return {&vk_struct->linearSweptSpheres, "VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV::linearSweptSpheres"}; + } + + case Feature::spheres: { + auto vk_struct = const_cast( + vku::FindStructInPNextChain(*inout_pnext_chain)); + if (!vk_struct) { + vk_struct = new VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV; + *vk_struct = vku::InitStructHelper(); + if (*inout_pnext_chain) { + vvl::PnextChainAdd(*inout_pnext_chain, vk_struct); + } else { + *inout_pnext_chain = vk_struct; + } + } + return {&vk_struct->spheres, "VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV::spheres"}; + } + case Feature::rayTracingMaintenance1: { auto vk_struct = const_cast( vku::FindStructInPNextChain(*inout_pnext_chain)); diff --git a/layers/vulkan/generated/feature_requirements_helper.h b/layers/vulkan/generated/feature_requirements_helper.h index 8dd38279666..bf221404e6c 100644 --- a/layers/vulkan/generated/feature_requirements_helper.h +++ b/layers/vulkan/generated/feature_requirements_helper.h @@ -80,6 +80,8 @@ enum class Feature { bufferDeviceAddressCaptureReplay, // VkPhysicalDeviceBufferDeviceAddressFeatures, VkPhysicalDeviceVulkan12Features bufferDeviceAddressMultiDevice, + // VkPhysicalDeviceClusterAccelerationStructureFeaturesNV + clusterAccelerationStructure, // VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI clustercullingShader, // VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI @@ -116,6 +118,10 @@ enum class Feature { cooperativeMatrix, // VkPhysicalDeviceCooperativeMatrixFeaturesKHR, VkPhysicalDeviceCooperativeMatrixFeaturesNV cooperativeMatrixRobustBufferAccess, + // VkPhysicalDeviceCooperativeVectorFeaturesNV + cooperativeVector, + // VkPhysicalDeviceCooperativeVectorFeaturesNV + cooperativeVectorTraining, // VkPhysicalDeviceCopyMemoryIndirectFeaturesNV indirectCopy, // VkPhysicalDeviceCornerSampledImageFeaturesNV @@ -578,6 +584,8 @@ enum class Feature { opticalFlow, // VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT pageableDeviceLocalMemory, + // VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV + partitionedAccelerationStructure, // VkPhysicalDevicePerStageDescriptorSetFeaturesNV dynamicPipelineLayout, // VkPhysicalDevicePerStageDescriptorSetFeaturesNV @@ -672,6 +680,10 @@ enum class Feature { rayQuery, // VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV rayTracingInvocationReorder, + // VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV + linearSweptSpheres, + // VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV + spheres, // VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR rayTracingMaintenance1, // VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR diff --git a/layers/vulkan/generated/object_tracker.cpp b/layers/vulkan/generated/object_tracker.cpp index 367ec4de4ec..fea2c176908 100644 --- a/layers/vulkan/generated/object_tracker.cpp +++ b/layers/vulkan/generated/object_tracker.cpp @@ -7567,6 +7567,15 @@ bool Device::PreCallValidateGetDynamicRenderingTilePropertiesQCOM(VkDevice devic return skip; } +// vkGetPhysicalDeviceCooperativeVectorPropertiesNV: +// Checked by chassis: physicalDevice: "VUID-vkGetPhysicalDeviceCooperativeVectorPropertiesNV-physicalDevice-parameter" + +// vkConvertCooperativeVectorMatrixNV: +// Checked by chassis: device: "VUID-vkConvertCooperativeVectorMatrixNV-device-parameter" + +// vkCmdConvertCooperativeVectorMatrixNV: +// Checked by chassis: commandBuffer: "VUID-vkCmdConvertCooperativeVectorMatrixNV-commandBuffer-parameter" + bool Device::PreCallValidateSetLatencySleepModeNV(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepModeInfoNV* pSleepModeInfo, const ErrorObject& error_obj) const { @@ -7628,6 +7637,18 @@ bool Device::PreCallValidateGetLatencyTimingsNV(VkDevice device, VkSwapchainKHR #endif // VK_USE_PLATFORM_SCREEN_QNX +// vkGetClusterAccelerationStructureBuildSizesNV: +// Checked by chassis: device: "VUID-vkGetClusterAccelerationStructureBuildSizesNV-device-parameter" + +// vkCmdBuildClusterAccelerationStructureIndirectNV: +// Checked by chassis: commandBuffer: "VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-commandBuffer-parameter" + +// vkGetPartitionedAccelerationStructuresBuildSizesNV: +// Checked by chassis: device: "VUID-vkGetPartitionedAccelerationStructuresBuildSizesNV-device-parameter" + +// vkCmdBuildPartitionedAccelerationStructuresNV: +// Checked by chassis: commandBuffer: "VUID-vkCmdBuildPartitionedAccelerationStructuresNV-commandBuffer-parameter" + bool Device::PreCallValidateGetGeneratedCommandsMemoryRequirementsEXT(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoEXT* pInfo, VkMemoryRequirements2* pMemoryRequirements, diff --git a/layers/vulkan/generated/pnext_chain_extraction.cpp b/layers/vulkan/generated/pnext_chain_extraction.cpp index ee7834305c4..e2f85866844 100644 --- a/layers/vulkan/generated/pnext_chain_extraction.cpp +++ b/layers/vulkan/generated/pnext_chain_extraction.cpp @@ -2789,6 +2789,11 @@ void PnextChainFree(void *chain) { header->pNext = nullptr; delete reinterpret_cast(header); break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_LINEAR_SWEPT_SPHERES_FEATURES_NV: + PnextChainFree(header->pNext); + header->pNext = nullptr; + delete reinterpret_cast(header); + break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV: PnextChainFree(header->pNext); header->pNext = nullptr; @@ -2966,6 +2971,16 @@ void PnextChainFree(void *chain) { header->pNext = nullptr; delete reinterpret_cast(header); break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_VECTOR_PROPERTIES_NV: + PnextChainFree(header->pNext); + header->pNext = nullptr; + delete reinterpret_cast(header); + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_VECTOR_FEATURES_NV: + PnextChainFree(header->pNext); + header->pNext = nullptr; + delete reinterpret_cast(header); + break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV: PnextChainFree(header->pNext); header->pNext = nullptr; @@ -3158,6 +3173,41 @@ void PnextChainFree(void *chain) { header->pNext = nullptr; delete reinterpret_cast(header); break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_FEATURES_NV: + PnextChainFree(header->pNext); + header->pNext = nullptr; + delete reinterpret_cast(header); + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_PROPERTIES_NV: + PnextChainFree(header->pNext); + header->pNext = nullptr; + delete reinterpret_cast(header); + break; + case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CLUSTER_ACCELERATION_STRUCTURE_CREATE_INFO_NV: + PnextChainFree(header->pNext); + header->pNext = nullptr; + delete reinterpret_cast(header); + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_FEATURES_NV: + PnextChainFree(header->pNext); + header->pNext = nullptr; + delete reinterpret_cast(header); + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_PROPERTIES_NV: + PnextChainFree(header->pNext); + header->pNext = nullptr; + delete reinterpret_cast(header); + break; + case VK_STRUCTURE_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_FLAGS_NV: + PnextChainFree(header->pNext); + header->pNext = nullptr; + delete reinterpret_cast(header); + break; + case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_PARTITIONED_ACCELERATION_STRUCTURE_NV: + PnextChainFree(header->pNext); + header->pNext = nullptr; + delete reinterpret_cast(header); + break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT: PnextChainFree(header->pNext); header->pNext = nullptr; diff --git a/layers/vulkan/generated/spirv_validation_helper.cpp b/layers/vulkan/generated/spirv_validation_helper.cpp index 645a88d7fc7..22c2fb2d184 100644 --- a/layers/vulkan/generated/spirv_validation_helper.cpp +++ b/layers/vulkan/generated/spirv_validation_helper.cpp @@ -263,6 +263,16 @@ const std::unordered_multimap &GetSpirvCapabilites( {spv::CapabilityCooperativeMatrixPerElementOperationsNV, {0, &DeviceFeatures::cooperativeMatrixPerElementOperations, nullptr, ""}}, {spv::CapabilityCooperativeMatrixTensorAddressingNV, {0, &DeviceFeatures::cooperativeMatrixTensorAddressing, nullptr, ""}}, {spv::CapabilityCooperativeMatrixBlockLoadsNV, {0, &DeviceFeatures::cooperativeMatrixBlockLoads, nullptr, ""}}, + // Not found in current SPIR-V Headers + // {spv::CapabilityRayTracingSpheresGeometryNV, {0, &DeviceFeatures::spheres, nullptr, ""}}, + // Not found in current SPIR-V Headers + // {spv::CapabilityRayTracingLinearSweptSpheresGeometryNV, {0, &DeviceFeatures::linearSweptSpheres, nullptr, ""}}, + // Not found in current SPIR-V Headers + // {spv::CapabilityRayTracingClusterAccelerationStructureNV, {0, &DeviceFeatures::clusterAccelerationStructure, nullptr, ""}}, + // Not found in current SPIR-V Headers + // {spv::CapabilityCooperativeVectorNV, {0, &DeviceFeatures::cooperativeVector, nullptr, ""}}, + // Not found in current SPIR-V Headers + // {spv::CapabilityCooperativeVectorTrainingNV, {0, &DeviceFeatures::cooperativeVectorTraining, nullptr, ""}}, }; // clang-format on return spirv_capabilities; @@ -379,6 +389,8 @@ const std::unordered_multimap &GetSpirvExte {"SPV_KHR_relaxed_extended_instruction", {0, nullptr, &DeviceExtensions::vk_khr_shader_relaxed_extended_instruction, ""}}, {"SPV_NV_cooperative_matrix2", {0, nullptr, &DeviceExtensions::vk_nv_cooperative_matrix2, ""}}, {"SPV_NV_tensor_addressing", {0, nullptr, &DeviceExtensions::vk_nv_cooperative_matrix2, ""}}, + {"SPV_NV_cluster_acceleration_structure", {0, nullptr, &DeviceExtensions::vk_nv_cluster_acceleration_structure, ""}}, + {"SPV_NV_cooperative_vector", {0, nullptr, &DeviceExtensions::vk_nv_cooperative_vector, ""}}, }; // clang-format on return spirv_extensions; @@ -1125,6 +1137,8 @@ static inline std::string SpvExtensionRequirments(std::string_view extension) { {"SPV_KHR_relaxed_extended_instruction", {{vvl::Extension::_VK_KHR_shader_relaxed_extended_instruction}}}, {"SPV_NV_cooperative_matrix2", {{vvl::Extension::_VK_NV_cooperative_matrix2}}}, {"SPV_NV_tensor_addressing", {{vvl::Extension::_VK_NV_cooperative_matrix2}}}, + {"SPV_NV_cluster_acceleration_structure", {{vvl::Extension::_VK_NV_cluster_acceleration_structure}}}, + {"SPV_NV_cooperative_vector", {{vvl::Extension::_VK_NV_cooperative_vector}}}, }; // VUs before catch unknown extensions diff --git a/layers/vulkan/generated/stateless_device_methods.h b/layers/vulkan/generated/stateless_device_methods.h index 78c96406bf5..263a0883a39 100644 --- a/layers/vulkan/generated/stateless_device_methods.h +++ b/layers/vulkan/generated/stateless_device_methods.h @@ -1412,6 +1412,11 @@ bool PreCallValidateGetFramebufferTilePropertiesQCOM(VkDevice device, VkFramebuf bool PreCallValidateGetDynamicRenderingTilePropertiesQCOM(VkDevice device, const VkRenderingInfo* pRenderingInfo, VkTilePropertiesQCOM* pProperties, const ErrorObject& error_obj) const override; +bool PreCallValidateConvertCooperativeVectorMatrixNV(VkDevice device, const VkConvertCooperativeVectorMatrixInfoNV* pInfo, + const ErrorObject& error_obj) const override; +bool PreCallValidateCmdConvertCooperativeVectorMatrixNV(VkCommandBuffer commandBuffer, uint32_t infoCount, + const VkConvertCooperativeVectorMatrixInfoNV* pInfos, + const ErrorObject& error_obj) const override; bool PreCallValidateSetLatencySleepModeNV(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepModeInfoNV* pSleepModeInfo, const ErrorObject& error_obj) const override; bool PreCallValidateLatencySleepNV(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepInfoNV* pSleepInfo, @@ -1430,6 +1435,19 @@ bool PreCallValidateGetScreenBufferPropertiesQNX(VkDevice device, const struct _ VkScreenBufferPropertiesQNX* pProperties, const ErrorObject& error_obj) const override; #endif // VK_USE_PLATFORM_SCREEN_QNX +bool PreCallValidateGetClusterAccelerationStructureBuildSizesNV(VkDevice device, + const VkClusterAccelerationStructureInputInfoNV* pInfo, + VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo, + const ErrorObject& error_obj) const override; +bool PreCallValidateCmdBuildClusterAccelerationStructureIndirectNV( + VkCommandBuffer commandBuffer, const VkClusterAccelerationStructureCommandsInfoNV* pCommandInfos, + const ErrorObject& error_obj) const override; +bool PreCallValidateGetPartitionedAccelerationStructuresBuildSizesNV( + VkDevice device, const VkPartitionedAccelerationStructureInstancesInputNV* pInfo, + VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo, const ErrorObject& error_obj) const override; +bool PreCallValidateCmdBuildPartitionedAccelerationStructuresNV(VkCommandBuffer commandBuffer, + const VkBuildPartitionedAccelerationStructureInfoNV* pBuildInfo, + const ErrorObject& error_obj) const override; bool PreCallValidateGetGeneratedCommandsMemoryRequirementsEXT(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoEXT* pInfo, VkMemoryRequirements2* pMemoryRequirements, diff --git a/layers/vulkan/generated/stateless_instance_methods.h b/layers/vulkan/generated/stateless_instance_methods.h index f87763f327e..e2bba5d8cca 100644 --- a/layers/vulkan/generated/stateless_instance_methods.h +++ b/layers/vulkan/generated/stateless_instance_methods.h @@ -366,6 +366,9 @@ bool PreCallValidateGetPhysicalDeviceOpticalFlowImageFormatsNV(VkPhysicalDevice uint32_t* pFormatCount, VkOpticalFlowImageFormatPropertiesNV* pImageFormatProperties, const ErrorObject& error_obj) const override; +bool PreCallValidateGetPhysicalDeviceCooperativeVectorPropertiesNV(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, + VkCooperativeVectorPropertiesNV* pProperties, + const ErrorObject& error_obj) const override; bool PreCallValidateGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixFlexibleDimensionsPropertiesNV* pProperties, const ErrorObject& error_obj) const override; diff --git a/layers/vulkan/generated/stateless_validation_helper.cpp b/layers/vulkan/generated/stateless_validation_helper.cpp index 8c594d5a3f6..518b1be02c9 100644 --- a/layers/vulkan/generated/stateless_validation_helper.cpp +++ b/layers/vulkan/generated/stateless_validation_helper.cpp @@ -3536,6 +3536,28 @@ bool Context::ValidatePnextFeatureStructContents(const Location& loc, const VkBa } } break; + // Validation code for VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV structure members + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_LINEAR_SWEPT_SPHERES_FEATURES_NV: { // Covers + // VUID-VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV-sType-sType + + if (!IsExtEnabled(extensions.vk_nv_ray_tracing_linear_swept_spheres)) { + skip |= log.LogError( + pnext_vuid, error_obj.handle, loc.dot(Field::pNext), + "includes a pointer to a VkStructureType " + "(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_LINEAR_SWEPT_SPHERES_FEATURES_NV), but its parent extension " + "VK_NV_ray_tracing_linear_swept_spheres has not been enabled."); + } + if (is_const_param) { + [[maybe_unused]] const Location pNext_loc = + loc.pNext(Struct::VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV); + VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV* structure = + (VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV*)header; + skip |= ValidateBool32(pNext_loc.dot(Field::spheres), structure->spheres); + + skip |= ValidateBool32(pNext_loc.dot(Field::linearSweptSpheres), structure->linearSweptSpheres); + } + } break; + // Validation code for VkPhysicalDeviceLinearColorAttachmentFeaturesNV structure members case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV: { // Covers // VUID-VkPhysicalDeviceLinearColorAttachmentFeaturesNV-sType-sType @@ -3931,6 +3953,25 @@ bool Context::ValidatePnextFeatureStructContents(const Location& loc, const VkBa } } break; + // Validation code for VkPhysicalDeviceCooperativeVectorFeaturesNV structure members + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_VECTOR_FEATURES_NV: { // Covers + // VUID-VkPhysicalDeviceCooperativeVectorFeaturesNV-sType-sType + + if (!IsExtEnabled(extensions.vk_nv_cooperative_vector)) { + skip |= log.LogError(pnext_vuid, error_obj.handle, loc.dot(Field::pNext), + "includes a pointer to a VkStructureType " + "(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_VECTOR_FEATURES_NV), but its parent extension " + "VK_NV_cooperative_vector has not been enabled."); + } + if (is_const_param) { + [[maybe_unused]] const Location pNext_loc = loc.pNext(Struct::VkPhysicalDeviceCooperativeVectorFeaturesNV); + VkPhysicalDeviceCooperativeVectorFeaturesNV* structure = (VkPhysicalDeviceCooperativeVectorFeaturesNV*)header; + skip |= ValidateBool32(pNext_loc.dot(Field::cooperativeVector), structure->cooperativeVector); + + skip |= ValidateBool32(pNext_loc.dot(Field::cooperativeVectorTraining), structure->cooperativeVectorTraining); + } + } break; + // Validation code for VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV structure members case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV: { // Covers // VUID-VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV-sType-sType @@ -4294,6 +4335,47 @@ bool Context::ValidatePnextFeatureStructContents(const Location& loc, const VkBa } } break; + // Validation code for VkPhysicalDeviceClusterAccelerationStructureFeaturesNV structure members + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_FEATURES_NV: { // Covers + // VUID-VkPhysicalDeviceClusterAccelerationStructureFeaturesNV-sType-sType + + if (!IsExtEnabled(extensions.vk_nv_cluster_acceleration_structure)) { + skip |= log.LogError( + pnext_vuid, error_obj.handle, loc.dot(Field::pNext), + "includes a pointer to a VkStructureType " + "(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_FEATURES_NV), but its parent extension " + "VK_NV_cluster_acceleration_structure has not been enabled."); + } + if (is_const_param) { + [[maybe_unused]] const Location pNext_loc = + loc.pNext(Struct::VkPhysicalDeviceClusterAccelerationStructureFeaturesNV); + VkPhysicalDeviceClusterAccelerationStructureFeaturesNV* structure = + (VkPhysicalDeviceClusterAccelerationStructureFeaturesNV*)header; + skip |= ValidateBool32(pNext_loc.dot(Field::clusterAccelerationStructure), structure->clusterAccelerationStructure); + } + } break; + + // Validation code for VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV structure members + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_FEATURES_NV: { // Covers + // VUID-VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV-sType-sType + + if (!IsExtEnabled(extensions.vk_nv_partitioned_acceleration_structure)) { + skip |= log.LogError( + pnext_vuid, error_obj.handle, loc.dot(Field::pNext), + "includes a pointer to a VkStructureType " + "(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_FEATURES_NV), but its parent extension " + "VK_NV_partitioned_acceleration_structure has not been enabled."); + } + if (is_const_param) { + [[maybe_unused]] const Location pNext_loc = + loc.pNext(Struct::VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV); + VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV* structure = + (VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV*)header; + skip |= ValidateBool32(pNext_loc.dot(Field::partitionedAccelerationStructure), + structure->partitionedAccelerationStructure); + } + } break; + // Validation code for VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT structure members case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT: { // Covers // VUID-VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT-sType-sType @@ -10879,6 +10961,68 @@ bool Context::ValidatePnextStructContents(const Location& loc, const VkBaseOutSt } } break; + // Validation code for VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV structure members + case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CLUSTER_ACCELERATION_STRUCTURE_CREATE_INFO_NV: { // Covers + // VUID-VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV-sType-sType + + if (!IsExtEnabled(extensions.vk_nv_cluster_acceleration_structure)) { + skip |= log.LogError(pnext_vuid, error_obj.handle, loc.dot(Field::pNext), + "includes a pointer to a VkStructureType " + "(VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CLUSTER_ACCELERATION_STRUCTURE_CREATE_INFO_NV), but " + "its parent extension " + "VK_NV_cluster_acceleration_structure has not been enabled."); + } + if (is_const_param) { + [[maybe_unused]] const Location pNext_loc = + loc.pNext(Struct::VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV); + VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV* structure = + (VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV*)header; + skip |= ValidateBool32(pNext_loc.dot(Field::allowClusterAccelerationStructure), + structure->allowClusterAccelerationStructure); + } + } break; + + // Validation code for VkPartitionedAccelerationStructureFlagsNV structure members + case VK_STRUCTURE_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_FLAGS_NV: { // Covers + // VUID-VkPartitionedAccelerationStructureFlagsNV-sType-sType + + if (!IsExtEnabled(extensions.vk_nv_partitioned_acceleration_structure)) { + skip |= log.LogError(pnext_vuid, error_obj.handle, loc.dot(Field::pNext), + "includes a pointer to a VkStructureType " + "(VK_STRUCTURE_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_FLAGS_NV), but its parent extension " + "VK_NV_partitioned_acceleration_structure has not been enabled."); + } + if (is_const_param) { + [[maybe_unused]] const Location pNext_loc = loc.pNext(Struct::VkPartitionedAccelerationStructureFlagsNV); + VkPartitionedAccelerationStructureFlagsNV* structure = (VkPartitionedAccelerationStructureFlagsNV*)header; + skip |= ValidateBool32(pNext_loc.dot(Field::enablePartitionTranslation), structure->enablePartitionTranslation); + } + } break; + + // Validation code for VkWriteDescriptorSetPartitionedAccelerationStructureNV structure members + case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_PARTITIONED_ACCELERATION_STRUCTURE_NV: { // Covers + // VUID-VkWriteDescriptorSetPartitionedAccelerationStructureNV-sType-sType + + if (!IsExtEnabled(extensions.vk_nv_partitioned_acceleration_structure)) { + skip |= log.LogError( + pnext_vuid, error_obj.handle, loc.dot(Field::pNext), + "includes a pointer to a VkStructureType " + "(VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_PARTITIONED_ACCELERATION_STRUCTURE_NV), but its parent extension " + "VK_NV_partitioned_acceleration_structure has not been enabled."); + } + if (is_const_param) { + [[maybe_unused]] const Location pNext_loc = + loc.pNext(Struct::VkWriteDescriptorSetPartitionedAccelerationStructureNV); + VkWriteDescriptorSetPartitionedAccelerationStructureNV* structure = + (VkWriteDescriptorSetPartitionedAccelerationStructureNV*)header; + skip |= ValidateArray( + pNext_loc.dot(Field::accelerationStructureCount), pNext_loc.dot(Field::pAccelerationStructures), + structure->accelerationStructureCount, &structure->pAccelerationStructures, true, false, + "VUID-VkWriteDescriptorSetPartitionedAccelerationStructureNV-accelerationStructureCount-arraylength", + "VUID-VkWriteDescriptorSetPartitionedAccelerationStructureNV-pAccelerationStructures-parameter"); + } + } break; + // Validation code for VkGeneratedCommandsPipelineInfoEXT structure members case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_PIPELINE_INFO_EXT: { // Covers // VUID-VkGeneratedCommandsPipelineInfoEXT-sType-sType @@ -11176,6 +11320,7 @@ bool Instance::PreCallValidateCreateDevice(VkPhysicalDevice physicalDevice, cons VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT, @@ -11185,6 +11330,7 @@ bool Instance::PreCallValidateCreateDevice(VkPhysicalDevice physicalDevice, cons VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_VECTOR_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV, @@ -11273,6 +11419,7 @@ bool Instance::PreCallValidateCreateDevice(VkPhysicalDevice physicalDevice, cons VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR, @@ -11298,6 +11445,7 @@ bool Instance::PreCallValidateCreateDevice(VkPhysicalDevice physicalDevice, cons VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_LINEAR_SWEPT_SPHERES_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR, @@ -13030,7 +13178,8 @@ bool Device::PreCallValidateUpdateDescriptorSets(VkDevice device, uint32_t descr constexpr std::array allowed_structs_VkWriteDescriptorSet = { VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR, VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV, - VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK}; + VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK, + VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_PARTITIONED_ACCELERATION_STRUCTURE_NV}; skip |= context.ValidateStructPnext( pDescriptorWrites_loc, pDescriptorWrites[descriptorWriteIndex].pNext, allowed_structs_VkWriteDescriptorSet.size(), @@ -14564,12 +14713,14 @@ bool Instance::PreCallValidateGetPhysicalDeviceProperties2(VkPhysicalDevice phys constexpr std::array allowed_structs_VkPhysicalDeviceProperties2 = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_VECTOR_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT, @@ -14621,6 +14772,7 @@ bool Instance::PreCallValidateGetPhysicalDeviceProperties2(VkPhysicalDevice phys VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES, @@ -17643,7 +17795,8 @@ bool Device::PreCallValidateCmdPushDescriptorSet(VkCommandBuffer commandBuffer, constexpr std::array allowed_structs_VkWriteDescriptorSet = { VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR, VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV, - VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK}; + VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK, + VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_PARTITIONED_ACCELERATION_STRUCTURE_NV}; skip |= context.ValidateStructPnext( pDescriptorWrites_loc, pDescriptorWrites[descriptorWriteIndex].pNext, allowed_structs_VkWriteDescriptorSet.size(), @@ -17803,7 +17956,8 @@ bool Device::PreCallValidateCmdPushDescriptorSet2(VkCommandBuffer commandBuffer, constexpr std::array allowed_structs_VkWriteDescriptorSet = { VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR, VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV, - VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK}; + VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK, + VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_PARTITIONED_ACCELERATION_STRUCTURE_NV}; skip |= context.ValidateStructPnext( pDescriptorWrites_loc, pPushDescriptorSetInfo->pDescriptorWrites[descriptorWriteIndex].pNext, @@ -28043,6 +28197,137 @@ bool Device::PreCallValidateGetDynamicRenderingTilePropertiesQCOM(VkDevice devic return skip; } +bool Instance::PreCallValidateGetPhysicalDeviceCooperativeVectorPropertiesNV(VkPhysicalDevice physicalDevice, + uint32_t* pPropertyCount, + VkCooperativeVectorPropertiesNV* pProperties, + const ErrorObject& error_obj) const { + bool skip = false; + + const auto& physdev_extensions = physical_device_extensions.at(physicalDevice); + Context context(*this, error_obj, physdev_extensions, IsExtEnabled(physdev_extensions.vk_khr_maintenance5)); + [[maybe_unused]] const Location loc = error_obj.location; + skip |= context.ValidateStructTypeArray( + loc.dot(Field::pPropertyCount), loc.dot(Field::pProperties), pPropertyCount, pProperties, + VK_STRUCTURE_TYPE_COOPERATIVE_VECTOR_PROPERTIES_NV, true, false, false, "VUID-VkCooperativeVectorPropertiesNV-sType-sType", + kVUIDUndefined, "VUID-vkGetPhysicalDeviceCooperativeVectorPropertiesNV-pPropertyCount-parameter", kVUIDUndefined); + if (pProperties != nullptr) { + for (uint32_t pPropertyIndex = 0; pPropertyIndex < *pPropertyCount; ++pPropertyIndex) { + [[maybe_unused]] const Location pProperties_loc = loc.dot(Field::pProperties, pPropertyIndex); + skip |= context.ValidateStructPnext(pProperties_loc, pProperties[pPropertyIndex].pNext, 0, nullptr, + GeneratedVulkanHeaderVersion, "VUID-VkCooperativeVectorPropertiesNV-pNext-pNext", + kVUIDUndefined, false); + + skip |= context.ValidateRangedEnum(pProperties_loc.dot(Field::inputType), vvl::Enum::VkComponentTypeKHR, + pProperties[pPropertyIndex].inputType, + "VUID-VkCooperativeVectorPropertiesNV-inputType-parameter"); + + skip |= context.ValidateRangedEnum(pProperties_loc.dot(Field::inputInterpretation), vvl::Enum::VkComponentTypeKHR, + pProperties[pPropertyIndex].inputInterpretation, + "VUID-VkCooperativeVectorPropertiesNV-inputInterpretation-parameter"); + + skip |= context.ValidateRangedEnum(pProperties_loc.dot(Field::matrixInterpretation), vvl::Enum::VkComponentTypeKHR, + pProperties[pPropertyIndex].matrixInterpretation, + "VUID-VkCooperativeVectorPropertiesNV-matrixInterpretation-parameter"); + + skip |= context.ValidateRangedEnum(pProperties_loc.dot(Field::biasInterpretation), vvl::Enum::VkComponentTypeKHR, + pProperties[pPropertyIndex].biasInterpretation, + "VUID-VkCooperativeVectorPropertiesNV-biasInterpretation-parameter"); + + skip |= context.ValidateRangedEnum(pProperties_loc.dot(Field::resultType), vvl::Enum::VkComponentTypeKHR, + pProperties[pPropertyIndex].resultType, + "VUID-VkCooperativeVectorPropertiesNV-resultType-parameter"); + + skip |= context.ValidateBool32(pProperties_loc.dot(Field::transpose), pProperties[pPropertyIndex].transpose); + } + } + return skip; +} + +bool Device::PreCallValidateConvertCooperativeVectorMatrixNV(VkDevice device, const VkConvertCooperativeVectorMatrixInfoNV* pInfo, + const ErrorObject& error_obj) const { + bool skip = false; + Context context(*this, error_obj, extensions); + [[maybe_unused]] const Location loc = error_obj.location; + if (!IsExtEnabled(extensions.vk_nv_cooperative_vector)) + skip |= OutputExtensionError(loc, {vvl::Extension::_VK_NV_cooperative_vector}); + skip |= context.ValidateStructType(loc.dot(Field::pInfo), pInfo, VK_STRUCTURE_TYPE_CONVERT_COOPERATIVE_VECTOR_MATRIX_INFO_NV, + true, "VUID-vkConvertCooperativeVectorMatrixNV-pInfo-parameter", + "VUID-VkConvertCooperativeVectorMatrixInfoNV-sType-sType"); + if (pInfo != nullptr) { + [[maybe_unused]] const Location pInfo_loc = loc.dot(Field::pInfo); + skip |= context.ValidateStructPnext(pInfo_loc, pInfo->pNext, 0, nullptr, GeneratedVulkanHeaderVersion, + "VUID-VkConvertCooperativeVectorMatrixInfoNV-pNext-pNext", kVUIDUndefined, true); + + // No xml-driven validation + + skip |= context.ValidateRequiredPointer(pInfo_loc.dot(Field::pDstSize), pInfo->pDstSize, + "VUID-VkConvertCooperativeVectorMatrixInfoNV-pDstSize-parameter"); + + // No xml-driven validation + + skip |= context.ValidateRangedEnum(pInfo_loc.dot(Field::srcComponentType), vvl::Enum::VkComponentTypeKHR, + pInfo->srcComponentType, + "VUID-VkConvertCooperativeVectorMatrixInfoNV-srcComponentType-parameter"); + + skip |= context.ValidateRangedEnum(pInfo_loc.dot(Field::dstComponentType), vvl::Enum::VkComponentTypeKHR, + pInfo->dstComponentType, + "VUID-VkConvertCooperativeVectorMatrixInfoNV-dstComponentType-parameter"); + + skip |= context.ValidateRangedEnum(pInfo_loc.dot(Field::srcLayout), vvl::Enum::VkCooperativeVectorMatrixLayoutNV, + pInfo->srcLayout, "VUID-VkConvertCooperativeVectorMatrixInfoNV-srcLayout-parameter"); + + skip |= context.ValidateRangedEnum(pInfo_loc.dot(Field::dstLayout), vvl::Enum::VkCooperativeVectorMatrixLayoutNV, + pInfo->dstLayout, "VUID-VkConvertCooperativeVectorMatrixInfoNV-dstLayout-parameter"); + } + return skip; +} + +bool Device::PreCallValidateCmdConvertCooperativeVectorMatrixNV(VkCommandBuffer commandBuffer, uint32_t infoCount, + const VkConvertCooperativeVectorMatrixInfoNV* pInfos, + const ErrorObject& error_obj) const { + bool skip = false; + Context context(*this, error_obj, extensions); + [[maybe_unused]] const Location loc = error_obj.location; + if (!IsExtEnabled(extensions.vk_nv_cooperative_vector)) + skip |= OutputExtensionError(loc, {vvl::Extension::_VK_NV_cooperative_vector}); + skip |= context.ValidateStructTypeArray(loc.dot(Field::infoCount), loc.dot(Field::pInfos), infoCount, pInfos, + VK_STRUCTURE_TYPE_CONVERT_COOPERATIVE_VECTOR_MATRIX_INFO_NV, true, true, + "VUID-VkConvertCooperativeVectorMatrixInfoNV-sType-sType", + "VUID-vkCmdConvertCooperativeVectorMatrixNV-pInfos-parameter", + "VUID-vkCmdConvertCooperativeVectorMatrixNV-infoCount-arraylength"); + if (pInfos != nullptr) { + for (uint32_t infoIndex = 0; infoIndex < infoCount; ++infoIndex) { + [[maybe_unused]] const Location pInfos_loc = loc.dot(Field::pInfos, infoIndex); + skip |= context.ValidateStructPnext(pInfos_loc, pInfos[infoIndex].pNext, 0, nullptr, GeneratedVulkanHeaderVersion, + "VUID-VkConvertCooperativeVectorMatrixInfoNV-pNext-pNext", kVUIDUndefined, true); + + // No xml-driven validation + + skip |= context.ValidateRequiredPointer(pInfos_loc.dot(Field::pDstSize), pInfos[infoIndex].pDstSize, + "VUID-VkConvertCooperativeVectorMatrixInfoNV-pDstSize-parameter"); + + // No xml-driven validation + + skip |= context.ValidateRangedEnum(pInfos_loc.dot(Field::srcComponentType), vvl::Enum::VkComponentTypeKHR, + pInfos[infoIndex].srcComponentType, + "VUID-VkConvertCooperativeVectorMatrixInfoNV-srcComponentType-parameter"); + + skip |= context.ValidateRangedEnum(pInfos_loc.dot(Field::dstComponentType), vvl::Enum::VkComponentTypeKHR, + pInfos[infoIndex].dstComponentType, + "VUID-VkConvertCooperativeVectorMatrixInfoNV-dstComponentType-parameter"); + + skip |= context.ValidateRangedEnum(pInfos_loc.dot(Field::srcLayout), vvl::Enum::VkCooperativeVectorMatrixLayoutNV, + pInfos[infoIndex].srcLayout, + "VUID-VkConvertCooperativeVectorMatrixInfoNV-srcLayout-parameter"); + + skip |= context.ValidateRangedEnum(pInfos_loc.dot(Field::dstLayout), vvl::Enum::VkCooperativeVectorMatrixLayoutNV, + pInfos[infoIndex].dstLayout, + "VUID-VkConvertCooperativeVectorMatrixInfoNV-dstLayout-parameter"); + } + } + return skip; +} + bool Device::PreCallValidateSetLatencySleepModeNV(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepModeInfoNV* pSleepModeInfo, const ErrorObject& error_obj) const { @@ -28180,6 +28465,265 @@ bool Device::PreCallValidateGetScreenBufferPropertiesQNX(VkDevice device, const } #endif // VK_USE_PLATFORM_SCREEN_QNX +bool Device::PreCallValidateGetClusterAccelerationStructureBuildSizesNV(VkDevice device, + const VkClusterAccelerationStructureInputInfoNV* pInfo, + VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo, + const ErrorObject& error_obj) const { + bool skip = false; + Context context(*this, error_obj, extensions); + [[maybe_unused]] const Location loc = error_obj.location; + if (!IsExtEnabled(extensions.vk_nv_cluster_acceleration_structure)) + skip |= OutputExtensionError(loc, {vvl::Extension::_VK_NV_cluster_acceleration_structure}); + skip |= context.ValidateStructType(loc.dot(Field::pInfo), pInfo, VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_INPUT_INFO_NV, + true, "VUID-vkGetClusterAccelerationStructureBuildSizesNV-pInfo-parameter", + "VUID-VkClusterAccelerationStructureInputInfoNV-sType-sType"); + if (pInfo != nullptr) { + [[maybe_unused]] const Location pInfo_loc = loc.dot(Field::pInfo); + skip |= context.ValidateStructPnext(pInfo_loc, pInfo->pNext, 0, nullptr, GeneratedVulkanHeaderVersion, + "VUID-VkClusterAccelerationStructureInputInfoNV-pNext-pNext", kVUIDUndefined, true); + + skip |= context.ValidateFlags(pInfo_loc.dot(Field::flags), vvl::FlagBitmask::VkBuildAccelerationStructureFlagBitsKHR, + AllVkBuildAccelerationStructureFlagBitsKHR, pInfo->flags, kOptionalFlags, + "VUID-VkClusterAccelerationStructureInputInfoNV-flags-parameter"); + + skip |= context.ValidateRangedEnum(pInfo_loc.dot(Field::opType), vvl::Enum::VkClusterAccelerationStructureOpTypeNV, + pInfo->opType, "VUID-VkClusterAccelerationStructureInputInfoNV-opType-parameter"); + + skip |= context.ValidateRangedEnum(pInfo_loc.dot(Field::opMode), vvl::Enum::VkClusterAccelerationStructureOpModeNV, + pInfo->opMode, "VUID-VkClusterAccelerationStructureInputInfoNV-opMode-parameter"); + + skip |= + context.ValidateStructType(pInfo_loc.dot(Field::pClustersBottomLevel), pInfo->opInput.pClustersBottomLevel, + VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_CLUSTERS_BOTTOM_LEVEL_INPUT_NV, true, + kVUIDUndefined, "VUID-VkClusterAccelerationStructureClustersBottomLevelInputNV-sType-sType"); + + if (pInfo->opInput.pClustersBottomLevel != nullptr) { + [[maybe_unused]] const Location pClustersBottomLevel_loc = pInfo_loc.dot(Field::pClustersBottomLevel); + skip |= context.ValidateStructPnext( + pClustersBottomLevel_loc, pInfo->opInput.pClustersBottomLevel->pNext, 0, nullptr, GeneratedVulkanHeaderVersion, + "VUID-VkClusterAccelerationStructureClustersBottomLevelInputNV-pNext-pNext", kVUIDUndefined, true); + } + + skip |= context.ValidateStructType(pInfo_loc.dot(Field::pTriangleClusters), pInfo->opInput.pTriangleClusters, + VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_TRIANGLE_CLUSTER_INPUT_NV, true, + kVUIDUndefined, "VUID-VkClusterAccelerationStructureTriangleClusterInputNV-sType-sType"); + + if (pInfo->opInput.pTriangleClusters != nullptr) { + [[maybe_unused]] const Location pTriangleClusters_loc = pInfo_loc.dot(Field::pTriangleClusters); + skip |= context.ValidateStructPnext( + pTriangleClusters_loc, pInfo->opInput.pTriangleClusters->pNext, 0, nullptr, GeneratedVulkanHeaderVersion, + "VUID-VkClusterAccelerationStructureTriangleClusterInputNV-pNext-pNext", kVUIDUndefined, true); + + skip |= context.ValidateRangedEnum(pTriangleClusters_loc.dot(Field::vertexFormat), vvl::Enum::VkFormat, + pInfo->opInput.pTriangleClusters->vertexFormat, + "VUID-VkClusterAccelerationStructureTriangleClusterInputNV-vertexFormat-parameter"); + } + + skip |= context.ValidateStructType(pInfo_loc.dot(Field::pMoveObjects), pInfo->opInput.pMoveObjects, + VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_MOVE_OBJECTS_INPUT_NV, true, + kVUIDUndefined, "VUID-VkClusterAccelerationStructureMoveObjectsInputNV-sType-sType"); + + if (pInfo->opInput.pMoveObjects != nullptr) { + [[maybe_unused]] const Location pMoveObjects_loc = pInfo_loc.dot(Field::pMoveObjects); + skip |= context.ValidateStructPnext( + pMoveObjects_loc, pInfo->opInput.pMoveObjects->pNext, 0, nullptr, GeneratedVulkanHeaderVersion, + "VUID-VkClusterAccelerationStructureMoveObjectsInputNV-pNext-pNext", kVUIDUndefined, true); + + skip |= context.ValidateRangedEnum(pMoveObjects_loc.dot(Field::type), vvl::Enum::VkClusterAccelerationStructureTypeNV, + pInfo->opInput.pMoveObjects->type, + "VUID-VkClusterAccelerationStructureMoveObjectsInputNV-type-parameter"); + + skip |= context.ValidateBool32(pMoveObjects_loc.dot(Field::noMoveOverlap), pInfo->opInput.pMoveObjects->noMoveOverlap); + } + } + skip |= context.ValidateStructType(loc.dot(Field::pSizeInfo), pSizeInfo, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR, true, + "VUID-vkGetClusterAccelerationStructureBuildSizesNV-pSizeInfo-parameter", + "VUID-VkAccelerationStructureBuildSizesInfoKHR-sType-sType"); + if (pSizeInfo != nullptr) { + [[maybe_unused]] const Location pSizeInfo_loc = loc.dot(Field::pSizeInfo); + skip |= context.ValidateStructPnext(pSizeInfo_loc, pSizeInfo->pNext, 0, nullptr, GeneratedVulkanHeaderVersion, + "VUID-VkAccelerationStructureBuildSizesInfoKHR-pNext-pNext", kVUIDUndefined, false); + } + return skip; +} + +bool Device::PreCallValidateCmdBuildClusterAccelerationStructureIndirectNV( + VkCommandBuffer commandBuffer, const VkClusterAccelerationStructureCommandsInfoNV* pCommandInfos, + const ErrorObject& error_obj) const { + bool skip = false; + Context context(*this, error_obj, extensions); + [[maybe_unused]] const Location loc = error_obj.location; + if (!IsExtEnabled(extensions.vk_nv_cluster_acceleration_structure)) + skip |= OutputExtensionError(loc, {vvl::Extension::_VK_NV_cluster_acceleration_structure}); + skip |= context.ValidateStructType(loc.dot(Field::pCommandInfos), pCommandInfos, + VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_COMMANDS_INFO_NV, true, + "VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-pCommandInfos-parameter", + "VUID-VkClusterAccelerationStructureCommandsInfoNV-sType-sType"); + if (pCommandInfos != nullptr) { + [[maybe_unused]] const Location pCommandInfos_loc = loc.dot(Field::pCommandInfos); + skip |= context.ValidateStructPnext(pCommandInfos_loc, pCommandInfos->pNext, 0, nullptr, GeneratedVulkanHeaderVersion, + "VUID-VkClusterAccelerationStructureCommandsInfoNV-pNext-pNext", kVUIDUndefined, true); + + skip |= context.ValidateStructType(pCommandInfos_loc.dot(Field::input), &(pCommandInfos->input), + VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_INPUT_INFO_NV, false, kVUIDUndefined, + "VUID-VkClusterAccelerationStructureInputInfoNV-sType-sType"); + + skip |= context.ValidateStructPnext(pCommandInfos_loc, pCommandInfos->input.pNext, 0, nullptr, GeneratedVulkanHeaderVersion, + "VUID-VkClusterAccelerationStructureInputInfoNV-pNext-pNext", kVUIDUndefined, true); + + skip |= + context.ValidateFlags(pCommandInfos_loc.dot(Field::flags), vvl::FlagBitmask::VkBuildAccelerationStructureFlagBitsKHR, + AllVkBuildAccelerationStructureFlagBitsKHR, pCommandInfos->input.flags, kOptionalFlags, + "VUID-VkClusterAccelerationStructureInputInfoNV-flags-parameter"); + + skip |= context.ValidateRangedEnum(pCommandInfos_loc.dot(Field::opType), vvl::Enum::VkClusterAccelerationStructureOpTypeNV, + pCommandInfos->input.opType, + "VUID-VkClusterAccelerationStructureInputInfoNV-opType-parameter"); + + skip |= context.ValidateRangedEnum(pCommandInfos_loc.dot(Field::opMode), vvl::Enum::VkClusterAccelerationStructureOpModeNV, + pCommandInfos->input.opMode, + "VUID-VkClusterAccelerationStructureInputInfoNV-opMode-parameter"); + + skip |= context.ValidateStructType( + pCommandInfos_loc.dot(Field::pClustersBottomLevel), pCommandInfos->input.opInput.pClustersBottomLevel, + VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_CLUSTERS_BOTTOM_LEVEL_INPUT_NV, true, kVUIDUndefined, + "VUID-VkClusterAccelerationStructureClustersBottomLevelInputNV-sType-sType"); + + if (pCommandInfos->input.opInput.pClustersBottomLevel != nullptr) { + [[maybe_unused]] const Location pClustersBottomLevel_loc = pCommandInfos_loc.dot(Field::pClustersBottomLevel); + skip |= context.ValidateStructPnext(pClustersBottomLevel_loc, pCommandInfos->input.opInput.pClustersBottomLevel->pNext, + 0, nullptr, GeneratedVulkanHeaderVersion, + "VUID-VkClusterAccelerationStructureClustersBottomLevelInputNV-pNext-pNext", + kVUIDUndefined, true); + } + + skip |= context.ValidateStructType(pCommandInfos_loc.dot(Field::pTriangleClusters), + pCommandInfos->input.opInput.pTriangleClusters, + VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_TRIANGLE_CLUSTER_INPUT_NV, true, + kVUIDUndefined, "VUID-VkClusterAccelerationStructureTriangleClusterInputNV-sType-sType"); + + if (pCommandInfos->input.opInput.pTriangleClusters != nullptr) { + [[maybe_unused]] const Location pTriangleClusters_loc = pCommandInfos_loc.dot(Field::pTriangleClusters); + skip |= context.ValidateStructPnext(pTriangleClusters_loc, pCommandInfos->input.opInput.pTriangleClusters->pNext, 0, + nullptr, GeneratedVulkanHeaderVersion, + "VUID-VkClusterAccelerationStructureTriangleClusterInputNV-pNext-pNext", + kVUIDUndefined, true); + + skip |= context.ValidateRangedEnum(pTriangleClusters_loc.dot(Field::vertexFormat), vvl::Enum::VkFormat, + pCommandInfos->input.opInput.pTriangleClusters->vertexFormat, + "VUID-VkClusterAccelerationStructureTriangleClusterInputNV-vertexFormat-parameter"); + } + + skip |= context.ValidateStructType(pCommandInfos_loc.dot(Field::pMoveObjects), pCommandInfos->input.opInput.pMoveObjects, + VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_MOVE_OBJECTS_INPUT_NV, true, + kVUIDUndefined, "VUID-VkClusterAccelerationStructureMoveObjectsInputNV-sType-sType"); + + if (pCommandInfos->input.opInput.pMoveObjects != nullptr) { + [[maybe_unused]] const Location pMoveObjects_loc = pCommandInfos_loc.dot(Field::pMoveObjects); + skip |= context.ValidateStructPnext( + pMoveObjects_loc, pCommandInfos->input.opInput.pMoveObjects->pNext, 0, nullptr, GeneratedVulkanHeaderVersion, + "VUID-VkClusterAccelerationStructureMoveObjectsInputNV-pNext-pNext", kVUIDUndefined, true); + + skip |= context.ValidateRangedEnum(pMoveObjects_loc.dot(Field::type), vvl::Enum::VkClusterAccelerationStructureTypeNV, + pCommandInfos->input.opInput.pMoveObjects->type, + "VUID-VkClusterAccelerationStructureMoveObjectsInputNV-type-parameter"); + + skip |= context.ValidateBool32(pMoveObjects_loc.dot(Field::noMoveOverlap), + pCommandInfos->input.opInput.pMoveObjects->noMoveOverlap); + } + + // No xml-driven validation + + // No xml-driven validation + + // No xml-driven validation + + skip |= context.ValidateFlags(pCommandInfos_loc.dot(Field::addressResolutionFlags), + vvl::FlagBitmask::VkClusterAccelerationStructureAddressResolutionFlagBitsNV, + AllVkClusterAccelerationStructureAddressResolutionFlagBitsNV, + pCommandInfos->addressResolutionFlags, kOptionalFlags, + "VUID-VkClusterAccelerationStructureCommandsInfoNV-addressResolutionFlags-parameter"); + } + return skip; +} + +bool Device::PreCallValidateGetPartitionedAccelerationStructuresBuildSizesNV( + VkDevice device, const VkPartitionedAccelerationStructureInstancesInputNV* pInfo, + VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo, const ErrorObject& error_obj) const { + bool skip = false; + Context context(*this, error_obj, extensions); + [[maybe_unused]] const Location loc = error_obj.location; + if (!IsExtEnabled(extensions.vk_nv_partitioned_acceleration_structure)) + skip |= OutputExtensionError(loc, {vvl::Extension::_VK_NV_partitioned_acceleration_structure}); + skip |= context.ValidateStructType(loc.dot(Field::pInfo), pInfo, + VK_STRUCTURE_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCES_INPUT_NV, true, + "VUID-vkGetPartitionedAccelerationStructuresBuildSizesNV-pInfo-parameter", + "VUID-VkPartitionedAccelerationStructureInstancesInputNV-sType-sType"); + if (pInfo != nullptr) { + [[maybe_unused]] const Location pInfo_loc = loc.dot(Field::pInfo); + constexpr std::array allowed_structs_VkPartitionedAccelerationStructureInstancesInputNV = { + VK_STRUCTURE_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_FLAGS_NV}; + + skip |= context.ValidateStructPnext( + pInfo_loc, pInfo->pNext, allowed_structs_VkPartitionedAccelerationStructureInstancesInputNV.size(), + allowed_structs_VkPartitionedAccelerationStructureInstancesInputNV.data(), GeneratedVulkanHeaderVersion, + "VUID-VkPartitionedAccelerationStructureInstancesInputNV-pNext-pNext", + "VUID-VkPartitionedAccelerationStructureInstancesInputNV-sType-unique", true); + + skip |= context.ValidateFlags(pInfo_loc.dot(Field::flags), vvl::FlagBitmask::VkBuildAccelerationStructureFlagBitsKHR, + AllVkBuildAccelerationStructureFlagBitsKHR, pInfo->flags, kOptionalFlags, + "VUID-VkPartitionedAccelerationStructureInstancesInputNV-flags-parameter"); + } + skip |= context.ValidateStructType(loc.dot(Field::pSizeInfo), pSizeInfo, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR, true, + "VUID-vkGetPartitionedAccelerationStructuresBuildSizesNV-pSizeInfo-parameter", + "VUID-VkAccelerationStructureBuildSizesInfoKHR-sType-sType"); + if (pSizeInfo != nullptr) { + [[maybe_unused]] const Location pSizeInfo_loc = loc.dot(Field::pSizeInfo); + skip |= context.ValidateStructPnext(pSizeInfo_loc, pSizeInfo->pNext, 0, nullptr, GeneratedVulkanHeaderVersion, + "VUID-VkAccelerationStructureBuildSizesInfoKHR-pNext-pNext", kVUIDUndefined, false); + } + return skip; +} + +bool Device::PreCallValidateCmdBuildPartitionedAccelerationStructuresNV( + VkCommandBuffer commandBuffer, const VkBuildPartitionedAccelerationStructureInfoNV* pBuildInfo, + const ErrorObject& error_obj) const { + bool skip = false; + Context context(*this, error_obj, extensions); + [[maybe_unused]] const Location loc = error_obj.location; + if (!IsExtEnabled(extensions.vk_nv_partitioned_acceleration_structure)) + skip |= OutputExtensionError(loc, {vvl::Extension::_VK_NV_partitioned_acceleration_structure}); + skip |= context.ValidateStructType(loc.dot(Field::pBuildInfo), pBuildInfo, + VK_STRUCTURE_TYPE_BUILD_PARTITIONED_ACCELERATION_STRUCTURE_INFO_NV, true, + "VUID-vkCmdBuildPartitionedAccelerationStructuresNV-pBuildInfo-parameter", + "VUID-VkBuildPartitionedAccelerationStructureInfoNV-sType-sType"); + if (pBuildInfo != nullptr) { + [[maybe_unused]] const Location pBuildInfo_loc = loc.dot(Field::pBuildInfo); + skip |= context.ValidateStructPnext(pBuildInfo_loc, pBuildInfo->pNext, 0, nullptr, GeneratedVulkanHeaderVersion, + "VUID-VkBuildPartitionedAccelerationStructureInfoNV-pNext-pNext", kVUIDUndefined, true); + + skip |= context.ValidateStructType(pBuildInfo_loc.dot(Field::input), &(pBuildInfo->input), + VK_STRUCTURE_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCES_INPUT_NV, false, + kVUIDUndefined, "VUID-VkPartitionedAccelerationStructureInstancesInputNV-sType-sType"); + + constexpr std::array allowed_structs_VkPartitionedAccelerationStructureInstancesInputNV = { + VK_STRUCTURE_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_FLAGS_NV}; + + skip |= context.ValidateStructPnext( + pBuildInfo_loc, pBuildInfo->input.pNext, allowed_structs_VkPartitionedAccelerationStructureInstancesInputNV.size(), + allowed_structs_VkPartitionedAccelerationStructureInstancesInputNV.data(), GeneratedVulkanHeaderVersion, + "VUID-VkPartitionedAccelerationStructureInstancesInputNV-pNext-pNext", + "VUID-VkPartitionedAccelerationStructureInstancesInputNV-sType-unique", true); + + skip |= context.ValidateFlags(pBuildInfo_loc.dot(Field::flags), vvl::FlagBitmask::VkBuildAccelerationStructureFlagBitsKHR, + AllVkBuildAccelerationStructureFlagBitsKHR, pBuildInfo->input.flags, kOptionalFlags, + "VUID-VkPartitionedAccelerationStructureInstancesInputNV-flags-parameter"); + } + return skip; +} + bool Device::PreCallValidateGetGeneratedCommandsMemoryRequirementsEXT(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoEXT* pInfo, VkMemoryRequirements2* pMemoryRequirements, @@ -29248,7 +29792,8 @@ bool Device::PreCallValidateCreateRayTracingPipelinesKHR(VkDevice device, VkDefe [[maybe_unused]] const Location pCreateInfos_loc = loc.dot(Field::pCreateInfos, createInfoIndex); constexpr std::array allowed_structs_VkRayTracingPipelineCreateInfoKHR = { VK_STRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHR, VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO, - VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO, VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO}; + VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO, VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO, + VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CLUSTER_ACCELERATION_STRUCTURE_CREATE_INFO_NV}; skip |= context.ValidateStructPnext( pCreateInfos_loc, pCreateInfos[createInfoIndex].pNext, allowed_structs_VkRayTracingPipelineCreateInfoKHR.size(), diff --git a/layers/vulkan/generated/sync_validation_types.cpp b/layers/vulkan/generated/sync_validation_types.cpp index 13aeec73061..32e9e688896 100644 --- a/layers/vulkan/generated/sync_validation_types.cpp +++ b/layers/vulkan/generated/sync_validation_types.cpp @@ -23,8 +23,8 @@ #include "sync_validation_types.h" // clang-format off -const std::array& syncAccessInfoByAccessIndex() { -static const std::array variable = { { +const std::array& syncAccessInfoByAccessIndex() { +static const std::array variable = { { { "SYNC_ACCESS_INDEX_NONE", VK_PIPELINE_STAGE_2_NONE, @@ -956,6 +956,20 @@ static const std::array variable = { { SYNC_CLUSTER_CULLING_SHADER_HUAWEI_UNIFORM_READ, SYNC_CLUSTER_CULLING_SHADER_HUAWEI_UNIFORM_READ_BIT }, + { + "SYNC_CONVERT_COOPERATIVE_VECTOR_MATRIX_NV_TRANSFER_READ", + VK_PIPELINE_STAGE_2_CONVERT_COOPERATIVE_VECTOR_MATRIX_BIT_NV, + VK_ACCESS_2_TRANSFER_READ_BIT, + SYNC_CONVERT_COOPERATIVE_VECTOR_MATRIX_NV_TRANSFER_READ, + SYNC_CONVERT_COOPERATIVE_VECTOR_MATRIX_NV_TRANSFER_READ_BIT + }, + { + "SYNC_CONVERT_COOPERATIVE_VECTOR_MATRIX_NV_TRANSFER_WRITE", + VK_PIPELINE_STAGE_2_CONVERT_COOPERATIVE_VECTOR_MATRIX_BIT_NV, + VK_ACCESS_2_TRANSFER_WRITE_BIT, + SYNC_CONVERT_COOPERATIVE_VECTOR_MATRIX_NV_TRANSFER_WRITE, + SYNC_CONVERT_COOPERATIVE_VECTOR_MATRIX_NV_TRANSFER_WRITE_BIT + }, { "SYNC_PRESENT_ENGINE_SYNCVAL_PRESENT_ACQUIRE_READ_SYNCVAL", VK_PIPELINE_STAGE_2_PRESENT_ENGINE_BIT_SYNCVAL, @@ -1189,6 +1203,10 @@ const std::map& syncAccessMaskByStage SYNC_CLUSTER_CULLING_SHADER_HUAWEI_SHADER_STORAGE_WRITE_BIT | SYNC_CLUSTER_CULLING_SHADER_HUAWEI_UNIFORM_READ_BIT )}, + { VK_PIPELINE_STAGE_2_CONVERT_COOPERATIVE_VECTOR_MATRIX_BIT_NV, ( + SYNC_CONVERT_COOPERATIVE_VECTOR_MATRIX_NV_TRANSFER_READ_BIT | + SYNC_CONVERT_COOPERATIVE_VECTOR_MATRIX_NV_TRANSFER_WRITE_BIT + )}, { VK_PIPELINE_STAGE_2_PRESENT_ENGINE_BIT_SYNCVAL, ( SYNC_PRESENT_ENGINE_BIT_SYNCVAL_PRESENT_ACQUIRE_READ_BIT_SYNCVAL | SYNC_PRESENT_ENGINE_BIT_SYNCVAL_PRESENT_PRESENTED_BIT_SYNCVAL @@ -1248,7 +1266,8 @@ const std::map& syncAccessMaskByAccessBit() SYNC_MICROMAP_BUILD_EXT_TRANSFER_READ_BIT | SYNC_COPY_TRANSFER_READ_BIT | SYNC_RESOLVE_TRANSFER_READ_BIT | - SYNC_BLIT_TRANSFER_READ_BIT + SYNC_BLIT_TRANSFER_READ_BIT | + SYNC_CONVERT_COOPERATIVE_VECTOR_MATRIX_NV_TRANSFER_READ_BIT )}, { VK_ACCESS_2_TRANSFER_WRITE_BIT, ( SYNC_ACCELERATION_STRUCTURE_BUILD_TRANSFER_WRITE_BIT | @@ -1257,7 +1276,8 @@ const std::map& syncAccessMaskByAccessBit() SYNC_COPY_TRANSFER_WRITE_BIT | SYNC_RESOLVE_TRANSFER_WRITE_BIT | SYNC_BLIT_TRANSFER_WRITE_BIT | - SYNC_CLEAR_TRANSFER_WRITE_BIT + SYNC_CLEAR_TRANSFER_WRITE_BIT | + SYNC_CONVERT_COOPERATIVE_VECTOR_MATRIX_NV_TRANSFER_WRITE_BIT )}, { VK_ACCESS_2_HOST_READ_BIT, ( SYNC_HOST_HOST_READ_BIT @@ -1625,6 +1645,10 @@ const vvl::unordered_map& syncDirectSt VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT | VK_ACCESS_2_UNIFORM_READ_BIT )}, + { VK_PIPELINE_STAGE_2_CONVERT_COOPERATIVE_VECTOR_MATRIX_BIT_NV, ( + VK_ACCESS_2_TRANSFER_READ_BIT | + VK_ACCESS_2_TRANSFER_WRITE_BIT + )}, { VK_PIPELINE_STAGE_2_PRESENT_ENGINE_BIT_SYNCVAL, ( VK_ACCESS_2_PRESENT_ACQUIRE_READ_BIT_SYNCVAL | VK_ACCESS_2_PRESENT_PRESENTED_BIT_SYNCVAL @@ -1643,7 +1667,8 @@ const vvl::unordered_map& syncAllCommand VK_PIPELINE_STAGE_2_RESOLVE_BIT | VK_PIPELINE_STAGE_2_BLIT_BIT | VK_PIPELINE_STAGE_2_CLEAR_BIT | - VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR + VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR | + VK_PIPELINE_STAGE_2_CONVERT_COOPERATIVE_VECTOR_MATRIX_BIT_NV )}, { VK_QUEUE_GRAPHICS_BIT, ( VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT | @@ -1674,7 +1699,8 @@ const vvl::unordered_map& syncAllCommand VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI | VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI | VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR | - VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI + VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI | + VK_PIPELINE_STAGE_2_CONVERT_COOPERATIVE_VECTOR_MATRIX_BIT_NV )}, { VK_QUEUE_COMPUTE_BIT, ( VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT | @@ -1691,7 +1717,8 @@ const vvl::unordered_map& syncAllCommand VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR | VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR | VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR | - VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT + VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT | + VK_PIPELINE_STAGE_2_CONVERT_COOPERATIVE_VECTOR_MATRIX_BIT_NV )}, { VK_QUEUE_PROTECTED_BIT, ( VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT | @@ -1866,6 +1893,7 @@ const vvl::unordered_map& syncL VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR | VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR | VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV | + VK_PIPELINE_STAGE_2_CONVERT_COOPERATIVE_VECTOR_MATRIX_BIT_NV | VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT )}, { VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT, ( @@ -1952,6 +1980,9 @@ const vvl::unordered_map& syncL { VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI, ( VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT )}, + { VK_PIPELINE_STAGE_2_CONVERT_COOPERATIVE_VECTOR_MATRIX_BIT_NV, ( + VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT + )}, }; return variable; } @@ -1991,6 +2022,7 @@ const vvl::unordered_map& syncL VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR | VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR | VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV | + VK_PIPELINE_STAGE_2_CONVERT_COOPERATIVE_VECTOR_MATRIX_BIT_NV | VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT )}, { VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, ( @@ -2179,6 +2211,9 @@ const vvl::unordered_map& syncL { VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI, ( VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT )}, + { VK_PIPELINE_STAGE_2_CONVERT_COOPERATIVE_VECTOR_MATRIX_BIT_NV, ( + VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT + )}, }; return variable; } diff --git a/layers/vulkan/generated/sync_validation_types.h b/layers/vulkan/generated/sync_validation_types.h index ca9c4ec3a91..e2c64610846 100644 --- a/layers/vulkan/generated/sync_validation_types.h +++ b/layers/vulkan/generated/sync_validation_types.h @@ -35,7 +35,7 @@ static constexpr VkAccessFlags2 kShaderWriteExpandBits = VK_ACCESS_2_SHADER_STOR static constexpr VkPipelineStageFlags2 kAllTransferExpandBits = VK_PIPELINE_STAGE_2_COPY_BIT|VK_PIPELINE_STAGE_2_RESOLVE_BIT|VK_PIPELINE_STAGE_2_BLIT_BIT|VK_PIPELINE_STAGE_2_CLEAR_BIT|VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR; // Fake stages and accesses for acquire present support -static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRESENT_ENGINE_BIT_SYNCVAL = 0x0000040000000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRESENT_ENGINE_BIT_SYNCVAL = 0x0000200000000000ULL; static const VkAccessFlagBits2 VK_ACCESS_2_PRESENT_ACQUIRE_READ_BIT_SYNCVAL = 0x0000400000000000ULL; static const VkAccessFlagBits2 VK_ACCESS_2_PRESENT_PRESENTED_BIT_SYNCVAL = 0x0000800000000000ULL; // Unique number for each stage/access combination @@ -173,10 +173,12 @@ enum SyncAccessIndex { SYNC_CLUSTER_CULLING_SHADER_HUAWEI_SHADER_STORAGE_READ = 130, SYNC_CLUSTER_CULLING_SHADER_HUAWEI_SHADER_STORAGE_WRITE = 131, SYNC_CLUSTER_CULLING_SHADER_HUAWEI_UNIFORM_READ = 132, - SYNC_PRESENT_ENGINE_SYNCVAL_PRESENT_ACQUIRE_READ_SYNCVAL = 133, - SYNC_PRESENT_ENGINE_SYNCVAL_PRESENT_PRESENTED_SYNCVAL = 134, - SYNC_IMAGE_LAYOUT_TRANSITION = 135, - SYNC_QUEUE_FAMILY_OWNERSHIP_TRANSFER = 136, + SYNC_CONVERT_COOPERATIVE_VECTOR_MATRIX_NV_TRANSFER_READ = 133, + SYNC_CONVERT_COOPERATIVE_VECTOR_MATRIX_NV_TRANSFER_WRITE = 134, + SYNC_PRESENT_ENGINE_SYNCVAL_PRESENT_ACQUIRE_READ_SYNCVAL = 135, + SYNC_PRESENT_ENGINE_SYNCVAL_PRESENT_PRESENTED_SYNCVAL = 136, + SYNC_IMAGE_LAYOUT_TRANSITION = 137, + SYNC_QUEUE_FAMILY_OWNERSHIP_TRANSFER = 138, }; using SyncAccessFlags = std::bitset<192>; @@ -313,6 +315,8 @@ static const SyncAccessFlags SYNC_CLUSTER_CULLING_SHADER_HUAWEI_SHADER_SAMPLED_R static const SyncAccessFlags SYNC_CLUSTER_CULLING_SHADER_HUAWEI_SHADER_STORAGE_READ_BIT = (SyncAccessFlags(1) << SYNC_CLUSTER_CULLING_SHADER_HUAWEI_SHADER_STORAGE_READ); static const SyncAccessFlags SYNC_CLUSTER_CULLING_SHADER_HUAWEI_SHADER_STORAGE_WRITE_BIT = (SyncAccessFlags(1) << SYNC_CLUSTER_CULLING_SHADER_HUAWEI_SHADER_STORAGE_WRITE); static const SyncAccessFlags SYNC_CLUSTER_CULLING_SHADER_HUAWEI_UNIFORM_READ_BIT = (SyncAccessFlags(1) << SYNC_CLUSTER_CULLING_SHADER_HUAWEI_UNIFORM_READ); +static const SyncAccessFlags SYNC_CONVERT_COOPERATIVE_VECTOR_MATRIX_NV_TRANSFER_READ_BIT = (SyncAccessFlags(1) << SYNC_CONVERT_COOPERATIVE_VECTOR_MATRIX_NV_TRANSFER_READ); +static const SyncAccessFlags SYNC_CONVERT_COOPERATIVE_VECTOR_MATRIX_NV_TRANSFER_WRITE_BIT = (SyncAccessFlags(1) << SYNC_CONVERT_COOPERATIVE_VECTOR_MATRIX_NV_TRANSFER_WRITE); static const SyncAccessFlags SYNC_PRESENT_ENGINE_BIT_SYNCVAL_PRESENT_ACQUIRE_READ_BIT_SYNCVAL = (SyncAccessFlags(1) << SYNC_PRESENT_ENGINE_SYNCVAL_PRESENT_ACQUIRE_READ_SYNCVAL); static const SyncAccessFlags SYNC_PRESENT_ENGINE_BIT_SYNCVAL_PRESENT_PRESENTED_BIT_SYNCVAL = (SyncAccessFlags(1) << SYNC_PRESENT_ENGINE_SYNCVAL_PRESENT_PRESENTED_SYNCVAL); static const SyncAccessFlags SYNC_IMAGE_LAYOUT_TRANSITION_BIT = (SyncAccessFlags(1) << SYNC_IMAGE_LAYOUT_TRANSITION); @@ -327,7 +331,7 @@ struct SyncAccessInfo { }; // Array of text names and component masks for each stage/access index -const std::array& syncAccessInfoByAccessIndex(); +const std::array& syncAccessInfoByAccessIndex(); // Constants defining the mask of all read and write access states static const SyncAccessFlags syncAccessReadMask = ( // Mask of all read accesses @@ -432,6 +436,7 @@ static const SyncAccessFlags syncAccessReadMask = ( // Mask of all read accesse SYNC_CLUSTER_CULLING_SHADER_HUAWEI_SHADER_SAMPLED_READ_BIT | SYNC_CLUSTER_CULLING_SHADER_HUAWEI_SHADER_STORAGE_READ_BIT | SYNC_CLUSTER_CULLING_SHADER_HUAWEI_UNIFORM_READ_BIT | + SYNC_CONVERT_COOPERATIVE_VECTOR_MATRIX_NV_TRANSFER_READ_BIT | SYNC_PRESENT_ENGINE_BIT_SYNCVAL_PRESENT_ACQUIRE_READ_BIT_SYNCVAL ); @@ -467,6 +472,7 @@ static const SyncAccessFlags syncAccessWriteMask = ( // Mask of all write acces SYNC_CLEAR_TRANSFER_WRITE_BIT | SYNC_SUBPASS_SHADER_HUAWEI_SHADER_STORAGE_WRITE_BIT | SYNC_CLUSTER_CULLING_SHADER_HUAWEI_SHADER_STORAGE_WRITE_BIT | + SYNC_CONVERT_COOPERATIVE_VECTOR_MATRIX_NV_TRANSFER_WRITE_BIT | SYNC_PRESENT_ENGINE_BIT_SYNCVAL_PRESENT_PRESENTED_BIT_SYNCVAL | SYNC_IMAGE_LAYOUT_TRANSITION_BIT | SYNC_QUEUE_FAMILY_OWNERSHIP_TRANSFER_BIT diff --git a/layers/vulkan/generated/test_icd_helper.h b/layers/vulkan/generated/test_icd_helper.h index f51272cbc39..3b6cfdce487 100644 --- a/layers/vulkan/generated/test_icd_helper.h +++ b/layers/vulkan/generated/test_icd_helper.h @@ -433,6 +433,7 @@ static const std::unordered_map device_extension_map = { {VK_NV_COPY_MEMORY_INDIRECT_EXTENSION_NAME, VK_NV_COPY_MEMORY_INDIRECT_SPEC_VERSION}, {VK_NV_MEMORY_DECOMPRESSION_EXTENSION_NAME, VK_NV_MEMORY_DECOMPRESSION_SPEC_VERSION}, {VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME, VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION}, + {VK_NV_RAY_TRACING_LINEAR_SWEPT_SPHERES_EXTENSION_NAME, VK_NV_RAY_TRACING_LINEAR_SWEPT_SPHERES_SPEC_VERSION}, {VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME, VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION}, {VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME, VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION}, {VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME, VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION}, @@ -454,6 +455,7 @@ static const std::unordered_map device_extension_map = { {VK_SEC_AMIGO_PROFILING_EXTENSION_NAME, VK_SEC_AMIGO_PROFILING_SPEC_VERSION}, {VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME, VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION}, {VK_NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME, VK_NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION}, + {VK_NV_COOPERATIVE_VECTOR_EXTENSION_NAME, VK_NV_COOPERATIVE_VECTOR_SPEC_VERSION}, {VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_EXTENSION_NAME, VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION}, {VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME, VK_EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION}, {VK_EXT_LEGACY_VERTEX_ATTRIBUTES_EXTENSION_NAME, VK_EXT_LEGACY_VERTEX_ATTRIBUTES_SPEC_VERSION}, @@ -478,6 +480,8 @@ static const std::unordered_map device_extension_map = { {VK_NV_SHADER_ATOMIC_FLOAT16_VECTOR_EXTENSION_NAME, VK_NV_SHADER_ATOMIC_FLOAT16_VECTOR_SPEC_VERSION}, {VK_EXT_SHADER_REPLICATED_COMPOSITES_EXTENSION_NAME, VK_EXT_SHADER_REPLICATED_COMPOSITES_SPEC_VERSION}, {VK_NV_RAY_TRACING_VALIDATION_EXTENSION_NAME, VK_NV_RAY_TRACING_VALIDATION_SPEC_VERSION}, + {VK_NV_CLUSTER_ACCELERATION_STRUCTURE_EXTENSION_NAME, VK_NV_CLUSTER_ACCELERATION_STRUCTURE_SPEC_VERSION}, + {VK_NV_PARTITIONED_ACCELERATION_STRUCTURE_EXTENSION_NAME, VK_NV_PARTITIONED_ACCELERATION_STRUCTURE_SPEC_VERSION}, {VK_EXT_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME, VK_EXT_DEVICE_GENERATED_COMMANDS_SPEC_VERSION}, {VK_MESA_IMAGE_ALIGNMENT_CONTROL_EXTENSION_NAME, VK_MESA_IMAGE_ALIGNMENT_CONTROL_SPEC_VERSION}, {VK_EXT_DEPTH_CLAMP_CONTROL_EXTENSION_NAME, VK_EXT_DEPTH_CLAMP_CONTROL_SPEC_VERSION}, @@ -1953,6 +1957,13 @@ static VKAPI_ATTR VkResult VKAPI_CALL GetFramebufferTilePropertiesQCOM(VkDevice VkTilePropertiesQCOM* pProperties); static VKAPI_ATTR VkResult VKAPI_CALL GetDynamicRenderingTilePropertiesQCOM(VkDevice device, const VkRenderingInfo* pRenderingInfo, VkTilePropertiesQCOM* pProperties); +static VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCooperativeVectorPropertiesNV(VkPhysicalDevice physicalDevice, + uint32_t* pPropertyCount, + VkCooperativeVectorPropertiesNV* pProperties); +static VKAPI_ATTR VkResult VKAPI_CALL ConvertCooperativeVectorMatrixNV(VkDevice device, + const VkConvertCooperativeVectorMatrixInfoNV* pInfo); +static VKAPI_ATTR void VKAPI_CALL CmdConvertCooperativeVectorMatrixNV(VkCommandBuffer commandBuffer, uint32_t infoCount, + const VkConvertCooperativeVectorMatrixInfoNV* pInfos); static VKAPI_ATTR VkResult VKAPI_CALL SetLatencySleepModeNV(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepModeInfoNV* pSleepModeInfo); static VKAPI_ATTR VkResult VKAPI_CALL LatencySleepNV(VkDevice device, VkSwapchainKHR swapchain, @@ -1968,6 +1979,15 @@ static VKAPI_ATTR void VKAPI_CALL CmdSetAttachmentFeedbackLoopEnableEXT(VkComman static VKAPI_ATTR VkResult VKAPI_CALL GetScreenBufferPropertiesQNX(VkDevice device, const struct _screen_buffer* buffer, VkScreenBufferPropertiesQNX* pProperties); #endif // VK_USE_PLATFORM_SCREEN_QNX +static VKAPI_ATTR void VKAPI_CALL GetClusterAccelerationStructureBuildSizesNV( + VkDevice device, const VkClusterAccelerationStructureInputInfoNV* pInfo, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo); +static VKAPI_ATTR void VKAPI_CALL CmdBuildClusterAccelerationStructureIndirectNV( + VkCommandBuffer commandBuffer, const VkClusterAccelerationStructureCommandsInfoNV* pCommandInfos); +static VKAPI_ATTR void VKAPI_CALL +GetPartitionedAccelerationStructuresBuildSizesNV(VkDevice device, const VkPartitionedAccelerationStructureInstancesInputNV* pInfo, + VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo); +static VKAPI_ATTR void VKAPI_CALL CmdBuildPartitionedAccelerationStructuresNV( + VkCommandBuffer commandBuffer, const VkBuildPartitionedAccelerationStructureInfoNV* pBuildInfo); static VKAPI_ATTR void VKAPI_CALL GetGeneratedCommandsMemoryRequirementsEXT( VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoEXT* pInfo, VkMemoryRequirements2* pMemoryRequirements); static VKAPI_ATTR void VKAPI_CALL CmdPreprocessGeneratedCommandsEXT(VkCommandBuffer commandBuffer, @@ -2806,6 +2826,9 @@ static const std::unordered_map name_to_func_ptr_map = { {"vkCmdSetDepthClampRangeEXT", (void*)CmdSetDepthClampRangeEXT}, {"vkGetFramebufferTilePropertiesQCOM", (void*)GetFramebufferTilePropertiesQCOM}, {"vkGetDynamicRenderingTilePropertiesQCOM", (void*)GetDynamicRenderingTilePropertiesQCOM}, + {"vkGetPhysicalDeviceCooperativeVectorPropertiesNV", (void*)GetPhysicalDeviceCooperativeVectorPropertiesNV}, + {"vkConvertCooperativeVectorMatrixNV", (void*)ConvertCooperativeVectorMatrixNV}, + {"vkCmdConvertCooperativeVectorMatrixNV", (void*)CmdConvertCooperativeVectorMatrixNV}, {"vkSetLatencySleepModeNV", (void*)SetLatencySleepModeNV}, {"vkLatencySleepNV", (void*)LatencySleepNV}, {"vkSetLatencyMarkerNV", (void*)SetLatencyMarkerNV}, @@ -2815,6 +2838,10 @@ static const std::unordered_map name_to_func_ptr_map = { #ifdef VK_USE_PLATFORM_SCREEN_QNX {"vkGetScreenBufferPropertiesQNX", (void*)GetScreenBufferPropertiesQNX}, #endif // VK_USE_PLATFORM_SCREEN_QNX + {"vkGetClusterAccelerationStructureBuildSizesNV", (void*)GetClusterAccelerationStructureBuildSizesNV}, + {"vkCmdBuildClusterAccelerationStructureIndirectNV", (void*)CmdBuildClusterAccelerationStructureIndirectNV}, + {"vkGetPartitionedAccelerationStructuresBuildSizesNV", (void*)GetPartitionedAccelerationStructuresBuildSizesNV}, + {"vkCmdBuildPartitionedAccelerationStructuresNV", (void*)CmdBuildPartitionedAccelerationStructuresNV}, {"vkGetGeneratedCommandsMemoryRequirementsEXT", (void*)GetGeneratedCommandsMemoryRequirementsEXT}, {"vkCmdPreprocessGeneratedCommandsEXT", (void*)CmdPreprocessGeneratedCommandsEXT}, {"vkCmdExecuteGeneratedCommandsEXT", (void*)CmdExecuteGeneratedCommandsEXT}, @@ -5443,6 +5470,20 @@ static VKAPI_ATTR VkResult VKAPI_CALL GetDynamicRenderingTilePropertiesQCOM(VkDe return VK_SUCCESS; } +static VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCooperativeVectorPropertiesNV(VkPhysicalDevice physicalDevice, + uint32_t* pPropertyCount, + VkCooperativeVectorPropertiesNV* pProperties) { + return VK_SUCCESS; +} + +static VKAPI_ATTR VkResult VKAPI_CALL ConvertCooperativeVectorMatrixNV(VkDevice device, + const VkConvertCooperativeVectorMatrixInfoNV* pInfo) { + return VK_SUCCESS; +} + +static VKAPI_ATTR void VKAPI_CALL CmdConvertCooperativeVectorMatrixNV(VkCommandBuffer commandBuffer, uint32_t infoCount, + const VkConvertCooperativeVectorMatrixInfoNV* pInfos) {} + static VKAPI_ATTR VkResult VKAPI_CALL SetLatencySleepModeNV(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepModeInfoNV* pSleepModeInfo) { return VK_SUCCESS; @@ -5471,6 +5512,19 @@ static VKAPI_ATTR VkResult VKAPI_CALL GetScreenBufferPropertiesQNX(VkDevice devi } #endif // VK_USE_PLATFORM_SCREEN_QNX +static VKAPI_ATTR void VKAPI_CALL GetClusterAccelerationStructureBuildSizesNV( + VkDevice device, const VkClusterAccelerationStructureInputInfoNV* pInfo, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo) {} + +static VKAPI_ATTR void VKAPI_CALL CmdBuildClusterAccelerationStructureIndirectNV( + VkCommandBuffer commandBuffer, const VkClusterAccelerationStructureCommandsInfoNV* pCommandInfos) {} + +static VKAPI_ATTR void VKAPI_CALL +GetPartitionedAccelerationStructuresBuildSizesNV(VkDevice device, const VkPartitionedAccelerationStructureInstancesInputNV* pInfo, + VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo) {} + +static VKAPI_ATTR void VKAPI_CALL CmdBuildPartitionedAccelerationStructuresNV( + VkCommandBuffer commandBuffer, const VkBuildPartitionedAccelerationStructureInfoNV* pBuildInfo) {} + static VKAPI_ATTR void VKAPI_CALL GetGeneratedCommandsMemoryRequirementsEXT( VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoEXT* pInfo, VkMemoryRequirements2* pMemoryRequirements) {} diff --git a/layers/vulkan/generated/thread_safety.cpp b/layers/vulkan/generated/thread_safety.cpp index 5c727b9be70..cf0b45d1394 100644 --- a/layers/vulkan/generated/thread_safety.cpp +++ b/layers/vulkan/generated/thread_safety.cpp @@ -7811,6 +7811,30 @@ void Device::PostCallRecordGetDynamicRenderingTilePropertiesQCOM(VkDevice device FinishReadObjectParentInstance(device, record_obj.location); } +void Device::PreCallRecordConvertCooperativeVectorMatrixNV(VkDevice device, const VkConvertCooperativeVectorMatrixInfoNV* pInfo, + const RecordObject& record_obj) { + StartReadObjectParentInstance(device, record_obj.location); +} + +void Device::PostCallRecordConvertCooperativeVectorMatrixNV(VkDevice device, const VkConvertCooperativeVectorMatrixInfoNV* pInfo, + const RecordObject& record_obj) { + FinishReadObjectParentInstance(device, record_obj.location); +} + +void Device::PreCallRecordCmdConvertCooperativeVectorMatrixNV(VkCommandBuffer commandBuffer, uint32_t infoCount, + const VkConvertCooperativeVectorMatrixInfoNV* pInfos, + const RecordObject& record_obj) { + StartWriteObject(commandBuffer, record_obj.location); + // Host access to commandBuffer must be externally synchronized +} + +void Device::PostCallRecordCmdConvertCooperativeVectorMatrixNV(VkCommandBuffer commandBuffer, uint32_t infoCount, + const VkConvertCooperativeVectorMatrixInfoNV* pInfos, + const RecordObject& record_obj) { + FinishWriteObject(commandBuffer, record_obj.location); + // Host access to commandBuffer must be externally synchronized +} + void Device::PreCallRecordSetLatencySleepModeNV(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepModeInfoNV* pSleepModeInfo, const RecordObject& record_obj) { StartReadObjectParentInstance(device, record_obj.location); @@ -7893,6 +7917,60 @@ void Device::PostCallRecordGetScreenBufferPropertiesQNX(VkDevice device, const s } #endif // VK_USE_PLATFORM_SCREEN_QNX +void Device::PreCallRecordGetClusterAccelerationStructureBuildSizesNV(VkDevice device, + const VkClusterAccelerationStructureInputInfoNV* pInfo, + VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo, + const RecordObject& record_obj) { + StartReadObjectParentInstance(device, record_obj.location); +} + +void Device::PostCallRecordGetClusterAccelerationStructureBuildSizesNV(VkDevice device, + const VkClusterAccelerationStructureInputInfoNV* pInfo, + VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo, + const RecordObject& record_obj) { + FinishReadObjectParentInstance(device, record_obj.location); +} + +void Device::PreCallRecordCmdBuildClusterAccelerationStructureIndirectNV( + VkCommandBuffer commandBuffer, const VkClusterAccelerationStructureCommandsInfoNV* pCommandInfos, + const RecordObject& record_obj) { + StartWriteObject(commandBuffer, record_obj.location); + // Host access to commandBuffer must be externally synchronized +} + +void Device::PostCallRecordCmdBuildClusterAccelerationStructureIndirectNV( + VkCommandBuffer commandBuffer, const VkClusterAccelerationStructureCommandsInfoNV* pCommandInfos, + const RecordObject& record_obj) { + FinishWriteObject(commandBuffer, record_obj.location); + // Host access to commandBuffer must be externally synchronized +} + +void Device::PreCallRecordGetPartitionedAccelerationStructuresBuildSizesNV( + VkDevice device, const VkPartitionedAccelerationStructureInstancesInputNV* pInfo, + VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo, const RecordObject& record_obj) { + StartReadObjectParentInstance(device, record_obj.location); +} + +void Device::PostCallRecordGetPartitionedAccelerationStructuresBuildSizesNV( + VkDevice device, const VkPartitionedAccelerationStructureInstancesInputNV* pInfo, + VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo, const RecordObject& record_obj) { + FinishReadObjectParentInstance(device, record_obj.location); +} + +void Device::PreCallRecordCmdBuildPartitionedAccelerationStructuresNV( + VkCommandBuffer commandBuffer, const VkBuildPartitionedAccelerationStructureInfoNV* pBuildInfo, + const RecordObject& record_obj) { + StartWriteObject(commandBuffer, record_obj.location); + // Host access to commandBuffer must be externally synchronized +} + +void Device::PostCallRecordCmdBuildPartitionedAccelerationStructuresNV( + VkCommandBuffer commandBuffer, const VkBuildPartitionedAccelerationStructureInfoNV* pBuildInfo, + const RecordObject& record_obj) { + FinishWriteObject(commandBuffer, record_obj.location); + // Host access to commandBuffer must be externally synchronized +} + void Device::PreCallRecordGetGeneratedCommandsMemoryRequirementsEXT(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoEXT* pInfo, VkMemoryRequirements2* pMemoryRequirements, diff --git a/layers/vulkan/generated/thread_safety_device_defs.h b/layers/vulkan/generated/thread_safety_device_defs.h index 49bf8b0b8a1..0d836c58170 100644 --- a/layers/vulkan/generated/thread_safety_device_defs.h +++ b/layers/vulkan/generated/thread_safety_device_defs.h @@ -3945,6 +3945,20 @@ void PostCallRecordGetDynamicRenderingTilePropertiesQCOM(VkDevice device, const VkTilePropertiesQCOM* pProperties, const RecordObject& record_obj) override; +void PreCallRecordConvertCooperativeVectorMatrixNV(VkDevice device, const VkConvertCooperativeVectorMatrixInfoNV* pInfo, + const RecordObject& record_obj) override; + +void PostCallRecordConvertCooperativeVectorMatrixNV(VkDevice device, const VkConvertCooperativeVectorMatrixInfoNV* pInfo, + const RecordObject& record_obj) override; + +void PreCallRecordCmdConvertCooperativeVectorMatrixNV(VkCommandBuffer commandBuffer, uint32_t infoCount, + const VkConvertCooperativeVectorMatrixInfoNV* pInfos, + const RecordObject& record_obj) override; + +void PostCallRecordCmdConvertCooperativeVectorMatrixNV(VkCommandBuffer commandBuffer, uint32_t infoCount, + const VkConvertCooperativeVectorMatrixInfoNV* pInfos, + const RecordObject& record_obj) override; + void PreCallRecordSetLatencySleepModeNV(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepModeInfoNV* pSleepModeInfo, const RecordObject& record_obj) override; @@ -3989,6 +4003,42 @@ void PostCallRecordGetScreenBufferPropertiesQNX(VkDevice device, const struct _s VkScreenBufferPropertiesQNX* pProperties, const RecordObject& record_obj) override; #endif // VK_USE_PLATFORM_SCREEN_QNX +void PreCallRecordGetClusterAccelerationStructureBuildSizesNV(VkDevice device, + const VkClusterAccelerationStructureInputInfoNV* pInfo, + VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo, + const RecordObject& record_obj) override; + +void PostCallRecordGetClusterAccelerationStructureBuildSizesNV(VkDevice device, + const VkClusterAccelerationStructureInputInfoNV* pInfo, + VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo, + const RecordObject& record_obj) override; + +void PreCallRecordCmdBuildClusterAccelerationStructureIndirectNV(VkCommandBuffer commandBuffer, + const VkClusterAccelerationStructureCommandsInfoNV* pCommandInfos, + const RecordObject& record_obj) override; + +void PostCallRecordCmdBuildClusterAccelerationStructureIndirectNV(VkCommandBuffer commandBuffer, + const VkClusterAccelerationStructureCommandsInfoNV* pCommandInfos, + const RecordObject& record_obj) override; + +void PreCallRecordGetPartitionedAccelerationStructuresBuildSizesNV(VkDevice device, + const VkPartitionedAccelerationStructureInstancesInputNV* pInfo, + VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo, + const RecordObject& record_obj) override; + +void PostCallRecordGetPartitionedAccelerationStructuresBuildSizesNV(VkDevice device, + const VkPartitionedAccelerationStructureInstancesInputNV* pInfo, + VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo, + const RecordObject& record_obj) override; + +void PreCallRecordCmdBuildPartitionedAccelerationStructuresNV(VkCommandBuffer commandBuffer, + const VkBuildPartitionedAccelerationStructureInfoNV* pBuildInfo, + const RecordObject& record_obj) override; + +void PostCallRecordCmdBuildPartitionedAccelerationStructuresNV(VkCommandBuffer commandBuffer, + const VkBuildPartitionedAccelerationStructureInfoNV* pBuildInfo, + const RecordObject& record_obj) override; + void PreCallRecordGetGeneratedCommandsMemoryRequirementsEXT(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoEXT* pInfo, VkMemoryRequirements2* pMemoryRequirements, diff --git a/layers/vulkan/generated/valid_enum_values.cpp b/layers/vulkan/generated/valid_enum_values.cpp index 6a508177c6c..91583784187 100644 --- a/layers/vulkan/generated/valid_enum_values.cpp +++ b/layers/vulkan/generated/valid_enum_values.cpp @@ -948,6 +948,8 @@ ValidValue stateless::Context::IsValidEnumValue(VkDescriptorType value) const { IsExtEnabled(extensions.vk_ext_mutable_descriptor_type) ? ValidValue::Valid : ValidValue::NoExtension; + case VK_DESCRIPTOR_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_NV: + return IsExtEnabled(extensions.vk_nv_partitioned_acceleration_structure) ? ValidValue::Valid : ValidValue::NoExtension; default: return ValidValue::NotFound; }; @@ -1259,6 +1261,30 @@ ValidValue stateless::Context::IsValidEnumValue(VkVideoEncodeTuningModeKHR value }; } +template <> +ValidValue stateless::Context::IsValidEnumValue(VkComponentTypeKHR value) const { + switch (value) { + case VK_COMPONENT_TYPE_FLOAT16_KHR: + case VK_COMPONENT_TYPE_FLOAT32_KHR: + case VK_COMPONENT_TYPE_FLOAT64_KHR: + case VK_COMPONENT_TYPE_SINT8_KHR: + case VK_COMPONENT_TYPE_SINT16_KHR: + case VK_COMPONENT_TYPE_SINT32_KHR: + case VK_COMPONENT_TYPE_SINT64_KHR: + case VK_COMPONENT_TYPE_UINT8_KHR: + case VK_COMPONENT_TYPE_UINT16_KHR: + case VK_COMPONENT_TYPE_UINT32_KHR: + case VK_COMPONENT_TYPE_UINT64_KHR: + case VK_COMPONENT_TYPE_SINT8_PACKED_NV: + case VK_COMPONENT_TYPE_UINT8_PACKED_NV: + case VK_COMPONENT_TYPE_FLOAT_E4M3_NV: + case VK_COMPONENT_TYPE_FLOAT_E5M2_NV: + return ValidValue::Valid; + default: + return ValidValue::NotFound; + }; +} + template <> ValidValue stateless::Context::IsValidEnumValue(VkVideoEncodeAV1PredictionModeKHR value) const { switch (value) { @@ -1538,6 +1564,9 @@ ValidValue stateless::Context::IsValidEnumValue(VkGeometryTypeKHR value) const { case VK_GEOMETRY_TYPE_AABBS_KHR: case VK_GEOMETRY_TYPE_INSTANCES_KHR: return ValidValue::Valid; + case VK_GEOMETRY_TYPE_SPHERES_NV: + case VK_GEOMETRY_TYPE_LINEAR_SWEPT_SPHERES_NV: + return IsExtEnabled(extensions.vk_nv_ray_tracing_linear_swept_spheres) ? ValidValue::Valid : ValidValue::NoExtension; default: return ValidValue::NotFound; }; @@ -1875,6 +1904,28 @@ ValidValue stateless::Context::IsValidEnumValue(VkAccelerationStructureBuildType }; } +template <> +ValidValue stateless::Context::IsValidEnumValue(VkRayTracingLssIndexingModeNV value) const { + switch (value) { + case VK_RAY_TRACING_LSS_INDEXING_MODE_LIST_NV: + case VK_RAY_TRACING_LSS_INDEXING_MODE_SUCCESSIVE_NV: + return ValidValue::Valid; + default: + return ValidValue::NotFound; + }; +} + +template <> +ValidValue stateless::Context::IsValidEnumValue(VkRayTracingLssPrimitiveEndCapsModeNV value) const { + switch (value) { + case VK_RAY_TRACING_LSS_PRIMITIVE_END_CAPS_MODE_NONE_NV: + case VK_RAY_TRACING_LSS_PRIMITIVE_END_CAPS_MODE_CHAINED_NV: + return ValidValue::Valid; + default: + return ValidValue::NotFound; + }; +} + template <> ValidValue stateless::Context::IsValidEnumValue(VkDirectDriverLoadingModeLUNARG value) const { switch (value) { @@ -1962,6 +2013,19 @@ ValidValue stateless::Context::IsValidEnumValue(VkDepthClampModeEXT value) const }; } +template <> +ValidValue stateless::Context::IsValidEnumValue(VkCooperativeVectorMatrixLayoutNV value) const { + switch (value) { + case VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_ROW_MAJOR_NV: + case VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_COLUMN_MAJOR_NV: + case VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_INFERENCING_OPTIMAL_NV: + case VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_TRAINING_OPTIMAL_NV: + return ValidValue::Valid; + default: + return ValidValue::NotFound; + }; +} + template <> ValidValue stateless::Context::IsValidEnumValue(VkLayerSettingTypeEXT value) const { switch (value) { @@ -2048,6 +2112,56 @@ ValidValue stateless::Context::IsValidEnumValue(VkDisplaySurfaceStereoTypeNV val }; } +template <> +ValidValue stateless::Context::IsValidEnumValue(VkClusterAccelerationStructureTypeNV value) const { + switch (value) { + case VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_CLUSTERS_BOTTOM_LEVEL_NV: + case VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_TRIANGLE_CLUSTER_NV: + case VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_TRIANGLE_CLUSTER_TEMPLATE_NV: + return ValidValue::Valid; + default: + return ValidValue::NotFound; + }; +} + +template <> +ValidValue stateless::Context::IsValidEnumValue(VkClusterAccelerationStructureOpTypeNV value) const { + switch (value) { + case VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_MOVE_OBJECTS_NV: + case VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_CLUSTERS_BOTTOM_LEVEL_NV: + case VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_TRIANGLE_CLUSTER_NV: + case VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_TRIANGLE_CLUSTER_TEMPLATE_NV: + case VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_INSTANTIATE_TRIANGLE_CLUSTER_NV: + return ValidValue::Valid; + default: + return ValidValue::NotFound; + }; +} + +template <> +ValidValue stateless::Context::IsValidEnumValue(VkClusterAccelerationStructureOpModeNV value) const { + switch (value) { + case VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_IMPLICIT_DESTINATIONS_NV: + case VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_EXPLICIT_DESTINATIONS_NV: + case VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_COMPUTE_SIZES_NV: + return ValidValue::Valid; + default: + return ValidValue::NotFound; + }; +} + +template <> +ValidValue stateless::Context::IsValidEnumValue(VkPartitionedAccelerationStructureOpTypeNV value) const { + switch (value) { + case VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_WRITE_INSTANCE_NV: + case VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_UPDATE_INSTANCE_NV: + case VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_WRITE_PARTITION_TRANSLATION_NV: + return ValidValue::Valid; + default: + return ValidValue::NotFound; + }; +} + template <> ValidValue stateless::Context::IsValidEnumValue(VkIndirectExecutionSetInfoTypeEXT value) const { switch (value) { @@ -2691,6 +2805,8 @@ vvl::Extensions stateless::Context::GetEnumExtensions(VkDescriptorType value) co return {vvl::Extension::_VK_QCOM_image_processing}; case VK_DESCRIPTOR_TYPE_MUTABLE_EXT: return {vvl::Extension::_VK_VALVE_mutable_descriptor_type, vvl::Extension::_VK_EXT_mutable_descriptor_type}; + case VK_DESCRIPTOR_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_NV: + return {vvl::Extension::_VK_NV_partitioned_acceleration_structure}; default: return {}; }; @@ -2959,6 +3075,15 @@ const char* stateless::Context::DescribeEnum(VkVideoEncodeTuningModeKHR value) c return nullptr; } +template <> +vvl::Extensions stateless::Context::GetEnumExtensions(VkComponentTypeKHR value) const { + return {}; +} +template <> +const char* stateless::Context::DescribeEnum(VkComponentTypeKHR value) const { + return nullptr; +} + template <> vvl::Extensions stateless::Context::GetEnumExtensions(VkVideoEncodeAV1PredictionModeKHR value) const { return {}; @@ -3142,11 +3267,17 @@ const char* stateless::Context::DescribeEnum(VkRayTracingShaderGroupTypeKHR valu template <> vvl::Extensions stateless::Context::GetEnumExtensions(VkGeometryTypeKHR value) const { - return {}; + switch (value) { + case VK_GEOMETRY_TYPE_SPHERES_NV: + case VK_GEOMETRY_TYPE_LINEAR_SWEPT_SPHERES_NV: + return {vvl::Extension::_VK_NV_ray_tracing_linear_swept_spheres}; + default: + return {}; + }; } template <> const char* stateless::Context::DescribeEnum(VkGeometryTypeKHR value) const { - return nullptr; + return string_VkGeometryTypeKHR(value); } template <> @@ -3398,6 +3529,24 @@ const char* stateless::Context::DescribeEnum(VkAccelerationStructureBuildTypeKHR return nullptr; } +template <> +vvl::Extensions stateless::Context::GetEnumExtensions(VkRayTracingLssIndexingModeNV value) const { + return {}; +} +template <> +const char* stateless::Context::DescribeEnum(VkRayTracingLssIndexingModeNV value) const { + return nullptr; +} + +template <> +vvl::Extensions stateless::Context::GetEnumExtensions(VkRayTracingLssPrimitiveEndCapsModeNV value) const { + return {}; +} +template <> +const char* stateless::Context::DescribeEnum(VkRayTracingLssPrimitiveEndCapsModeNV value) const { + return nullptr; +} + template <> vvl::Extensions stateless::Context::GetEnumExtensions(VkDirectDriverLoadingModeLUNARG value) const { return {}; @@ -3461,6 +3610,15 @@ const char* stateless::Context::DescribeEnum(VkDepthClampModeEXT value) const { return nullptr; } +template <> +vvl::Extensions stateless::Context::GetEnumExtensions(VkCooperativeVectorMatrixLayoutNV value) const { + return {}; +} +template <> +const char* stateless::Context::DescribeEnum(VkCooperativeVectorMatrixLayoutNV value) const { + return nullptr; +} + template <> vvl::Extensions stateless::Context::GetEnumExtensions(VkLayerSettingTypeEXT value) const { return {}; @@ -3515,6 +3673,42 @@ const char* stateless::Context::DescribeEnum(VkDisplaySurfaceStereoTypeNV value) return nullptr; } +template <> +vvl::Extensions stateless::Context::GetEnumExtensions(VkClusterAccelerationStructureTypeNV value) const { + return {}; +} +template <> +const char* stateless::Context::DescribeEnum(VkClusterAccelerationStructureTypeNV value) const { + return nullptr; +} + +template <> +vvl::Extensions stateless::Context::GetEnumExtensions(VkClusterAccelerationStructureOpTypeNV value) const { + return {}; +} +template <> +const char* stateless::Context::DescribeEnum(VkClusterAccelerationStructureOpTypeNV value) const { + return nullptr; +} + +template <> +vvl::Extensions stateless::Context::GetEnumExtensions(VkClusterAccelerationStructureOpModeNV value) const { + return {}; +} +template <> +const char* stateless::Context::DescribeEnum(VkClusterAccelerationStructureOpModeNV value) const { + return nullptr; +} + +template <> +vvl::Extensions stateless::Context::GetEnumExtensions(VkPartitionedAccelerationStructureOpTypeNV value) const { + return {}; +} +template <> +const char* stateless::Context::DescribeEnum(VkPartitionedAccelerationStructureOpTypeNV value) const { + return nullptr; +} + template <> vvl::Extensions stateless::Context::GetEnumExtensions(VkIndirectExecutionSetInfoTypeEXT value) const { return {}; diff --git a/layers/vulkan/generated/valid_enum_values.h b/layers/vulkan/generated/valid_enum_values.h index 060d58f08fe..b78c2833a44 100644 --- a/layers/vulkan/generated/valid_enum_values.h +++ b/layers/vulkan/generated/valid_enum_values.h @@ -114,6 +114,8 @@ ValidValue stateless::Context::IsValidEnumValue(VkFragmentShadingRateCombinerOpK template <> ValidValue stateless::Context::IsValidEnumValue(VkVideoEncodeTuningModeKHR value) const; template <> +ValidValue stateless::Context::IsValidEnumValue(VkComponentTypeKHR value) const; +template <> ValidValue stateless::Context::IsValidEnumValue(VkVideoEncodeAV1PredictionModeKHR value) const; template <> ValidValue stateless::Context::IsValidEnumValue(VkVideoEncodeAV1RateControlGroupKHR value) const; @@ -206,6 +208,10 @@ ValidValue stateless::Context::IsValidEnumValue(VkAccelerationStructureCompatibi template <> ValidValue stateless::Context::IsValidEnumValue(VkAccelerationStructureBuildTypeKHR value) const; template <> +ValidValue stateless::Context::IsValidEnumValue(VkRayTracingLssIndexingModeNV value) const; +template <> +ValidValue stateless::Context::IsValidEnumValue(VkRayTracingLssPrimitiveEndCapsModeNV value) const; +template <> ValidValue stateless::Context::IsValidEnumValue(VkDirectDriverLoadingModeLUNARG value) const; template <> ValidValue stateless::Context::IsValidEnumValue(VkOpticalFlowPerformanceLevelNV value) const; @@ -220,6 +226,8 @@ ValidValue stateless::Context::IsValidEnumValue(VkShaderCodeTypeEXT value) const template <> ValidValue stateless::Context::IsValidEnumValue(VkDepthClampModeEXT value) const; template <> +ValidValue stateless::Context::IsValidEnumValue(VkCooperativeVectorMatrixLayoutNV value) const; +template <> ValidValue stateless::Context::IsValidEnumValue(VkLayerSettingTypeEXT value) const; template <> ValidValue stateless::Context::IsValidEnumValue(VkLatencyMarkerNV value) const; @@ -232,6 +240,14 @@ ValidValue stateless::Context::IsValidEnumValue(VkCubicFilterWeightsQCOM value) template <> ValidValue stateless::Context::IsValidEnumValue(VkDisplaySurfaceStereoTypeNV value) const; template <> +ValidValue stateless::Context::IsValidEnumValue(VkClusterAccelerationStructureTypeNV value) const; +template <> +ValidValue stateless::Context::IsValidEnumValue(VkClusterAccelerationStructureOpTypeNV value) const; +template <> +ValidValue stateless::Context::IsValidEnumValue(VkClusterAccelerationStructureOpModeNV value) const; +template <> +ValidValue stateless::Context::IsValidEnumValue(VkPartitionedAccelerationStructureOpTypeNV value) const; +template <> ValidValue stateless::Context::IsValidEnumValue(VkIndirectExecutionSetInfoTypeEXT value) const; template <> ValidValue stateless::Context::IsValidEnumValue(VkIndirectCommandsTokenTypeEXT value) const; diff --git a/layers/vulkan/generated/valid_flag_values.cpp b/layers/vulkan/generated/valid_flag_values.cpp index 6db891c5be7..6b57d4f4178 100644 --- a/layers/vulkan/generated/valid_flag_values.cpp +++ b/layers/vulkan/generated/valid_flag_values.cpp @@ -988,6 +988,11 @@ vvl::Extensions stateless::Context::IsValidFlag64Value(vvl::FlagBitmask flag_bit return {vvl::Extension::_VK_NV_optical_flow}; } } + if (value & (VK_PIPELINE_STAGE_2_CONVERT_COOPERATIVE_VECTOR_MATRIX_BIT_NV)) { + if (!IsExtEnabled(extensions.vk_nv_cooperative_vector)) { + return {vvl::Extension::_VK_NV_cooperative_vector}; + } + } return {}; case vvl::FlagBitmask::VkAccessFlagBits2: if (value & (VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR | VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR)) { @@ -1032,11 +1037,21 @@ vvl::Extensions stateless::Context::IsValidFlag64Value(vvl::FlagBitmask flag_bit return {vvl::Extension::_VK_AMDX_shader_enqueue}; } } + if (value & (VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_SPHERES_AND_LINEAR_SWEPT_SPHERES_BIT_NV)) { + if (!IsExtEnabled(extensions.vk_nv_ray_tracing_linear_swept_spheres)) { + return {vvl::Extension::_VK_NV_ray_tracing_linear_swept_spheres}; + } + } if (value & (VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT)) { if (!IsExtEnabled(extensions.vk_ext_legacy_dithering)) { return {vvl::Extension::_VK_EXT_legacy_dithering}; } } + if (value & (VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR)) { + if (!IsExtEnabled(extensions.vk_khr_ray_tracing_pipeline)) { + return {vvl::Extension::_VK_KHR_ray_tracing_pipeline}; + } + } if (value & (VK_PIPELINE_CREATE_2_DISALLOW_OPACITY_MICROMAP_BIT_ARM)) { if (!IsExtEnabled(extensions.vk_arm_pipeline_opacity_micromap)) { return {vvl::Extension::_VK_ARM_pipeline_opacity_micromap}; @@ -1280,6 +1295,12 @@ std::string stateless::Context::DescribeFlagBitmaskValue(vvl::FlagBitmask flag_b return string_VkOpticalFlowExecuteFlagsNV(value); case vvl::FlagBitmask::VkShaderCreateFlagBitsEXT: return string_VkShaderCreateFlagsEXT(value); + case vvl::FlagBitmask::VkClusterAccelerationStructureAddressResolutionFlagBitsNV: + return string_VkClusterAccelerationStructureAddressResolutionFlagsNV(value); + case vvl::FlagBitmask::VkClusterAccelerationStructureClusterFlagBitsNV: + return string_VkClusterAccelerationStructureClusterFlagsNV(value); + case vvl::FlagBitmask::VkPartitionedAccelerationStructureInstanceFlagBitsNV: + return string_VkPartitionedAccelerationStructureInstanceFlagsNV(value); case vvl::FlagBitmask::VkIndirectCommandsInputModeFlagBitsEXT: return string_VkIndirectCommandsInputModeFlagsEXT(value); case vvl::FlagBitmask::VkIndirectCommandsLayoutUsageFlagBitsEXT: diff --git a/layers/vulkan/generated/validation_object_device_methods.h b/layers/vulkan/generated/validation_object_device_methods.h index c75337b07b9..95267638dd0 100644 --- a/layers/vulkan/generated/validation_object_device_methods.h +++ b/layers/vulkan/generated/validation_object_device_methods.h @@ -5354,6 +5354,25 @@ virtual void PreCallRecordGetDynamicRenderingTilePropertiesQCOM(VkDevice device, virtual void PostCallRecordGetDynamicRenderingTilePropertiesQCOM(VkDevice device, const VkRenderingInfo* pRenderingInfo, VkTilePropertiesQCOM* pProperties, const RecordObject& record_obj) {} +virtual bool PreCallValidateConvertCooperativeVectorMatrixNV(VkDevice device, const VkConvertCooperativeVectorMatrixInfoNV* pInfo, + const ErrorObject& error_obj) const { + return false; +} +virtual void PreCallRecordConvertCooperativeVectorMatrixNV(VkDevice device, const VkConvertCooperativeVectorMatrixInfoNV* pInfo, + const RecordObject& record_obj) {} +virtual void PostCallRecordConvertCooperativeVectorMatrixNV(VkDevice device, const VkConvertCooperativeVectorMatrixInfoNV* pInfo, + const RecordObject& record_obj) {} +virtual bool PreCallValidateCmdConvertCooperativeVectorMatrixNV(VkCommandBuffer commandBuffer, uint32_t infoCount, + const VkConvertCooperativeVectorMatrixInfoNV* pInfos, + const ErrorObject& error_obj) const { + return false; +} +virtual void PreCallRecordCmdConvertCooperativeVectorMatrixNV(VkCommandBuffer commandBuffer, uint32_t infoCount, + const VkConvertCooperativeVectorMatrixInfoNV* pInfos, + const RecordObject& record_obj) {} +virtual void PostCallRecordCmdConvertCooperativeVectorMatrixNV(VkCommandBuffer commandBuffer, uint32_t infoCount, + const VkConvertCooperativeVectorMatrixInfoNV* pInfos, + const RecordObject& record_obj) {} virtual bool PreCallValidateSetLatencySleepModeNV(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepModeInfoNV* pSleepModeInfo, const ErrorObject& error_obj) const { @@ -5415,6 +5434,53 @@ virtual void PreCallRecordGetScreenBufferPropertiesQNX(VkDevice device, const st virtual void PostCallRecordGetScreenBufferPropertiesQNX(VkDevice device, const struct _screen_buffer* buffer, VkScreenBufferPropertiesQNX* pProperties, const RecordObject& record_obj) {} #endif // VK_USE_PLATFORM_SCREEN_QNX +virtual bool PreCallValidateGetClusterAccelerationStructureBuildSizesNV(VkDevice device, + const VkClusterAccelerationStructureInputInfoNV* pInfo, + VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo, + const ErrorObject& error_obj) const { + return false; +} +virtual void PreCallRecordGetClusterAccelerationStructureBuildSizesNV(VkDevice device, + const VkClusterAccelerationStructureInputInfoNV* pInfo, + VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo, + const RecordObject& record_obj) {} +virtual void PostCallRecordGetClusterAccelerationStructureBuildSizesNV(VkDevice device, + const VkClusterAccelerationStructureInputInfoNV* pInfo, + VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo, + const RecordObject& record_obj) {} +virtual bool PreCallValidateCmdBuildClusterAccelerationStructureIndirectNV( + VkCommandBuffer commandBuffer, const VkClusterAccelerationStructureCommandsInfoNV* pCommandInfos, + const ErrorObject& error_obj) const { + return false; +} +virtual void PreCallRecordCmdBuildClusterAccelerationStructureIndirectNV( + VkCommandBuffer commandBuffer, const VkClusterAccelerationStructureCommandsInfoNV* pCommandInfos, + const RecordObject& record_obj) {} +virtual void PostCallRecordCmdBuildClusterAccelerationStructureIndirectNV( + VkCommandBuffer commandBuffer, const VkClusterAccelerationStructureCommandsInfoNV* pCommandInfos, + const RecordObject& record_obj) {} +virtual bool PreCallValidateGetPartitionedAccelerationStructuresBuildSizesNV( + VkDevice device, const VkPartitionedAccelerationStructureInstancesInputNV* pInfo, + VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo, const ErrorObject& error_obj) const { + return false; +} +virtual void PreCallRecordGetPartitionedAccelerationStructuresBuildSizesNV( + VkDevice device, const VkPartitionedAccelerationStructureInstancesInputNV* pInfo, + VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo, const RecordObject& record_obj) {} +virtual void PostCallRecordGetPartitionedAccelerationStructuresBuildSizesNV( + VkDevice device, const VkPartitionedAccelerationStructureInstancesInputNV* pInfo, + VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo, const RecordObject& record_obj) {} +virtual bool PreCallValidateCmdBuildPartitionedAccelerationStructuresNV( + VkCommandBuffer commandBuffer, const VkBuildPartitionedAccelerationStructureInfoNV* pBuildInfo, + const ErrorObject& error_obj) const { + return false; +} +virtual void PreCallRecordCmdBuildPartitionedAccelerationStructuresNV( + VkCommandBuffer commandBuffer, const VkBuildPartitionedAccelerationStructureInfoNV* pBuildInfo, + const RecordObject& record_obj) {} +virtual void PostCallRecordCmdBuildPartitionedAccelerationStructuresNV( + VkCommandBuffer commandBuffer, const VkBuildPartitionedAccelerationStructureInfoNV* pBuildInfo, + const RecordObject& record_obj) {} virtual bool PreCallValidateGetGeneratedCommandsMemoryRequirementsEXT(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoEXT* pInfo, VkMemoryRequirements2* pMemoryRequirements, diff --git a/layers/vulkan/generated/validation_object_instance_methods.h b/layers/vulkan/generated/validation_object_instance_methods.h index e56c4a91cd6..cf1c368f154 100644 --- a/layers/vulkan/generated/validation_object_instance_methods.h +++ b/layers/vulkan/generated/validation_object_instance_methods.h @@ -1289,6 +1289,18 @@ virtual void PreCallRecordGetPhysicalDeviceOpticalFlowImageFormatsNV( virtual void PostCallRecordGetPhysicalDeviceOpticalFlowImageFormatsNV( VkPhysicalDevice physicalDevice, const VkOpticalFlowImageFormatInfoNV* pOpticalFlowImageFormatInfo, uint32_t* pFormatCount, VkOpticalFlowImageFormatPropertiesNV* pImageFormatProperties, const RecordObject& record_obj) {} +virtual bool PreCallValidateGetPhysicalDeviceCooperativeVectorPropertiesNV(VkPhysicalDevice physicalDevice, + uint32_t* pPropertyCount, + VkCooperativeVectorPropertiesNV* pProperties, + const ErrorObject& error_obj) const { + return false; +} +virtual void PreCallRecordGetPhysicalDeviceCooperativeVectorPropertiesNV(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, + VkCooperativeVectorPropertiesNV* pProperties, + const RecordObject& record_obj) {} +virtual void PostCallRecordGetPhysicalDeviceCooperativeVectorPropertiesNV(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, + VkCooperativeVectorPropertiesNV* pProperties, + const RecordObject& record_obj) {} virtual bool PreCallValidateGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixFlexibleDimensionsPropertiesNV* pProperties, const ErrorObject& error_obj) const { diff --git a/layers/vulkan/generated/vk_dispatch_table_helper.cpp b/layers/vulkan/generated/vk_dispatch_table_helper.cpp index 0449ee70026..ab5c1e08471 100644 --- a/layers/vulkan/generated/vk_dispatch_table_helper.cpp +++ b/layers/vulkan/generated/vk_dispatch_table_helper.cpp @@ -1270,6 +1270,16 @@ static VKAPI_ATTR VkResult VKAPI_CALL StubGetDynamicRenderingTilePropertiesQCOM( VkTilePropertiesQCOM*) { return VK_SUCCESS; } +static VKAPI_ATTR VkResult VKAPI_CALL StubGetPhysicalDeviceCooperativeVectorPropertiesNV(VkPhysicalDevice, uint32_t*, + VkCooperativeVectorPropertiesNV*) { + return VK_SUCCESS; +} +static VKAPI_ATTR VkResult VKAPI_CALL StubConvertCooperativeVectorMatrixNV(VkDevice, + const VkConvertCooperativeVectorMatrixInfoNV*) { + return VK_SUCCESS; +} +static VKAPI_ATTR void VKAPI_CALL StubCmdConvertCooperativeVectorMatrixNV(VkCommandBuffer, uint32_t, + const VkConvertCooperativeVectorMatrixInfoNV*) {} static VKAPI_ATTR VkResult VKAPI_CALL StubSetLatencySleepModeNV(VkDevice, VkSwapchainKHR, const VkLatencySleepModeInfoNV*) { return VK_SUCCESS; } @@ -1286,6 +1296,15 @@ static VKAPI_ATTR VkResult VKAPI_CALL StubGetScreenBufferPropertiesQNX(VkDevice, return VK_SUCCESS; } #endif // VK_USE_PLATFORM_SCREEN_QNX +static VKAPI_ATTR void VKAPI_CALL StubGetClusterAccelerationStructureBuildSizesNV(VkDevice, + const VkClusterAccelerationStructureInputInfoNV*, + VkAccelerationStructureBuildSizesInfoKHR*) {} +static VKAPI_ATTR void VKAPI_CALL +StubCmdBuildClusterAccelerationStructureIndirectNV(VkCommandBuffer, const VkClusterAccelerationStructureCommandsInfoNV*) {} +static VKAPI_ATTR void VKAPI_CALL StubGetPartitionedAccelerationStructuresBuildSizesNV( + VkDevice, const VkPartitionedAccelerationStructureInstancesInputNV*, VkAccelerationStructureBuildSizesInfoKHR*) {} +static VKAPI_ATTR void VKAPI_CALL +StubCmdBuildPartitionedAccelerationStructuresNV(VkCommandBuffer, const VkBuildPartitionedAccelerationStructureInfoNV*) {} static VKAPI_ATTR void VKAPI_CALL StubGetGeneratedCommandsMemoryRequirementsEXT(VkDevice, const VkGeneratedCommandsMemoryRequirementsInfoEXT*, VkMemoryRequirements2*) {} @@ -1881,6 +1900,8 @@ const auto& GetApiExtensionMap() { {"vkCmdSetDepthClampRangeEXT", {vvl::Extension::_VK_EXT_shader_object, vvl::Extension::_VK_EXT_depth_clamp_control}}, {"vkGetFramebufferTilePropertiesQCOM", {vvl::Extension::_VK_QCOM_tile_properties}}, {"vkGetDynamicRenderingTilePropertiesQCOM", {vvl::Extension::_VK_QCOM_tile_properties}}, + {"vkConvertCooperativeVectorMatrixNV", {vvl::Extension::_VK_NV_cooperative_vector}}, + {"vkCmdConvertCooperativeVectorMatrixNV", {vvl::Extension::_VK_NV_cooperative_vector}}, {"vkSetLatencySleepModeNV", {vvl::Extension::_VK_NV_low_latency2}}, {"vkLatencySleepNV", {vvl::Extension::_VK_NV_low_latency2}}, {"vkSetLatencyMarkerNV", {vvl::Extension::_VK_NV_low_latency2}}, @@ -1888,6 +1909,10 @@ const auto& GetApiExtensionMap() { {"vkQueueNotifyOutOfBandNV", {vvl::Extension::_VK_NV_low_latency2}}, {"vkCmdSetAttachmentFeedbackLoopEnableEXT", {vvl::Extension::_VK_EXT_attachment_feedback_loop_dynamic_state}}, {"vkGetScreenBufferPropertiesQNX", {vvl::Extension::_VK_QNX_external_memory_screen_buffer}}, + {"vkGetClusterAccelerationStructureBuildSizesNV", {vvl::Extension::_VK_NV_cluster_acceleration_structure}}, + {"vkCmdBuildClusterAccelerationStructureIndirectNV", {vvl::Extension::_VK_NV_cluster_acceleration_structure}}, + {"vkGetPartitionedAccelerationStructuresBuildSizesNV", {vvl::Extension::_VK_NV_partitioned_acceleration_structure}}, + {"vkCmdBuildPartitionedAccelerationStructuresNV", {vvl::Extension::_VK_NV_partitioned_acceleration_structure}}, {"vkGetGeneratedCommandsMemoryRequirementsEXT", {vvl::Extension::_VK_EXT_device_generated_commands}}, {"vkCmdPreprocessGeneratedCommandsEXT", {vvl::Extension::_VK_EXT_device_generated_commands}}, {"vkCmdExecuteGeneratedCommandsEXT", {vvl::Extension::_VK_EXT_device_generated_commands}}, @@ -4077,6 +4102,17 @@ void layer_init_device_dispatch_table(VkDevice device, VkLayerDispatchTable* tab table->GetDynamicRenderingTilePropertiesQCOM = (PFN_vkGetDynamicRenderingTilePropertiesQCOM)StubGetDynamicRenderingTilePropertiesQCOM; } + table->ConvertCooperativeVectorMatrixNV = + (PFN_vkConvertCooperativeVectorMatrixNV)gpa(device, "vkConvertCooperativeVectorMatrixNV"); + if (table->ConvertCooperativeVectorMatrixNV == nullptr) { + table->ConvertCooperativeVectorMatrixNV = (PFN_vkConvertCooperativeVectorMatrixNV)StubConvertCooperativeVectorMatrixNV; + } + table->CmdConvertCooperativeVectorMatrixNV = + (PFN_vkCmdConvertCooperativeVectorMatrixNV)gpa(device, "vkCmdConvertCooperativeVectorMatrixNV"); + if (table->CmdConvertCooperativeVectorMatrixNV == nullptr) { + table->CmdConvertCooperativeVectorMatrixNV = + (PFN_vkCmdConvertCooperativeVectorMatrixNV)StubCmdConvertCooperativeVectorMatrixNV; + } table->SetLatencySleepModeNV = (PFN_vkSetLatencySleepModeNV)gpa(device, "vkSetLatencySleepModeNV"); if (table->SetLatencySleepModeNV == nullptr) { table->SetLatencySleepModeNV = (PFN_vkSetLatencySleepModeNV)StubSetLatencySleepModeNV; @@ -4109,6 +4145,30 @@ void layer_init_device_dispatch_table(VkDevice device, VkLayerDispatchTable* tab table->GetScreenBufferPropertiesQNX = (PFN_vkGetScreenBufferPropertiesQNX)StubGetScreenBufferPropertiesQNX; } #endif // VK_USE_PLATFORM_SCREEN_QNX + table->GetClusterAccelerationStructureBuildSizesNV = + (PFN_vkGetClusterAccelerationStructureBuildSizesNV)gpa(device, "vkGetClusterAccelerationStructureBuildSizesNV"); + if (table->GetClusterAccelerationStructureBuildSizesNV == nullptr) { + table->GetClusterAccelerationStructureBuildSizesNV = + (PFN_vkGetClusterAccelerationStructureBuildSizesNV)StubGetClusterAccelerationStructureBuildSizesNV; + } + table->CmdBuildClusterAccelerationStructureIndirectNV = + (PFN_vkCmdBuildClusterAccelerationStructureIndirectNV)gpa(device, "vkCmdBuildClusterAccelerationStructureIndirectNV"); + if (table->CmdBuildClusterAccelerationStructureIndirectNV == nullptr) { + table->CmdBuildClusterAccelerationStructureIndirectNV = + (PFN_vkCmdBuildClusterAccelerationStructureIndirectNV)StubCmdBuildClusterAccelerationStructureIndirectNV; + } + table->GetPartitionedAccelerationStructuresBuildSizesNV = + (PFN_vkGetPartitionedAccelerationStructuresBuildSizesNV)gpa(device, "vkGetPartitionedAccelerationStructuresBuildSizesNV"); + if (table->GetPartitionedAccelerationStructuresBuildSizesNV == nullptr) { + table->GetPartitionedAccelerationStructuresBuildSizesNV = + (PFN_vkGetPartitionedAccelerationStructuresBuildSizesNV)StubGetPartitionedAccelerationStructuresBuildSizesNV; + } + table->CmdBuildPartitionedAccelerationStructuresNV = + (PFN_vkCmdBuildPartitionedAccelerationStructuresNV)gpa(device, "vkCmdBuildPartitionedAccelerationStructuresNV"); + if (table->CmdBuildPartitionedAccelerationStructuresNV == nullptr) { + table->CmdBuildPartitionedAccelerationStructuresNV = + (PFN_vkCmdBuildPartitionedAccelerationStructuresNV)StubCmdBuildPartitionedAccelerationStructuresNV; + } table->GetGeneratedCommandsMemoryRequirementsEXT = (PFN_vkGetGeneratedCommandsMemoryRequirementsEXT)gpa(device, "vkGetGeneratedCommandsMemoryRequirementsEXT"); if (table->GetGeneratedCommandsMemoryRequirementsEXT == nullptr) { @@ -4830,6 +4890,12 @@ void layer_init_instance_dispatch_table(VkInstance instance, VkLayerInstanceDisp table->GetPhysicalDeviceOpticalFlowImageFormatsNV = (PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV)StubGetPhysicalDeviceOpticalFlowImageFormatsNV; } + table->GetPhysicalDeviceCooperativeVectorPropertiesNV = + (PFN_vkGetPhysicalDeviceCooperativeVectorPropertiesNV)gpa(instance, "vkGetPhysicalDeviceCooperativeVectorPropertiesNV"); + if (table->GetPhysicalDeviceCooperativeVectorPropertiesNV == nullptr) { + table->GetPhysicalDeviceCooperativeVectorPropertiesNV = + (PFN_vkGetPhysicalDeviceCooperativeVectorPropertiesNV)StubGetPhysicalDeviceCooperativeVectorPropertiesNV; + } table->GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV = (PFN_vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV)gpa( instance, "vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV"); diff --git a/layers/vulkan/generated/vk_extension_helper.cpp b/layers/vulkan/generated/vk_extension_helper.cpp index e32257479f3..85645bf65e0 100644 --- a/layers/vulkan/generated/vk_extension_helper.cpp +++ b/layers/vulkan/generated/vk_extension_helper.cpp @@ -363,6 +363,7 @@ vvl::Extension GetExtension(std::string extension) { {"VK_NV_copy_memory_indirect", vvl::Extension::_VK_NV_copy_memory_indirect}, {"VK_NV_memory_decompression", vvl::Extension::_VK_NV_memory_decompression}, {"VK_NV_device_generated_commands_compute", vvl::Extension::_VK_NV_device_generated_commands_compute}, + {"VK_NV_ray_tracing_linear_swept_spheres", vvl::Extension::_VK_NV_ray_tracing_linear_swept_spheres}, {"VK_NV_linear_color_attachment", vvl::Extension::_VK_NV_linear_color_attachment}, {"VK_GOOGLE_surfaceless_query", vvl::Extension::_VK_GOOGLE_surfaceless_query}, {"VK_EXT_image_compression_control_swapchain", vvl::Extension::_VK_EXT_image_compression_control_swapchain}, @@ -384,6 +385,7 @@ vvl::Extension GetExtension(std::string extension) { {"VK_SEC_amigo_profiling", vvl::Extension::_VK_SEC_amigo_profiling}, {"VK_QCOM_multiview_per_view_viewports", vvl::Extension::_VK_QCOM_multiview_per_view_viewports}, {"VK_NV_ray_tracing_invocation_reorder", vvl::Extension::_VK_NV_ray_tracing_invocation_reorder}, + {"VK_NV_cooperative_vector", vvl::Extension::_VK_NV_cooperative_vector}, {"VK_NV_extended_sparse_address_space", vvl::Extension::_VK_NV_extended_sparse_address_space}, {"VK_EXT_mutable_descriptor_type", vvl::Extension::_VK_EXT_mutable_descriptor_type}, {"VK_EXT_legacy_vertex_attributes", vvl::Extension::_VK_EXT_legacy_vertex_attributes}, @@ -408,6 +410,8 @@ vvl::Extension GetExtension(std::string extension) { {"VK_NV_shader_atomic_float16_vector", vvl::Extension::_VK_NV_shader_atomic_float16_vector}, {"VK_EXT_shader_replicated_composites", vvl::Extension::_VK_EXT_shader_replicated_composites}, {"VK_NV_ray_tracing_validation", vvl::Extension::_VK_NV_ray_tracing_validation}, + {"VK_NV_cluster_acceleration_structure", vvl::Extension::_VK_NV_cluster_acceleration_structure}, + {"VK_NV_partitioned_acceleration_structure", vvl::Extension::_VK_NV_partitioned_acceleration_structure}, {"VK_EXT_device_generated_commands", vvl::Extension::_VK_EXT_device_generated_commands}, {"VK_MESA_image_alignment_control", vvl::Extension::_VK_MESA_image_alignment_control}, {"VK_EXT_depth_clamp_control", vvl::Extension::_VK_EXT_depth_clamp_control}, diff --git a/layers/vulkan/generated/vk_extension_helper.h b/layers/vulkan/generated/vk_extension_helper.h index 17184a17a60..0a09b15daa4 100644 --- a/layers/vulkan/generated/vk_extension_helper.h +++ b/layers/vulkan/generated/vk_extension_helper.h @@ -588,6 +588,7 @@ struct DeviceExtensions : public InstanceExtensions { ExtEnabled vk_nv_copy_memory_indirect{kNotEnabled}; ExtEnabled vk_nv_memory_decompression{kNotEnabled}; ExtEnabled vk_nv_device_generated_commands_compute{kNotEnabled}; + ExtEnabled vk_nv_ray_tracing_linear_swept_spheres{kNotEnabled}; ExtEnabled vk_nv_linear_color_attachment{kNotEnabled}; ExtEnabled vk_ext_image_compression_control_swapchain{kNotEnabled}; ExtEnabled vk_qcom_image_processing{kNotEnabled}; @@ -607,6 +608,7 @@ struct DeviceExtensions : public InstanceExtensions { ExtEnabled vk_sec_amigo_profiling{kNotEnabled}; ExtEnabled vk_qcom_multiview_per_view_viewports{kNotEnabled}; ExtEnabled vk_nv_ray_tracing_invocation_reorder{kNotEnabled}; + ExtEnabled vk_nv_cooperative_vector{kNotEnabled}; ExtEnabled vk_nv_extended_sparse_address_space{kNotEnabled}; ExtEnabled vk_ext_mutable_descriptor_type{kNotEnabled}; ExtEnabled vk_ext_legacy_vertex_attributes{kNotEnabled}; @@ -629,6 +631,8 @@ struct DeviceExtensions : public InstanceExtensions { ExtEnabled vk_nv_shader_atomic_float16_vector{kNotEnabled}; ExtEnabled vk_ext_shader_replicated_composites{kNotEnabled}; ExtEnabled vk_nv_ray_tracing_validation{kNotEnabled}; + ExtEnabled vk_nv_cluster_acceleration_structure{kNotEnabled}; + ExtEnabled vk_nv_partitioned_acceleration_structure{kNotEnabled}; ExtEnabled vk_ext_device_generated_commands{kNotEnabled}; ExtEnabled vk_mesa_image_alignment_control{kNotEnabled}; ExtEnabled vk_ext_depth_clamp_control{kNotEnabled}; @@ -1575,6 +1579,9 @@ struct DeviceExtensions : public InstanceExtensions { {vvl::Extension::_VK_NV_device_generated_commands_compute, Info(&DeviceExtensions::vk_nv_device_generated_commands_compute, {{{&DeviceExtensions::vk_nv_device_generated_commands, VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME}}})}, + {vvl::Extension::_VK_NV_ray_tracing_linear_swept_spheres, + Info(&DeviceExtensions::vk_nv_ray_tracing_linear_swept_spheres, + {{{&DeviceExtensions::vk_khr_ray_tracing_pipeline, VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME}}})}, {vvl::Extension::_VK_NV_linear_color_attachment, Info(&DeviceExtensions::vk_nv_linear_color_attachment, {{{&DeviceExtensions::vk_khr_get_physical_device_properties2, VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME}}})}, @@ -1642,6 +1649,7 @@ struct DeviceExtensions : public InstanceExtensions { {vvl::Extension::_VK_NV_ray_tracing_invocation_reorder, Info(&DeviceExtensions::vk_nv_ray_tracing_invocation_reorder, {{{&DeviceExtensions::vk_khr_ray_tracing_pipeline, VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME}}})}, + {vvl::Extension::_VK_NV_cooperative_vector, Info(&DeviceExtensions::vk_nv_cooperative_vector, {})}, {vvl::Extension::_VK_NV_extended_sparse_address_space, Info(&DeviceExtensions::vk_nv_extended_sparse_address_space, {})}, {vvl::Extension::_VK_EXT_mutable_descriptor_type, @@ -1707,6 +1715,12 @@ struct DeviceExtensions : public InstanceExtensions { {vvl::Extension::_VK_EXT_shader_replicated_composites, Info(&DeviceExtensions::vk_ext_shader_replicated_composites, {})}, {vvl::Extension::_VK_NV_ray_tracing_validation, Info(&DeviceExtensions::vk_nv_ray_tracing_validation, {})}, + {vvl::Extension::_VK_NV_cluster_acceleration_structure, + Info(&DeviceExtensions::vk_nv_cluster_acceleration_structure, + {{{&DeviceExtensions::vk_khr_acceleration_structure, VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME}}})}, + {vvl::Extension::_VK_NV_partitioned_acceleration_structure, + Info(&DeviceExtensions::vk_nv_partitioned_acceleration_structure, + {{{&DeviceExtensions::vk_khr_acceleration_structure, VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME}}})}, {vvl::Extension::_VK_EXT_device_generated_commands, Info(&DeviceExtensions::vk_ext_device_generated_commands, {{{&DeviceExtensions::vk_khr_buffer_device_address, VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME}, @@ -2129,6 +2143,7 @@ constexpr bool IsDeviceExtension(vvl::Extension extension) { case vvl::Extension::_VK_NV_copy_memory_indirect: case vvl::Extension::_VK_NV_memory_decompression: case vvl::Extension::_VK_NV_device_generated_commands_compute: + case vvl::Extension::_VK_NV_ray_tracing_linear_swept_spheres: case vvl::Extension::_VK_NV_linear_color_attachment: case vvl::Extension::_VK_EXT_image_compression_control_swapchain: case vvl::Extension::_VK_QCOM_image_processing: @@ -2148,6 +2163,7 @@ constexpr bool IsDeviceExtension(vvl::Extension extension) { case vvl::Extension::_VK_SEC_amigo_profiling: case vvl::Extension::_VK_QCOM_multiview_per_view_viewports: case vvl::Extension::_VK_NV_ray_tracing_invocation_reorder: + case vvl::Extension::_VK_NV_cooperative_vector: case vvl::Extension::_VK_NV_extended_sparse_address_space: case vvl::Extension::_VK_EXT_mutable_descriptor_type: case vvl::Extension::_VK_EXT_legacy_vertex_attributes: @@ -2170,6 +2186,8 @@ constexpr bool IsDeviceExtension(vvl::Extension extension) { case vvl::Extension::_VK_NV_shader_atomic_float16_vector: case vvl::Extension::_VK_EXT_shader_replicated_composites: case vvl::Extension::_VK_NV_ray_tracing_validation: + case vvl::Extension::_VK_NV_cluster_acceleration_structure: + case vvl::Extension::_VK_NV_partitioned_acceleration_structure: case vvl::Extension::_VK_EXT_device_generated_commands: case vvl::Extension::_VK_MESA_image_alignment_control: case vvl::Extension::_VK_EXT_depth_clamp_control: diff --git a/layers/vulkan/generated/vk_function_pointers.cpp b/layers/vulkan/generated/vk_function_pointers.cpp index 68af4baf4e9..d08b1747f28 100644 --- a/layers/vulkan/generated/vk_function_pointers.cpp +++ b/layers/vulkan/generated/vk_function_pointers.cpp @@ -799,6 +799,9 @@ PFN_vkCmdBindShadersEXT CmdBindShadersEXT; PFN_vkCmdSetDepthClampRangeEXT CmdSetDepthClampRangeEXT; PFN_vkGetFramebufferTilePropertiesQCOM GetFramebufferTilePropertiesQCOM; PFN_vkGetDynamicRenderingTilePropertiesQCOM GetDynamicRenderingTilePropertiesQCOM; +PFN_vkGetPhysicalDeviceCooperativeVectorPropertiesNV GetPhysicalDeviceCooperativeVectorPropertiesNV; +PFN_vkConvertCooperativeVectorMatrixNV ConvertCooperativeVectorMatrixNV; +PFN_vkCmdConvertCooperativeVectorMatrixNV CmdConvertCooperativeVectorMatrixNV; PFN_vkSetLatencySleepModeNV SetLatencySleepModeNV; PFN_vkLatencySleepNV LatencySleepNV; PFN_vkSetLatencyMarkerNV SetLatencyMarkerNV; @@ -808,6 +811,10 @@ PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT CmdSetAttachmentFeedbackLoopEnableEX #ifdef VK_USE_PLATFORM_SCREEN_QNX PFN_vkGetScreenBufferPropertiesQNX GetScreenBufferPropertiesQNX; #endif // VK_USE_PLATFORM_SCREEN_QNX +PFN_vkGetClusterAccelerationStructureBuildSizesNV GetClusterAccelerationStructureBuildSizesNV; +PFN_vkCmdBuildClusterAccelerationStructureIndirectNV CmdBuildClusterAccelerationStructureIndirectNV; +PFN_vkGetPartitionedAccelerationStructuresBuildSizesNV GetPartitionedAccelerationStructuresBuildSizesNV; +PFN_vkCmdBuildPartitionedAccelerationStructuresNV CmdBuildPartitionedAccelerationStructuresNV; PFN_vkGetGeneratedCommandsMemoryRequirementsEXT GetGeneratedCommandsMemoryRequirementsEXT; PFN_vkCmdPreprocessGeneratedCommandsEXT CmdPreprocessGeneratedCommandsEXT; PFN_vkCmdExecuteGeneratedCommandsEXT CmdExecuteGeneratedCommandsEXT; @@ -2488,6 +2495,13 @@ void InitDeviceExtension(VkInstance instance, VkDevice device, const char* exten GetDynamicRenderingTilePropertiesQCOM = reinterpret_cast(GetDeviceProcAddr(device, "vkGetDynamicRenderingTilePropertiesQCOM")); } }, + { + "VK_NV_cooperative_vector", [](VkInstance instance, VkDevice device) { + ConvertCooperativeVectorMatrixNV = reinterpret_cast(GetDeviceProcAddr(device, "vkConvertCooperativeVectorMatrixNV")); + CmdConvertCooperativeVectorMatrixNV = reinterpret_cast(GetDeviceProcAddr(device, "vkCmdConvertCooperativeVectorMatrixNV")); + GetPhysicalDeviceCooperativeVectorPropertiesNV = reinterpret_cast(GetInstanceProcAddr(instance, "vkGetPhysicalDeviceCooperativeVectorPropertiesNV")); + } + }, { "VK_NV_low_latency2", [](VkInstance , VkDevice device) { SetLatencySleepModeNV = reinterpret_cast(GetDeviceProcAddr(device, "vkSetLatencySleepModeNV")); @@ -2509,6 +2523,18 @@ void InitDeviceExtension(VkInstance instance, VkDevice device, const char* exten } }, #endif // VK_USE_PLATFORM_SCREEN_QNX + { + "VK_NV_cluster_acceleration_structure", [](VkInstance , VkDevice device) { + GetClusterAccelerationStructureBuildSizesNV = reinterpret_cast(GetDeviceProcAddr(device, "vkGetClusterAccelerationStructureBuildSizesNV")); + CmdBuildClusterAccelerationStructureIndirectNV = reinterpret_cast(GetDeviceProcAddr(device, "vkCmdBuildClusterAccelerationStructureIndirectNV")); + } + }, + { + "VK_NV_partitioned_acceleration_structure", [](VkInstance , VkDevice device) { + GetPartitionedAccelerationStructuresBuildSizesNV = reinterpret_cast(GetDeviceProcAddr(device, "vkGetPartitionedAccelerationStructuresBuildSizesNV")); + CmdBuildPartitionedAccelerationStructuresNV = reinterpret_cast(GetDeviceProcAddr(device, "vkCmdBuildPartitionedAccelerationStructuresNV")); + } + }, { "VK_EXT_device_generated_commands", [](VkInstance , VkDevice device) { GetGeneratedCommandsMemoryRequirementsEXT = reinterpret_cast(GetDeviceProcAddr(device, "vkGetGeneratedCommandsMemoryRequirementsEXT")); @@ -3074,6 +3100,9 @@ void ResetAllExtensions() { CmdSetDepthClampRangeEXT = nullptr; GetFramebufferTilePropertiesQCOM = nullptr; GetDynamicRenderingTilePropertiesQCOM = nullptr; + GetPhysicalDeviceCooperativeVectorPropertiesNV = nullptr; + ConvertCooperativeVectorMatrixNV = nullptr; + CmdConvertCooperativeVectorMatrixNV = nullptr; SetLatencySleepModeNV = nullptr; LatencySleepNV = nullptr; SetLatencyMarkerNV = nullptr; @@ -3083,6 +3112,10 @@ void ResetAllExtensions() { #ifdef VK_USE_PLATFORM_SCREEN_QNX GetScreenBufferPropertiesQNX = nullptr; #endif // VK_USE_PLATFORM_SCREEN_QNX + GetClusterAccelerationStructureBuildSizesNV = nullptr; + CmdBuildClusterAccelerationStructureIndirectNV = nullptr; + GetPartitionedAccelerationStructuresBuildSizesNV = nullptr; + CmdBuildPartitionedAccelerationStructuresNV = nullptr; GetGeneratedCommandsMemoryRequirementsEXT = nullptr; CmdPreprocessGeneratedCommandsEXT = nullptr; CmdExecuteGeneratedCommandsEXT = nullptr; diff --git a/layers/vulkan/generated/vk_function_pointers.h b/layers/vulkan/generated/vk_function_pointers.h index e4cda347805..c19c36c4cf2 100644 --- a/layers/vulkan/generated/vk_function_pointers.h +++ b/layers/vulkan/generated/vk_function_pointers.h @@ -762,6 +762,9 @@ extern PFN_vkCmdBindShadersEXT CmdBindShadersEXT; extern PFN_vkCmdSetDepthClampRangeEXT CmdSetDepthClampRangeEXT; extern PFN_vkGetFramebufferTilePropertiesQCOM GetFramebufferTilePropertiesQCOM; extern PFN_vkGetDynamicRenderingTilePropertiesQCOM GetDynamicRenderingTilePropertiesQCOM; +extern PFN_vkGetPhysicalDeviceCooperativeVectorPropertiesNV GetPhysicalDeviceCooperativeVectorPropertiesNV; +extern PFN_vkConvertCooperativeVectorMatrixNV ConvertCooperativeVectorMatrixNV; +extern PFN_vkCmdConvertCooperativeVectorMatrixNV CmdConvertCooperativeVectorMatrixNV; extern PFN_vkSetLatencySleepModeNV SetLatencySleepModeNV; extern PFN_vkLatencySleepNV LatencySleepNV; extern PFN_vkSetLatencyMarkerNV SetLatencyMarkerNV; @@ -771,6 +774,10 @@ extern PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT CmdSetAttachmentFeedbackLoopE #ifdef VK_USE_PLATFORM_SCREEN_QNX extern PFN_vkGetScreenBufferPropertiesQNX GetScreenBufferPropertiesQNX; #endif // VK_USE_PLATFORM_SCREEN_QNX +extern PFN_vkGetClusterAccelerationStructureBuildSizesNV GetClusterAccelerationStructureBuildSizesNV; +extern PFN_vkCmdBuildClusterAccelerationStructureIndirectNV CmdBuildClusterAccelerationStructureIndirectNV; +extern PFN_vkGetPartitionedAccelerationStructuresBuildSizesNV GetPartitionedAccelerationStructuresBuildSizesNV; +extern PFN_vkCmdBuildPartitionedAccelerationStructuresNV CmdBuildPartitionedAccelerationStructuresNV; extern PFN_vkGetGeneratedCommandsMemoryRequirementsEXT GetGeneratedCommandsMemoryRequirementsEXT; extern PFN_vkCmdPreprocessGeneratedCommandsEXT CmdPreprocessGeneratedCommandsEXT; extern PFN_vkCmdExecuteGeneratedCommandsEXT CmdExecuteGeneratedCommandsEXT; diff --git a/layers/vulkan/generated/vk_layer_dispatch_table.h b/layers/vulkan/generated/vk_layer_dispatch_table.h index e874dfd67ae..1a7c6111e70 100644 --- a/layers/vulkan/generated/vk_layer_dispatch_table.h +++ b/layers/vulkan/generated/vk_layer_dispatch_table.h @@ -172,6 +172,7 @@ typedef struct VkLayerInstanceDispatchTable_ { PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX GetPhysicalDeviceScreenPresentationSupportQNX; #endif // VK_USE_PLATFORM_SCREEN_QNX PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV GetPhysicalDeviceOpticalFlowImageFormatsNV; + PFN_vkGetPhysicalDeviceCooperativeVectorPropertiesNV GetPhysicalDeviceCooperativeVectorPropertiesNV; PFN_vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV; } VkLayerInstanceDispatchTable; @@ -762,6 +763,8 @@ typedef struct VkLayerDispatchTable_ { PFN_vkCmdSetDepthClampRangeEXT CmdSetDepthClampRangeEXT; PFN_vkGetFramebufferTilePropertiesQCOM GetFramebufferTilePropertiesQCOM; PFN_vkGetDynamicRenderingTilePropertiesQCOM GetDynamicRenderingTilePropertiesQCOM; + PFN_vkConvertCooperativeVectorMatrixNV ConvertCooperativeVectorMatrixNV; + PFN_vkCmdConvertCooperativeVectorMatrixNV CmdConvertCooperativeVectorMatrixNV; PFN_vkSetLatencySleepModeNV SetLatencySleepModeNV; PFN_vkLatencySleepNV LatencySleepNV; PFN_vkSetLatencyMarkerNV SetLatencyMarkerNV; @@ -771,6 +774,10 @@ typedef struct VkLayerDispatchTable_ { #ifdef VK_USE_PLATFORM_SCREEN_QNX PFN_vkGetScreenBufferPropertiesQNX GetScreenBufferPropertiesQNX; #endif // VK_USE_PLATFORM_SCREEN_QNX + PFN_vkGetClusterAccelerationStructureBuildSizesNV GetClusterAccelerationStructureBuildSizesNV; + PFN_vkCmdBuildClusterAccelerationStructureIndirectNV CmdBuildClusterAccelerationStructureIndirectNV; + PFN_vkGetPartitionedAccelerationStructuresBuildSizesNV GetPartitionedAccelerationStructuresBuildSizesNV; + PFN_vkCmdBuildPartitionedAccelerationStructuresNV CmdBuildPartitionedAccelerationStructuresNV; PFN_vkGetGeneratedCommandsMemoryRequirementsEXT GetGeneratedCommandsMemoryRequirementsEXT; PFN_vkCmdPreprocessGeneratedCommandsEXT CmdPreprocessGeneratedCommandsEXT; PFN_vkCmdExecuteGeneratedCommandsEXT CmdExecuteGeneratedCommandsEXT; diff --git a/layers/vulkan/generated/vk_validation_error_messages.h b/layers/vulkan/generated/vk_validation_error_messages.h index d475724f1be..b096d19cf23 100644 --- a/layers/vulkan/generated/vk_validation_error_messages.h +++ b/layers/vulkan/generated/vk_validation_error_messages.h @@ -1,6 +1,6 @@ // *** THIS FILE IS GENERATED - DO NOT EDIT *** // See generate_spec_error_message.py for modifications -// Based on Vulkan specification version: 1.4.306 +// Based on Vulkan specification version: 1.4.307 /*************************************************************************** * @@ -75,6 +75,9 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-ClipDistancePerViewNV-ClipDistancePerViewNV-04195", "The variable decorated with ClipDistancePerViewNV must be declared as a two-dimensional array of 32-bit floating-point values", "chapters/interfaces.html"}, {"VUID-ClusterIDHUAWEI-ClusterIDHUAWEI-07797", "The ClusterIDHUAWEI decoration must be used only within the ClusterCullingHUAWEI Execution Model", "chapters/interfaces.html"}, {"VUID-ClusterIDHUAWEI-ClusterIDHUAWEI-07798", "The variable decorated with ClusterIDHUAWEI must be declared as a scalar 32-bit integer value", "chapters/interfaces.html"}, + {"VUID-ClusterIDNV-ClusterIDNV-10531", "The ClusterIDNV decoration must be used only within the AnyHitKHR, or ClosestHitKHR Execution Model", "chapters/interfaces.html"}, + {"VUID-ClusterIDNV-ClusterIDNV-10532", "The variable decorated with ClusterIDNV must be declared using the Input Storage Class", "chapters/interfaces.html"}, + {"VUID-ClusterIDNV-ClusterIDNV-10533", "The variable decorated with ClusterIDNV must be declared as a scalar 32-bit integer value", "chapters/interfaces.html"}, {"VUID-ClusterShadingRateHUAWEI-ClusterShadingRateHUAWEI-09448", "The ClusterShadingRateHUAWEI decoration must be used only within the ClusterCullingHUAWEI Execution Model", "chapters/interfaces.html"}, {"VUID-ClusterShadingRateHUAWEI-ClusterShadingRateHUAWEI-09449", "The variable decorated with ClusterShadingRateHUAWEI must be declared as a scalar 32-bit integer value", "chapters/interfaces.html"}, {"VUID-CoalescedInputCountAMDX-CoalescedInputCountAMDX-09172", "The variable decorated with CoalescedInputCountAMDX must be declared using the Input Storage Class", "chapters/interfaces.html"}, @@ -149,9 +152,27 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-HelperInvocation-HelperInvocation-04239", "The HelperInvocation decoration must be used only within the Fragment Execution Model", "chapters/interfaces.html"}, {"VUID-HelperInvocation-HelperInvocation-04240", "The variable decorated with HelperInvocation must be declared using the Input Storage Class", "chapters/interfaces.html"}, {"VUID-HelperInvocation-HelperInvocation-04241", "The variable decorated with HelperInvocation must be declared as a boolean value", "chapters/interfaces.html"}, + {"VUID-HitIsLSSNV-HitIsLSSNV-10516", "The HitIsLSSNV decoration must be used only within the AnyHitKHR, or ClosestHitKHR Execution Model", "chapters/interfaces.html"}, + {"VUID-HitIsLSSNV-HitIsLSSNV-10517", "The variable decorated with HitIsLSSNV must be declared using the Input Storage Class", "chapters/interfaces.html"}, + {"VUID-HitIsLSSNV-HitIsLSSNV-10518", "The variable decorated with HitIsLSSNV must be declared as a boolean value", "chapters/interfaces.html"}, + {"VUID-HitIsSphereNV-HitIsSphereNV-10513", "The HitIsSphereNV decoration must be used only within the AnyHitKHR, or ClosestHitKHR Execution Model", "chapters/interfaces.html"}, + {"VUID-HitIsSphereNV-HitIsSphereNV-10514", "The variable decorated with HitIsSphereNV must be declared using the Input Storage Class", "chapters/interfaces.html"}, + {"VUID-HitIsSphereNV-HitIsSphereNV-10515", "The variable decorated with HitIsSphereNV must be declared as a boolean value", "chapters/interfaces.html"}, {"VUID-HitKindKHR-HitKindKHR-04242", "The HitKindKHR decoration must be used only within the AnyHitKHR or ClosestHitKHR Execution Model", "chapters/interfaces.html"}, {"VUID-HitKindKHR-HitKindKHR-04243", "The variable decorated with HitKindKHR must be declared using the Input Storage Class", "chapters/interfaces.html"}, {"VUID-HitKindKHR-HitKindKHR-04244", "The variable decorated with HitKindKHR must be declared as a scalar 32-bit integer value", "chapters/interfaces.html"}, + {"VUID-HitLSSPositionsNV-HitLSSPositionsNV-10525", "The HitLSSPositionsNV decoration must be used only within the AnyHitKHR, or ClosestHitKHR Execution Model", "chapters/interfaces.html"}, + {"VUID-HitLSSPositionsNV-HitLSSPositionsNV-10526", "The variable decorated with HitLSSPositionsNV must be declared using the Input Storage Class", "chapters/interfaces.html"}, + {"VUID-HitLSSPositionsNV-HitLSSPositionsNV-10527", "The variable decorated with HitLSSPositionsNV must be declared as an array of size two, containing three-component vector of 32-bit floating-point values", "chapters/interfaces.html"}, + {"VUID-HitLSSRadiiNV-HitLSSRadiiNV-10528", "The HitLSSRadiiNV decoration must be used only within the AnyHitKHR, or ClosestHitKHR Execution Model", "chapters/interfaces.html"}, + {"VUID-HitLSSRadiiNV-HitLSSRadiiNV-10529", "The variable decorated with HitLSSRadiiNV must be declared using the Input Storage Class", "chapters/interfaces.html"}, + {"VUID-HitLSSRadiiNV-HitLSSRadiiNV-10530", "The variable decorated with HitLSSRadiiNV must be declared as an array of size two, containing 32-bit floating-point values", "chapters/interfaces.html"}, + {"VUID-HitSpherePositionNV-HitSpherePositionNV-10519", "The HitSpherePositionNV decoration must be used only within the AnyHitKHR, or ClosestHitKHR Execution Model", "chapters/interfaces.html"}, + {"VUID-HitSpherePositionNV-HitSpherePositionNV-10520", "The variable decorated with HitSpherePositionNV must be declared using the Input Storage Class", "chapters/interfaces.html"}, + {"VUID-HitSpherePositionNV-HitSpherePositionNV-10521", "The variable decorated with HitSpherePositionNV must be declared as a three-component vector of 32-bit floating-point values", "chapters/interfaces.html"}, + {"VUID-HitSphereRadiusNV-HitSphereRadiusNV-10522", "The HitSphereRadiusNV decoration must be used only within the AnyHitKHR, or ClosestHitKHR Execution Model", "chapters/interfaces.html"}, + {"VUID-HitSphereRadiusNV-HitSphereRadiusNV-10523", "The variable decorated with HitSphereRadiusNV must be declared using the Input Storage Class", "chapters/interfaces.html"}, + {"VUID-HitSphereRadiusNV-HitSphereRadiusNV-10524", "The variable decorated with HitSphereRadiusNV must be declared as a scalar 32-bit floating-point value", "chapters/interfaces.html"}, {"VUID-HitTNV-HitTNV-04245", "The HitTNV decoration must be used only within the AnyHitNV or ClosestHitNV Execution Model", "chapters/interfaces.html"}, {"VUID-HitTNV-HitTNV-04246", "The variable decorated with HitTNV must be declared using the Input Storage Class", "chapters/interfaces.html"}, {"VUID-HitTNV-HitTNV-04247", "The variable decorated with HitTNV must be declared as a scalar 32-bit floating-point value", "chapters/interfaces.html"}, @@ -342,6 +363,16 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-RuntimeSpirv-OpCooperativeMatrixLoadKHR-08986", "For OpCooperativeMatrixLoadKHR and OpCooperativeMatrixStoreKHR instructions, the Pointer and Stride operands must be aligned to at least the lesser of 16 bytes or the natural alignment of a row or column (depending on ColumnMajor) of the matrix (where the natural alignment is the number of columns/rows multiplied by the component size)", "appendices/spirvenv.html"}, {"VUID-RuntimeSpirv-OpCooperativeMatrixLoadNV-06324", "For OpCooperativeMatrixLoadNV and OpCooperativeMatrixStoreNV instructions, the Pointer and Stride operands must be aligned to at least the lesser of 16 bytes or the natural alignment of a row or column (depending on ColumnMajor) of the matrix (where the natural alignment is the number of columns/rows multiplied by the component size)", "appendices/spirvenv.html"}, {"VUID-RuntimeSpirv-OpCooperativeMatrixMulAddKHR-10060", "For OpCooperativeMatrixMulAddKHR, the operands must match a supported VkCooperativeMatrixPropertiesKHR", "appendices/spirvenv.html"}, + {"VUID-RuntimeSpirv-OpCooperativeVectorLoadNV-10099", "For OpCooperativeVectorLoadNV and OpCooperativeVectorStoreNV instructions, the Pointer and Offset must be aligned to 16 bytes", "appendices/spirvenv.html"}, + {"VUID-RuntimeSpirv-OpCooperativeVectorMatrixMulAddNV-10098", "For OpCooperativeVectorMatrixMulAddNV instructions, the Bias and BiasOffset must be aligned to 16 bytes", "appendices/spirvenv.html"}, + {"VUID-RuntimeSpirv-OpCooperativeVectorMatrixMulNV-10089", "For OpCooperativeVectorMatrixMulNV and OpCooperativeVectorMatrixMulAddNV, the following must be satisfied by the same entry in the VkCooperativeVectorPropertiesNV array returned by vkGetPhysicalDeviceCooperativeVectorPropertiesNV: The component type of Input must match VkCooperativeVectorPropertiesNV::inputType The InputInterpretation must match VkCooperativeVectorPropertiesNV::inputInterpretation The MatrixInterpretation must match VkCooperativeVectorPropertiesNV::matrixInterpretation For OpCooperativeVectorMatrixMulAddNV, the BiasInterpretation must match VkCooperativeVectorPropertiesNV::biasInterpretation The Result Type must match VkCooperativeVectorPropertiesNV::resultType If Transpose is true, VkCooperativeVectorPropertiesNV::transpose must be VK_TRUE", "appendices/spirvenv.html"}, + {"VUID-RuntimeSpirv-OpCooperativeVectorMatrixMulNV-10090", "For OpCooperativeVectorMatrixMulNV and OpCooperativeVectorMatrixMulAddNV, if MatrixInterpretation is either VK_COMPONENT_TYPE_FLOAT_E4M3_NV or VK_COMPONENT_TYPE_FLOAT_E5M2_NV then MemoryLayout must be either VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_INFERENCING_OPTIMAL_NV or VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_TRAINING_OPTIMAL_NV", "appendices/spirvenv.html"}, + {"VUID-RuntimeSpirv-OpCooperativeVectorMatrixMulNV-10096", "For OpCooperativeVectorMatrixMulNV and OpCooperativeVectorMatrixMulAddNV instructions using non-optimal layouts, the Stride operand must be aligned to 16 bytes", "appendices/spirvenv.html"}, + {"VUID-RuntimeSpirv-OpCooperativeVectorMatrixMulNV-10097", "For OpCooperativeVectorMatrixMulNV and OpCooperativeVectorMatrixMulAddNV instructions, the Matrix and MatrixOffset must be aligned to 64 bytes", "appendices/spirvenv.html"}, + {"VUID-RuntimeSpirv-OpCooperativeVectorOuterProductAccumulateNV-10093", "For OpCooperativeVectorOuterProductAccumulateNV: MatrixInterpretation must be VK_COMPONENT_TYPE_FLOAT16_KHR or VK_COMPONENT_TYPE_FLOAT32_KHR If MatrixInterpretation is VK_COMPONENT_TYPE_FLOAT16_KHR, cooperativeVectorTrainingFloat16Accumulation must be supported If MatrixInterpretation is VK_COMPONENT_TYPE_FLOAT32_KHR, cooperativeVectorTrainingFloat32Accumulation must be supported The component types of A and B must be 16-bit floating-point The matrix layout must be training-optimal The pointer's storage class must be StorageBuffer or PhysicalStorageBuffer", "appendices/spirvenv.html"}, + {"VUID-RuntimeSpirv-OpCooperativeVectorOuterProductAccumulateNV-10101", "For OpCooperativeVectorOuterProductAccumulateNV instructions, the Pointer and Offset must be aligned to 64 bytes", "appendices/spirvenv.html"}, + {"VUID-RuntimeSpirv-OpCooperativeVectorReduceSumAccumulateNV-10092", "For OpCooperativeVectorReduceSumAccumulateNV: The component type of V must be either 16- or 32-bit floating-point If the component type of V is 16-bit floating-point, cooperativeVectorTrainingFloat16Accumulation must be supported If the component type of V is 32-bit floating-point, cooperativeVectorTrainingFloat32Accumulation must be supported The pointer's storage class must be StorageBuffer or PhysicalStorageBuffer", "appendices/spirvenv.html"}, + {"VUID-RuntimeSpirv-OpCooperativeVectorReduceSumAccumulateNV-10100", "For OpCooperativeVectorReduceSumAccumulateNV instructions, the Pointer and Offset must be aligned to 16 bytes", "appendices/spirvenv.html"}, {"VUID-RuntimeSpirv-OpEmitStreamVertex-06310", "The Stream value to OpEmitStreamVertex and OpEndStreamPrimitive must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams", "appendices/spirvenv.html"}, {"VUID-RuntimeSpirv-OpEntryPoint-07754", "Any user-defined variables between the OpEntryPoint of two shader stages must have the same type and width for each Component", "appendices/spirvenv.html"}, {"VUID-RuntimeSpirv-OpEntryPoint-08727", "Each OpEntryPoint must not have more than one variable decorated with InputAttachmentIndex per image aspect of the attachment image bound to it, either explicitly or implicitly as described by input attachment interface", "appendices/spirvenv.html"}, @@ -415,6 +446,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-RuntimeSpirv-OpTypeCooperativeMatrixMulAddNV-10059", "For OpTypeCooperativeMatrixMulAddNV, the operands must match a supported VkCooperativeMatrixPropertiesNV, such that: The type of A must have Rows match VkCooperativeMatrixPropertiesNV::MSize, Columns match VkCooperativeMatrixPropertiesNV::KSize, and ComponentType match VkCooperativeMatrixPropertiesNV::AType. The type of B must have Rows match VkCooperativeMatrixPropertiesNV::KSize, Columns match VkCooperativeMatrixPropertiesNV::NSize, and ComponentType match VkCooperativeMatrixPropertiesNV::BType. The type of C must have Rows match VkCooperativeMatrixPropertiesNV::MSize, Columns match VkCooperativeMatrixPropertiesNV::NSize, and ComponentType match VkCooperativeMatrixPropertiesNV::CType. The type of Result must have Rows match VkCooperativeMatrixPropertiesNV::MSize, Columns match VkCooperativeMatrixPropertiesNV::NSize, and ComponentType match VkCooperativeMatrixPropertiesNV::DType. The scope of all cooperative matrix operands must be VkScopeNV::VK_SCOPE_SUBGROUP_NV. If ComponentType of A, B, C, or Result is a signed integral type, the Signedness operand of the OpTypeInt must be 1. If ComponentType of A, B, C, or Result is an unsigned integral type, the Signedness operand of the OpTypeInt must be 0", "appendices/spirvenv.html"}, {"VUID-RuntimeSpirv-OpTypeCooperativeMatrixNV-06316", "For OpTypeCooperativeMatrixNV, the component type, scope, number of rows, and number of columns must match one of the matrices in any of the supported VkCooperativeMatrixPropertiesNV", "appendices/spirvenv.html"}, {"VUID-RuntimeSpirv-OpTypeCooperativeMatrixNV-06322", "OpTypeCooperativeMatrixNV and OpCooperativeMatrix* instructions must not be used in shader stages not included in VkPhysicalDeviceCooperativeMatrixPropertiesNV::cooperativeMatrixSupportedStages", "appendices/spirvenv.html"}, + {"VUID-RuntimeSpirv-OpTypeCooperativeVector-10095", "OpTypeCooperativeVector instructions must have Component Type that is any supported type reported by vkGetPhysicalDeviceCooperativeVectorPropertiesNV", "appendices/spirvenv.html"}, {"VUID-RuntimeSpirv-OpTypeImage-09644", "Any variable declared as an OpTypeArray where the Element Type is an OpTypeImage with a \"Dim\" operand of SubpassData must be decorated with InputAttachmentIndex", "appendices/spirvenv.html"}, {"VUID-RuntimeSpirv-OpVariable-08746", "Any OpVariable, Block-decorated OpTypeStruct, or Block-decorated OpTypeStruct members shared between the OpEntryPoint of two shader stages must have matching decorations as defined in interface matching", "appendices/spirvenv.html"}, {"VUID-RuntimeSpirv-PhysicalStorageBuffer64-06314", "If the PhysicalStorageBuffer64 addressing model is enabled any load or store through a physical pointer type must be aligned to a multiple of the size of the largest scalar type in the pointed-to type", "appendices/spirvenv.html"}, @@ -448,6 +480,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-RuntimeSpirv-cooperativeMatrixFlexibleDimensionsMaxDimension-10167", "All OpTypeCooperativeMatrixKHR dimensions must be less than or equal to cooperativeMatrixFlexibleDimensionsMaxDimension", "appendices/spirvenv.html"}, {"VUID-RuntimeSpirv-cooperativeMatrixSupportedStages-08985", "OpTypeCooperativeMatrixKHR and OpCooperativeMatrix* instructions must not be used in shader stages not included in VkPhysicalDeviceCooperativeMatrixPropertiesKHR::cooperativeMatrixSupportedStages", "appendices/spirvenv.html"}, {"VUID-RuntimeSpirv-cooperativeMatrixWorkgroupScope-10164", "If the cooperativeMatrixWorkgroupScope feature is not enabled, the scope of all OpTypeCooperativeMatrixKHR must not be VkScopeKHR::VK_SCOPE_WORKGROUP_KHR", "appendices/spirvenv.html"}, + {"VUID-RuntimeSpirv-cooperativeVectorSupportedStages-10091", "OpTypeCooperativeVectorNV and OpCooperativeVector* instructions must not be used in shader stages not included in VkPhysicalDeviceCooperativeVectorPropertiesNV::cooperativeVectorSupportedStages", "appendices/spirvenv.html"}, {"VUID-RuntimeSpirv-denormBehaviorIndependence-06289", "If denormBehaviorIndependence is VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY, then the entry point must use the same denormals Execution Mode for both 16-bit and 64-bit floating-point types", "appendices/spirvenv.html"}, {"VUID-RuntimeSpirv-denormBehaviorIndependence-06290", "If denormBehaviorIndependence is VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE, then the entry point must use the same denormals Execution Mode for all floating-point types", "appendices/spirvenv.html"}, {"VUID-RuntimeSpirv-flags-08761", "For OpRayQueryGetIntersectionTriangleVertexPositionsKHR instructions, Acceleration Structure must have been built with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR in flags", "appendices/spirvenv.html"}, @@ -455,6 +488,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-RuntimeSpirv-maintenance5-09190", "If the maintenance5 feature is enabled and a PointSize decorated variable is written to, all execution paths must write to a PointSize decorated variable", "appendices/spirvenv.html"}, {"VUID-RuntimeSpirv-maxBlockMatchRegion-09225", "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM operation is used, then Block Size less than or equal to maxBlockMatchRegion", "appendices/spirvenv.html"}, {"VUID-RuntimeSpirv-maxComputeSharedMemorySize-10168", "If the module uses OpTypeCooperativeMatrixKHR with Scope equal to Workgroup, the sum of size in bytes for variables and padding in the Workgroup Storage Class in the GLCompute Execution Model must be less than or equal to maxComputeSharedMemorySize minus cooperativeMatrixWorkgroupScopeReservedSharedMemory", "appendices/spirvenv.html"}, + {"VUID-RuntimeSpirv-maxCooperativeVectorComponents-10094", "OpTypeCooperativeVector instructions must have Component Count less than or equal to maxCooperativeVectorComponents", "appendices/spirvenv.html"}, {"VUID-RuntimeSpirv-maxExecutionGraphShaderOutputNodes-09197", "Shaders must not include more than maxExecutionGraphShaderOutputNodes instances of OpInitializeNodePayloadsAMDX", "appendices/spirvenv.html"}, {"VUID-RuntimeSpirv-maxExecutionGraphShaderPayloadCount-09196", "Shaders must not statically initialize more than maxExecutionGraphShaderPayloadCount variables in the NodeOutputPayloadAMDX storage class", "appendices/spirvenv.html"}, {"VUID-RuntimeSpirv-maxExecutionGraphShaderPayloadSize-09193", "Variables declared in the NodePayloadAMDX storage class must not be larger than the maxExecutionGraphShaderPayloadSize limit", "appendices/spirvenv.html"}, @@ -782,6 +816,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkAccelerationStructureBuildRangeInfoKHR-primitiveOffset-03659", "For geometries of type VK_GEOMETRY_TYPE_AABBS_KHR, the offset primitiveOffset from VkAccelerationStructureGeometryAabbsDataKHR::data must be a multiple of 8", "chapters/accelstructures.html"}, {"VUID-VkAccelerationStructureBuildRangeInfoKHR-primitiveOffset-03660", "For geometries of type VK_GEOMETRY_TYPE_INSTANCES_KHR, the offset primitiveOffset from VkAccelerationStructureGeometryInstancesDataKHR::data must be a multiple of 16", "chapters/accelstructures.html"}, {"VUID-VkAccelerationStructureBuildRangeInfoKHR-transformOffset-03658", "For geometries of type VK_GEOMETRY_TYPE_TRIANGLES_KHR, the offset transformOffset from VkAccelerationStructureGeometryTrianglesDataKHR::transformData must be a multiple of 16", "chapters/accelstructures.html"}, + {"VUID-VkAccelerationStructureBuildRangeInfoKHR-vertexData-10418", "The number of vertices consumed from VkAccelerationStructureGeometryTrianglesDataKHR::vertexData must be less than or equal to VkAccelerationStructureGeometryTrianglesDataKHR::maxVertex + 1", "chapters/accelstructures.html"}, {"VUID-VkAccelerationStructureBuildSizesInfoKHR-pNext-pNext", "pNext must be NULL", "chapters/resources.html"}, {"VUID-VkAccelerationStructureBuildSizesInfoKHR-sType-sType", "sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR", "chapters/resources.html"}, {"VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-accelerationStructure-08091", "If accelerationStructure is not VK_NULL_HANDLE then accelerationStructure must have been created with VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT set in VkAccelerationStructureCreateInfoKHR::createFlags", "chapters/descriptorsets.html"}, @@ -834,7 +869,44 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkAccelerationStructureGeometryKHR-pNext-pNext", "pNext must be NULL", "chapters/accelstructures.html"}, {"VUID-VkAccelerationStructureGeometryKHR-sType-sType", "sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR", "chapters/accelstructures.html"}, {"VUID-VkAccelerationStructureGeometryKHR-triangles-parameter", "If geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, the triangles member of geometry must be a valid VkAccelerationStructureGeometryTrianglesDataKHR structure", "chapters/accelstructures.html"}, + {"VUID-VkAccelerationStructureGeometryLinearSweptSpheresDataNV-None-10419", "The linearSweptSpheres feature must be enabled", "chapters/accelstructures.html"}, + {"VUID-VkAccelerationStructureGeometryLinearSweptSpheresDataNV-endCapsMode-parameter", "endCapsMode must be a valid VkRayTracingLssPrimitiveEndCapsModeNV value", "chapters/accelstructures.html"}, + {"VUID-VkAccelerationStructureGeometryLinearSweptSpheresDataNV-indexData-10428", "If indexData is not NULL, indexType must be one of VK_INDEX_TYPE_UINT16 or VK_INDEX_TYPE_UINT32", "chapters/accelstructures.html"}, + {"VUID-VkAccelerationStructureGeometryLinearSweptSpheresDataNV-indexData-parameter", "indexData must be a valid VkDeviceOrHostAddressConstKHR union", "chapters/accelstructures.html"}, + {"VUID-VkAccelerationStructureGeometryLinearSweptSpheresDataNV-indexType-parameter", "indexType must be a valid VkIndexType value", "chapters/accelstructures.html"}, + {"VUID-VkAccelerationStructureGeometryLinearSweptSpheresDataNV-indexingMode-10427", "If indexingMode is VK_RAY_TRACING_LSS_INDEXING_MODE_SUCCESSIVE_NV, indexData must not be NULL", "chapters/accelstructures.html"}, + {"VUID-VkAccelerationStructureGeometryLinearSweptSpheresDataNV-indexingMode-parameter", "indexingMode must be a valid VkRayTracingLssIndexingModeNV value", "chapters/accelstructures.html"}, + {"VUID-VkAccelerationStructureGeometryLinearSweptSpheresDataNV-pNext-pNext", "pNext must be NULL", "chapters/accelstructures.html"}, + {"VUID-VkAccelerationStructureGeometryLinearSweptSpheresDataNV-radiusData-10425", "The memory address in radiusData must not be 0 or `NULL'", "chapters/accelstructures.html"}, + {"VUID-VkAccelerationStructureGeometryLinearSweptSpheresDataNV-radiusData-10426", "All values referenced in radiusData must be greater than or equal to 0", "chapters/accelstructures.html"}, + {"VUID-VkAccelerationStructureGeometryLinearSweptSpheresDataNV-radiusData-parameter", "radiusData must be a valid VkDeviceOrHostAddressConstKHR union", "chapters/accelstructures.html"}, + {"VUID-VkAccelerationStructureGeometryLinearSweptSpheresDataNV-radiusFormat-10424", "The format features of radiusFormat must contain VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_RADIUS_BUFFER_BIT_NV", "chapters/accelstructures.html"}, + {"VUID-VkAccelerationStructureGeometryLinearSweptSpheresDataNV-radiusFormat-parameter", "radiusFormat must be a valid VkFormat value", "chapters/accelstructures.html"}, + {"VUID-VkAccelerationStructureGeometryLinearSweptSpheresDataNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_LINEAR_SWEPT_SPHERES_DATA_NV", "chapters/accelstructures.html"}, + {"VUID-VkAccelerationStructureGeometryLinearSweptSpheresDataNV-vertexData-10420", "The memory address in vertexData must not be 0 or `NULL'", "chapters/accelstructures.html"}, + {"VUID-VkAccelerationStructureGeometryLinearSweptSpheresDataNV-vertexData-parameter", "vertexData must be a valid VkDeviceOrHostAddressConstKHR union", "chapters/accelstructures.html"}, + {"VUID-VkAccelerationStructureGeometryLinearSweptSpheresDataNV-vertexFormat-10423", "The format features of vertexFormat must contain VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR", "chapters/accelstructures.html"}, + {"VUID-VkAccelerationStructureGeometryLinearSweptSpheresDataNV-vertexFormat-parameter", "vertexFormat must be a valid VkFormat value", "chapters/accelstructures.html"}, + {"VUID-VkAccelerationStructureGeometryLinearSweptSpheresDataNV-vertexStride-10421", "vertexStride must be a multiple of: the size of the format specified in vertexFormat if that format is a packed format the component size specified in vertexFormat if that format is not a packed format", "chapters/accelstructures.html"}, + {"VUID-VkAccelerationStructureGeometryLinearSweptSpheresDataNV-vertexStride-10422", "vertexStride and radiusStride must be less than or equal to 232-1", "chapters/accelstructures.html"}, {"VUID-VkAccelerationStructureGeometryMotionTrianglesDataNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV", "chapters/accelstructures.html"}, + {"VUID-VkAccelerationStructureGeometrySpheresDataNV-None-10429", "The spheres feature must be enabled", "chapters/accelstructures.html"}, + {"VUID-VkAccelerationStructureGeometrySpheresDataNV-indexData-10437", "If indexData is not NULL, indexType must be one of VK_INDEX_TYPE_UINT16 or VK_INDEX_TYPE_UINT32", "chapters/accelstructures.html"}, + {"VUID-VkAccelerationStructureGeometrySpheresDataNV-indexData-parameter", "indexData must be a valid VkDeviceOrHostAddressConstKHR union", "chapters/accelstructures.html"}, + {"VUID-VkAccelerationStructureGeometrySpheresDataNV-indexType-parameter", "indexType must be a valid VkIndexType value", "chapters/accelstructures.html"}, + {"VUID-VkAccelerationStructureGeometrySpheresDataNV-pNext-pNext", "pNext must be NULL", "chapters/accelstructures.html"}, + {"VUID-VkAccelerationStructureGeometrySpheresDataNV-radiusData-10433", "The memory address in radiusData must not be 0 or `NULL'", "chapters/accelstructures.html"}, + {"VUID-VkAccelerationStructureGeometrySpheresDataNV-radiusData-10436", "All values referenced in radiusData must be greater than or equal to 0", "chapters/accelstructures.html"}, + {"VUID-VkAccelerationStructureGeometrySpheresDataNV-radiusData-parameter", "radiusData must be a valid VkDeviceOrHostAddressConstKHR union", "chapters/accelstructures.html"}, + {"VUID-VkAccelerationStructureGeometrySpheresDataNV-radiusFormat-10435", "The format features of radiusFormat must contain VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_RADIUS_BUFFER_BIT_NV", "chapters/accelstructures.html"}, + {"VUID-VkAccelerationStructureGeometrySpheresDataNV-radiusFormat-parameter", "radiusFormat must be a valid VkFormat value", "chapters/accelstructures.html"}, + {"VUID-VkAccelerationStructureGeometrySpheresDataNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_SPHERES_DATA_NV", "chapters/accelstructures.html"}, + {"VUID-VkAccelerationStructureGeometrySpheresDataNV-vertexData-10430", "The memory address in vertexData must not be 0 or `NULL'", "chapters/accelstructures.html"}, + {"VUID-VkAccelerationStructureGeometrySpheresDataNV-vertexData-parameter", "vertexData must be a valid VkDeviceOrHostAddressConstKHR union", "chapters/accelstructures.html"}, + {"VUID-VkAccelerationStructureGeometrySpheresDataNV-vertexFormat-10434", "The format features of vertexFormat must contain VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR", "chapters/accelstructures.html"}, + {"VUID-VkAccelerationStructureGeometrySpheresDataNV-vertexFormat-parameter", "vertexFormat must be a valid VkFormat value", "chapters/accelstructures.html"}, + {"VUID-VkAccelerationStructureGeometrySpheresDataNV-vertexStride-10431", "vertexStride must be a multiple of: the size of the format specified in vertexFormat if that format is a packed format the smallest component size specified in vertexFormat if that format is not a packed format", "chapters/accelstructures.html"}, + {"VUID-VkAccelerationStructureGeometrySpheresDataNV-vertexStride-10432", "vertexStride and radiusStride must be less than or equal to 232-1", "chapters/accelstructures.html"}, {"VUID-VkAccelerationStructureGeometryTrianglesDataKHR-indexType-03798", "indexType must be VK_INDEX_TYPE_UINT16, VK_INDEX_TYPE_UINT32, or VK_INDEX_TYPE_NONE_KHR", "chapters/accelstructures.html"}, {"VUID-VkAccelerationStructureGeometryTrianglesDataKHR-indexType-parameter", "indexType must be a valid VkIndexType value", "chapters/accelstructures.html"}, {"VUID-VkAccelerationStructureGeometryTrianglesDataKHR-pNext-pNext", "Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkAccelerationStructureGeometryMotionTrianglesDataNV, VkAccelerationStructureTrianglesDisplacementMicromapNV, or VkAccelerationStructureTrianglesOpacityMicromapEXT", "chapters/accelstructures.html"}, @@ -1240,8 +1312,10 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkBlitImageInfo2-filter-02002", "If filter is VK_FILTER_CUBIC_EXT, then the format features of srcImage must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "chapters/copies.html"}, {"VUID-VkBlitImageInfo2-filter-09204", "If filter is VK_FILTER_CUBIC_EXT and if the selectableCubicWeights feature is not enabled then the cubic weights must be VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM", "chapters/copies.html"}, {"VUID-VkBlitImageInfo2-filter-parameter", "filter must be a valid VkFilter value", "chapters/copies.html"}, - {"VUID-VkBlitImageInfo2-maintenance8-10207", "If the maintenance8 feature is enabled and srcImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.baseArrayLayer must be 0, and srcSubresource.layerCount must be 1", "chapters/copies.html"}, - {"VUID-VkBlitImageInfo2-maintenance8-10208", "If the maintenance8 feature is enabled and dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, dstSubresource.baseArrayLayer must be 0, and dstSubresource.layerCount must be 1", "chapters/copies.html"}, + {"VUID-VkBlitImageInfo2-maintenance8-10207", "If the maintenance8 feature is enabled and srcImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.baseArrayLayer must be 0, and srcSubresource.layerCount and dstSubresource.layerCount must each be 1", "chapters/copies.html"}, + {"VUID-VkBlitImageInfo2-maintenance8-10208", "If the maintenance8 feature is enabled and dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, dstSubresource.baseArrayLayer must be 0, and srcSubresource.layerCount and dstSubresource.layerCount must each be 1", "chapters/copies.html"}, + {"VUID-VkBlitImageInfo2-maintenance8-10579", "If the maintenance8 feature is enabled and srcImage is not of type VK_IMAGE_TYPE_3D, then for each element of pRegions, the absolute difference of the z member of each member of dstOffsets must equal srcSubresource.layerCount", "chapters/copies.html"}, + {"VUID-VkBlitImageInfo2-maintenance8-10580", "If the maintenance8 feature is enabled and dstImage is not of type VK_IMAGE_TYPE_3D, then for each element of pRegions, the absolute difference of the z member of each member of srcOffsets must equal dstSubresource.layerCount", "chapters/copies.html"}, {"VUID-VkBlitImageInfo2-pNext-pNext", "pNext must be NULL or a pointer to a valid instance of VkBlitImageCubicWeightsInfoQCOM", "chapters/copies.html"}, {"VUID-VkBlitImageInfo2-pRegions-00215", "The source region specified by each element of pRegions must be a region that is contained within srcImage", "chapters/copies.html"}, {"VUID-VkBlitImageInfo2-pRegions-00216", "The destination region specified by each element of pRegions must be a region that is contained within dstImage", "chapters/copies.html"}, @@ -1396,8 +1470,8 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkBufferMemoryBarrier2-dstAccessMask-03911", "If dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, {"VUID-VkBufferMemoryBarrier2-dstAccessMask-03912", "If dstAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, {"VUID-VkBufferMemoryBarrier2-dstAccessMask-03913", "If dstAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, - {"VUID-VkBufferMemoryBarrier2-dstAccessMask-03914", "If dstAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, - {"VUID-VkBufferMemoryBarrier2-dstAccessMask-03915", "If dstAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_CLEAR_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, + {"VUID-VkBufferMemoryBarrier2-dstAccessMask-03914", "If dstAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_CONVERT_COOPERATIVE_VECTOR_MATRIX_BIT_NV, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, + {"VUID-VkBufferMemoryBarrier2-dstAccessMask-03915", "If dstAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_CLEAR_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_CONVERT_COOPERATIVE_VECTOR_MATRIX_BIT_NV, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, {"VUID-VkBufferMemoryBarrier2-dstAccessMask-03916", "If dstAccessMask includes VK_ACCESS_2_HOST_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT", "chapters/synchronization.html"}, {"VUID-VkBufferMemoryBarrier2-dstAccessMask-03917", "If dstAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT", "chapters/synchronization.html"}, {"VUID-VkBufferMemoryBarrier2-dstAccessMask-03918", "If dstAccessMask includes VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, @@ -1457,8 +1531,8 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkBufferMemoryBarrier2-srcAccessMask-03911", "If srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, {"VUID-VkBufferMemoryBarrier2-srcAccessMask-03912", "If srcAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, {"VUID-VkBufferMemoryBarrier2-srcAccessMask-03913", "If srcAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, - {"VUID-VkBufferMemoryBarrier2-srcAccessMask-03914", "If srcAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, - {"VUID-VkBufferMemoryBarrier2-srcAccessMask-03915", "If srcAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_CLEAR_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, + {"VUID-VkBufferMemoryBarrier2-srcAccessMask-03914", "If srcAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_CONVERT_COOPERATIVE_VECTOR_MATRIX_BIT_NV, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, + {"VUID-VkBufferMemoryBarrier2-srcAccessMask-03915", "If srcAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_CLEAR_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_CONVERT_COOPERATIVE_VECTOR_MATRIX_BIT_NV, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, {"VUID-VkBufferMemoryBarrier2-srcAccessMask-03916", "If srcAccessMask includes VK_ACCESS_2_HOST_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT", "chapters/synchronization.html"}, {"VUID-VkBufferMemoryBarrier2-srcAccessMask-03917", "If srcAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT", "chapters/synchronization.html"}, {"VUID-VkBufferMemoryBarrier2-srcAccessMask-03918", "If srcAccessMask includes VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, @@ -1529,6 +1603,18 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkBufferViewCreateInfo-range-04059", "If range is equal to VK_WHOLE_SIZE, the number of texel buffer elements given by (floor((size - offset) / (texel block size)) x (texels per block)) where size is the size of buffer, and texel block size and texels per block are as defined in the Compatible Formats table for format, must be less than or equal to VkPhysicalDeviceLimits::maxTexelBufferElements", "chapters/resources.html"}, {"VUID-VkBufferViewCreateInfo-sType-sType", "sType must be VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO", "chapters/resources.html"}, {"VUID-VkBufferViewCreateInfo-sType-unique", "The sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkExportMetalObjectCreateInfoEXT", "chapters/resources.html"}, + {"VUID-VkBuildPartitionedAccelerationStructureIndirectCommandNV-argData-10565", "An instance index must not be referenced by more than one structure in argData", "chapters/accelstructures.html"}, + {"VUID-VkBuildPartitionedAccelerationStructureIndirectCommandNV-opType-parameter", "opType must be a valid VkPartitionedAccelerationStructureOpTypeNV value", "chapters/accelstructures.html"}, + {"VUID-VkBuildPartitionedAccelerationStructureInfoNV-dstAccelerationStructureData-10561", "dstAccelerationStructureData must not be NULL", "chapters/accelstructures.html"}, + {"VUID-VkBuildPartitionedAccelerationStructureInfoNV-dstAccelerationStructureData-10562", "Memory at dstAccelerationStructureData must be equal or larger than the VkAccelerationStructureBuildSizesInfoKHR::accelerationStructureSize value returned from vkGetPartitionedAccelerationStructuresBuildSizesNV with the same build parameters", "chapters/accelstructures.html"}, + {"VUID-VkBuildPartitionedAccelerationStructureInfoNV-input-parameter", "input must be a valid VkPartitionedAccelerationStructureInstancesInputNV structure", "chapters/accelstructures.html"}, + {"VUID-VkBuildPartitionedAccelerationStructureInfoNV-pNext-pNext", "pNext must be NULL", "chapters/accelstructures.html"}, + {"VUID-VkBuildPartitionedAccelerationStructureInfoNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_BUILD_PARTITIONED_ACCELERATION_STRUCTURE_INFO_NV", "chapters/accelstructures.html"}, + {"VUID-VkBuildPartitionedAccelerationStructureInfoNV-scratchData-10558", "scratchData must not be NULL", "chapters/accelstructures.html"}, + {"VUID-VkBuildPartitionedAccelerationStructureInfoNV-scratchData-10559", "Memory at scratchData must be equal or larger than the VkAccelerationStructureBuildSizesInfoKHR::buildScratchSize value returned from vkGetPartitionedAccelerationStructuresBuildSizesNV with the same build parameters", "chapters/accelstructures.html"}, + {"VUID-VkBuildPartitionedAccelerationStructureInfoNV-srcAccelerationStructureData-10560", "If srcAccelerationStructureData is not NULL, it must have previously been built as a PTLAS", "chapters/accelstructures.html"}, + {"VUID-VkBuildPartitionedAccelerationStructureInfoNV-srcInfos-10564", "Each element of srcInfos array must have a unique VkBuildPartitionedAccelerationStructureIndirectCommandNV::opType", "chapters/accelstructures.html"}, + {"VUID-VkBuildPartitionedAccelerationStructureInfoNV-srcInfosCount-10563", "srcInfosCount must be 4-byte aligned", "chapters/accelstructures.html"}, {"VUID-VkCalibratedTimestampInfoKHR-pNext-pNext", "pNext must be NULL", "chapters/synchronization.html"}, {"VUID-VkCalibratedTimestampInfoKHR-sType-sType", "sType must be VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR", "chapters/synchronization.html"}, {"VUID-VkCalibratedTimestampInfoKHR-timeDomain-02354", "timeDomain must be one of the VkTimeDomainKHR values returned by vkGetPhysicalDeviceCalibrateableTimeDomainsKHR", "chapters/synchronization.html"}, @@ -1543,6 +1629,77 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkClearAttachment-aspectMask-parameter", "aspectMask must be a valid combination of VkImageAspectFlagBits values", "chapters/clears.html"}, {"VUID-VkClearAttachment-aspectMask-requiredbitmask", "aspectMask must not be 0", "chapters/clears.html"}, {"VUID-VkClearDepthStencilValue-depth-00022", "Unless the VK_EXT_depth_range_unrestricted extension is enabled depth must be between 0.0 and 1.0, inclusive", "chapters/clears.html"}, + {"VUID-VkClusterAccelerationStructureBuildClustersBottomLevelInfoNV-clusterReferences-10484", "All cluster references in clusterReferences must be unique", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureBuildClustersBottomLevelInfoNV-clusterReferences-10485", "clusterReferences must have at least clusterReferencesCount values", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureBuildClustersBottomLevelInfoNV-clusterReferencesStride-10486", "clusterReferencesStride must be greater than or equal to 8", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureBuildTriangleClusterInfoNV-baseGeometryIndex-10496", "The maximum geometry index after using the values in baseGeometryIndex and geometryIndexBuffer must be less than VkPhysicalDeviceClusterAccelerationStructurePropertiesNV::maxClusterGeometryIndex", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureBuildTriangleClusterInfoNV-clusterFlags-parameter", "clusterFlags must be a valid combination of VkClusterAccelerationStructureClusterFlagBitsNV values", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureBuildTriangleClusterInfoNV-clusterID-10488", "clusterID must not be 0xFFFFFFFF", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureBuildTriangleClusterInfoNV-indexBufferStride-10494", "indexBufferStride must be 0 or a multiple of indexType", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureBuildTriangleClusterInfoNV-indexType-10491", "indexType must only have a single bit set", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureBuildTriangleClusterInfoNV-opacityMicromapIndexType-10492", "opacityMicromapIndexType must only have a single bit set", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureBuildTriangleClusterInfoNV-positionTruncateBitCount-10493", "positionTruncateBitCount must be greater than or equal to VkClusterAccelerationStructureTriangleClusterInputNV::minPositionTruncateBitCount and less than or equal to 32", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureBuildTriangleClusterInfoNV-triangleCount-10489", "triangleCount must be less than or equal to VkPhysicalDeviceClusterAccelerationStructurePropertiesNV::maxTrianglesPerCluster", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureBuildTriangleClusterInfoNV-vertexBufferStride-10495", "vertexBufferStride must be 0 or a multiple of value specified in VkClusterAccelerationStructureTriangleClusterInputNV::vertexFormat", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureBuildTriangleClusterInfoNV-vertexCount-10490", "vertexCount must be less than or equal to VkPhysicalDeviceClusterAccelerationStructurePropertiesNV::maxVerticesPerCluster", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV-baseGeometryIndex-10506", "The maximum geometry index after using the values in baseGeometryIndex and geometryIndexBuffer must be less than VkPhysicalDeviceClusterAccelerationStructurePropertiesNV::maxClusterGeometryIndex", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV-clusterFlags-parameter", "clusterFlags must be a valid combination of VkClusterAccelerationStructureClusterFlagBitsNV values", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV-clusterID-10497", "clusterID must not be 0xFFFFFFFF", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV-indexBufferStride-10503", "indexBufferStride must be 0 or a multiple of indexType", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV-indexType-10500", "indexType must only have a single bit set", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV-instantiationBoundingBoxLimit-10505", "instantiationBoundingBoxLimit must be aligned to VkPhysicalDeviceClusterAccelerationStructurePropertiesNV::clusterTemplateBoundsByteAlignment.", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV-opacityMicromapIndexType-10501", "opacityMicromapIndexType must only have a single bit set", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV-positionTruncateBitCount-10502", "positionTruncateBitCount must be greater than or equal to VkClusterAccelerationStructureTriangleClusterInputNV::minPositionTruncateBitCount and less than or equal to 32", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV-triangleCount-10498", "triangleCount must be less than or equal to VkPhysicalDeviceClusterAccelerationStructurePropertiesNV::maxTrianglesPerCluster", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV-vertexBufferStride-10504", "vertexBufferStride must be 0 or a multiple of value specified in VkClusterAccelerationStructureTriangleClusterInputNV::vertexFormat", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV-vertexCount-10499", "vertexCount must be less than or equal to VkPhysicalDeviceClusterAccelerationStructurePropertiesNV::maxVerticesPerCluster", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureClustersBottomLevelInputNV-pNext-pNext", "pNext must be NULL", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureClustersBottomLevelInputNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_CLUSTERS_BOTTOM_LEVEL_INPUT_NV", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureCommandsInfoNV-addressResolutionFlags-parameter", "addressResolutionFlags must be a valid combination of VkClusterAccelerationStructureAddressResolutionFlagBitsNV values", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureCommandsInfoNV-dstAddressesArray-10474", "The stride in dstAddressesArray must be greater than or equal to 8", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureCommandsInfoNV-dstSizesArray-10475", "The stride in dstSizesArray must be greater than or equal to 4", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureCommandsInfoNV-input-10469", "If input::opType is VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_MOVE_OBJECTS_NV, the total memory moved must not be larger than the size provided in VkClusterAccelerationStructureMoveObjectsInputNV::maxMovedBytes", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureCommandsInfoNV-input-10477", "If input::opType is VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_TRIANGLE_CLUSTER_NV, then depending on the VkClusterAccelerationStructureInputInfoNV::opMode, dstImplicitData or addresses specified in dstAddressesArray must be aligned to VkPhysicalDeviceClusterAccelerationStructurePropertiesNV::clusterByteAlignment", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureCommandsInfoNV-input-10478", "If input::opType is VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_TRIANGLE_CLUSTER_TEMPLATE_NV, then depending on the VkClusterAccelerationStructureInputInfoNV::opMode, dstImplicitData or addresses specified in dstAddressesArray must be aligned to VkPhysicalDeviceClusterAccelerationStructurePropertiesNV::clusterTemplateByteAlignment", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureCommandsInfoNV-input-10479", "If input::opType is VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_INSTANTIATE_TRIANGLE_CLUSTER_NV, then depending on the VkClusterAccelerationStructureInputInfoNV::opMode, dstImplicitData or addresses specified in dstAddressesArray must be aligned to VkPhysicalDeviceClusterAccelerationStructurePropertiesNV::clusterByteAlignment", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureCommandsInfoNV-input-10482", "If input::opType is VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_CLUSTERS_BOTTOM_LEVEL_NV, the total and per argument number of cluster acceleration structures referenced in srcInfosArray must be equal or less than the maximum values with which memory requirements were queried in vkGetClusterAccelerationStructureBuildSizesNV with VkClusterAccelerationStructureOpInputNV::pClustersBottomLevel", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureCommandsInfoNV-input-parameter", "input must be a valid VkClusterAccelerationStructureInputInfoNV structure", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureCommandsInfoNV-opMode-10466", "If VkClusterAccelerationStructureInputInfoNV::opMode is VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_IMPLICIT_DESTINATIONS_NV, dstImplicitData must be a valid address", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureCommandsInfoNV-opMode-10467", "If VkClusterAccelerationStructureInputInfoNV::opMode is VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_IMPLICIT_DESTINATIONS_NV and input::opType is not VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_MOVE_OBJECTS_NV, the memory in dstImplicitData must be equal to or larger than the VkAccelerationStructureBuildSizesInfoKHR::accelerationStructureSize value returned from vkGetClusterAccelerationStructureBuildSizesNV with same input parameters", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureCommandsInfoNV-opMode-10468", "If VkClusterAccelerationStructureInputInfoNV::opMode is VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_IMPLICIT_DESTINATIONS_NV and input::opType is VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_MOVE_OBJECTS_NV, the memory in dstImplicitData must be equal to or larger than the sum of all the built acceleration structures that are being moved", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureCommandsInfoNV-opMode-10470", "If VkClusterAccelerationStructureInputInfoNV::opMode is VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_COMPUTE_SIZES_NV, dstSizesArray must be a valid address", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureCommandsInfoNV-opMode-10471", "If VkClusterAccelerationStructureInputInfoNV::opMode is VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_EXPLICIT_DESTINATIONS_NV, the address in dstAddressesArray must be a valid address with sizes of individual buffers large enough to accommodate built or moved clusters", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureCommandsInfoNV-opMode-10472", "If VkClusterAccelerationStructureInputInfoNV::opMode is VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_EXPLICIT_DESTINATIONS_NV, the buffers in dstAddressesArray must not overlap", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureCommandsInfoNV-opMode-10473", "If VkClusterAccelerationStructureInputInfoNV::opMode is VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_EXPLICIT_DESTINATIONS_NV, the addresses in dstAddressesArray must be aligned based on the cluster acceleration structure type and its alignment properties as described in VkPhysicalDeviceClusterAccelerationStructurePropertiesNV", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureCommandsInfoNV-pNext-pNext", "pNext must be NULL", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureCommandsInfoNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_COMMANDS_INFO_NV", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureCommandsInfoNV-scratchData-10480", "scratchData must be aligned to VkPhysicalDeviceClusterAccelerationStructurePropertiesNV::clusterScratchByteAlignment", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureCommandsInfoNV-srcInfosArray-10476", "The stride in srcInfosArray must be greater than the type of structure the address is describing", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureCommandsInfoNV-srcInfosCount-10481", "srcInfosCount must be 4-byte aligned", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV-reserved-10487", "reserved must be 0", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureInputInfoNV-flags-parameter", "flags must be a valid combination of VkBuildAccelerationStructureFlagBitsKHR values", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureInputInfoNV-opMode-parameter", "opMode must be a valid VkClusterAccelerationStructureOpModeNV value", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureInputInfoNV-opType-parameter", "opType must be a valid VkClusterAccelerationStructureOpTypeNV value", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureInputInfoNV-pClustersBottomLevel-parameter", "If opType is VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_CLUSTERS_BOTTOM_LEVEL_NV, the pClustersBottomLevel member of opInput must be a valid pointer to a VkClusterAccelerationStructureClustersBottomLevelInputNV structure", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureInputInfoNV-pMoveObjects-parameter", "If opType is VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_MOVE_OBJECTS_NV, the pMoveObjects member of opInput must be a valid pointer to a VkClusterAccelerationStructureMoveObjectsInputNV structure", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureInputInfoNV-pNext-pNext", "pNext must be NULL", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureInputInfoNV-pTriangleClusters-parameter", "If opType is VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_TRIANGLE_CLUSTER_NV,VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_TRIANGLE_CLUSTER_TEMPLATE_NV,VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_INSTANTIATE_TRIANGLE_CLUSTER_NV, the pTriangleClusters member of opInput must be a valid pointer to a VkClusterAccelerationStructureTriangleClusterInputNV structure", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureInputInfoNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_INPUT_INFO_NV", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureInstantiateClusterInfoNV-geometryIndexOffset-10510", "The maximum geometry index after using the value in geometryIndexOffset must be less than VkPhysicalDeviceClusterAccelerationStructurePropertiesNV::maxClusterGeometryIndex", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureInstantiateClusterInfoNV-reserved-10509", "reserved must be 0", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureInstantiateClusterInfoNV-vertexBuffer-10507", "vertexBuffer must not be NULL if the template was built without vertex data", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureInstantiateClusterInfoNV-vertexBuffer-10508", "The format in vertexBuffer must match the original format specified in VkClusterAccelerationStructureTriangleClusterInputNV", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureMoveObjectsInfoNV-srcAccelerationStructure-10483", "srcAccelerationStructure must be a type of cluster acceleration structure", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureMoveObjectsInputNV-pNext-pNext", "pNext must be NULL", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureMoveObjectsInputNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_MOVE_OBJECTS_INPUT_NV", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureMoveObjectsInputNV-type-parameter", "type must be a valid VkClusterAccelerationStructureTypeNV value", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureTriangleClusterInputNV-maxClusterTriangleCount-10440", "maxClusterTriangleCount must be less than or equal to VkPhysicalDeviceClusterAccelerationStructurePropertiesNV::maxTrianglesPerCluster", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureTriangleClusterInputNV-maxClusterVertexCount-10441", "maxClusterVertexCount must be less than or equal to VkPhysicalDeviceClusterAccelerationStructurePropertiesNV::maxVerticesPerCluster", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureTriangleClusterInputNV-minPositionTruncateBitCount-10442", "minPositionTruncateBitCount must be less than or equal to 32", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureTriangleClusterInputNV-pNext-pNext", "pNext must be NULL", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureTriangleClusterInputNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_TRIANGLE_CLUSTER_INPUT_NV", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureTriangleClusterInputNV-vertexFormat-10439", "The format features of vertexFormat must contain VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR", "chapters/accelstructures.html"}, + {"VUID-VkClusterAccelerationStructureTriangleClusterInputNV-vertexFormat-parameter", "vertexFormat must be a valid VkFormat value", "chapters/accelstructures.html"}, {"VUID-VkCoarseSampleLocationNV-pixelX-02078", "pixelX must be less than the width (in pixels) of the fragment", "chapters/primsrast.html"}, {"VUID-VkCoarseSampleLocationNV-pixelY-02079", "pixelY must be less than the height (in pixels) of the fragment", "chapters/primsrast.html"}, {"VUID-VkCoarseSampleLocationNV-sample-02080", "sample must be less than the number of coverage samples in each pixel belonging to the fragment", "chapters/primsrast.html"}, @@ -1692,12 +1849,34 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkConditionalRenderingBeginInfoEXT-offset-01984", "offset must be a multiple of 4", "chapters/drawing.html"}, {"VUID-VkConditionalRenderingBeginInfoEXT-pNext-pNext", "pNext must be NULL", "chapters/drawing.html"}, {"VUID-VkConditionalRenderingBeginInfoEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT", "chapters/drawing.html"}, + {"VUID-VkConvertCooperativeVectorMatrixInfoNV-dstComponentType-10080", "If dstComponentType is not a supported VkCooperativeVectorPropertiesNV::matrixInterpretation value as reported by vkGetPhysicalDeviceCooperativeVectorPropertiesNV, then dstComponentType must be VK_COMPONENT_TYPE_FLOAT32_KHR", "chapters/shaders.html"}, + {"VUID-VkConvertCooperativeVectorMatrixInfoNV-dstComponentType-10082", "If dstComponentType is VK_COMPONENT_TYPE_FLOAT_E4M3_NV or VK_COMPONENT_TYPE_FLOAT_E5M2_NV, then dstLayout must be VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_INFERENCING_OPTIMAL_NV or VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_TRAINING_OPTIMAL_NV", "chapters/shaders.html"}, + {"VUID-VkConvertCooperativeVectorMatrixInfoNV-dstComponentType-parameter", "dstComponentType must be a valid VkComponentTypeKHR value", "chapters/shaders.html"}, + {"VUID-VkConvertCooperativeVectorMatrixInfoNV-dstData-parameter", "dstData must be a valid VkDeviceOrHostAddressKHR union", "chapters/shaders.html"}, + {"VUID-VkConvertCooperativeVectorMatrixInfoNV-dstLayout-10078", "If dstLayout is row-major or column-major, then dstStride must be greater than the length of a row/column, and a multiple of the element size", "chapters/shaders.html"}, + {"VUID-VkConvertCooperativeVectorMatrixInfoNV-dstLayout-parameter", "dstLayout must be a valid VkCooperativeVectorMatrixLayoutNV value", "chapters/shaders.html"}, + {"VUID-VkConvertCooperativeVectorMatrixInfoNV-pDstSize-parameter", "pDstSize must be a valid pointer to a size_t value", "chapters/shaders.html"}, + {"VUID-VkConvertCooperativeVectorMatrixInfoNV-pNext-pNext", "pNext must be NULL", "chapters/shaders.html"}, + {"VUID-VkConvertCooperativeVectorMatrixInfoNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_CONVERT_COOPERATIVE_VECTOR_MATRIX_INFO_NV", "chapters/shaders.html"}, + {"VUID-VkConvertCooperativeVectorMatrixInfoNV-srcComponentType-10079", "If srcComponentType is not a supported VkCooperativeVectorPropertiesNV::matrixInterpretation value as reported by vkGetPhysicalDeviceCooperativeVectorPropertiesNV, then srcComponentType must be VK_COMPONENT_TYPE_FLOAT32_KHR", "chapters/shaders.html"}, + {"VUID-VkConvertCooperativeVectorMatrixInfoNV-srcComponentType-10081", "If srcComponentType and dstComponentType are not equal, then one must be VK_COMPONENT_TYPE_FLOAT32_KHR or VK_COMPONENT_TYPE_FLOAT16_KHR and the other must be a lower-precision floating-point type", "chapters/shaders.html"}, + {"VUID-VkConvertCooperativeVectorMatrixInfoNV-srcComponentType-parameter", "srcComponentType must be a valid VkComponentTypeKHR value", "chapters/shaders.html"}, + {"VUID-VkConvertCooperativeVectorMatrixInfoNV-srcData-parameter", "srcData must be a valid VkDeviceOrHostAddressConstKHR union", "chapters/shaders.html"}, + {"VUID-VkConvertCooperativeVectorMatrixInfoNV-srcLayout-10077", "If srcLayout is row-major or column-major, then srcStride must be greater than the length of a row/column, and a multiple of the element size", "chapters/shaders.html"}, + {"VUID-VkConvertCooperativeVectorMatrixInfoNV-srcLayout-parameter", "srcLayout must be a valid VkCooperativeVectorMatrixLayoutNV value", "chapters/shaders.html"}, {"VUID-VkCooperativeMatrixFlexibleDimensionsPropertiesNV-pNext-pNext", "pNext must be NULL", "chapters/shaders.html"}, {"VUID-VkCooperativeMatrixFlexibleDimensionsPropertiesNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV", "chapters/shaders.html"}, {"VUID-VkCooperativeMatrixPropertiesKHR-pNext-pNext", "pNext must be NULL", "chapters/shaders.html"}, {"VUID-VkCooperativeMatrixPropertiesKHR-sType-sType", "sType must be VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR", "chapters/shaders.html"}, {"VUID-VkCooperativeMatrixPropertiesNV-pNext-pNext", "pNext must be NULL", "chapters/shaders.html"}, {"VUID-VkCooperativeMatrixPropertiesNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV", "chapters/shaders.html"}, + {"VUID-VkCooperativeVectorPropertiesNV-biasInterpretation-parameter", "biasInterpretation must be a valid VkComponentTypeKHR value", "chapters/shaders.html"}, + {"VUID-VkCooperativeVectorPropertiesNV-inputInterpretation-parameter", "inputInterpretation must be a valid VkComponentTypeKHR value", "chapters/shaders.html"}, + {"VUID-VkCooperativeVectorPropertiesNV-inputType-parameter", "inputType must be a valid VkComponentTypeKHR value", "chapters/shaders.html"}, + {"VUID-VkCooperativeVectorPropertiesNV-matrixInterpretation-parameter", "matrixInterpretation must be a valid VkComponentTypeKHR value", "chapters/shaders.html"}, + {"VUID-VkCooperativeVectorPropertiesNV-pNext-pNext", "pNext must be NULL", "chapters/shaders.html"}, + {"VUID-VkCooperativeVectorPropertiesNV-resultType-parameter", "resultType must be a valid VkComponentTypeKHR value", "chapters/shaders.html"}, + {"VUID-VkCooperativeVectorPropertiesNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_COOPERATIVE_VECTOR_PROPERTIES_NV", "chapters/shaders.html"}, {"VUID-VkCopyAccelerationStructureInfoKHR-buffer-03718", "The buffer used to create src must be bound to device memory", "chapters/accelstructures.html"}, {"VUID-VkCopyAccelerationStructureInfoKHR-buffer-03719", "The buffer used to create dst must be bound to device memory", "chapters/accelstructures.html"}, {"VUID-VkCopyAccelerationStructureInfoKHR-commonparent", "Both of dst, and src must have been created, allocated, or retrieved from the same VkDevice", "chapters/accelstructures.html"}, @@ -1846,7 +2025,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkCopyImageInfo2-dstOffset-01784", "The dstOffset and extent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer's command pool's queue family, as described in VkQueueFamilyProperties", "chapters/copies.html"}, {"VUID-VkCopyImageInfo2-dstSubresource-07967", "The dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created", "chapters/copies.html"}, {"VUID-VkCopyImageInfo2-dstSubresource-07968", "If dstSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS, dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created", "chapters/copies.html"}, - {"VUID-VkCopyImageInfo2-dstSubresource-10215", "If dstSubresource.aspectMask is VK_IMAGE_ASPECT_COLOR_BIT, then srSubresource.aspectMask must not contain both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT.", "chapters/copies.html"}, + {"VUID-VkCopyImageInfo2-dstSubresource-10215", "If dstSubresource.aspectMask is VK_IMAGE_ASPECT_COLOR_BIT, then srSubresource.aspectMask must not contain both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT", "chapters/copies.html"}, {"VUID-VkCopyImageInfo2-pNext-pNext", "pNext must be NULL", "chapters/copies.html"}, {"VUID-VkCopyImageInfo2-pRegions-00124", "The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory", "chapters/copies.html"}, {"VUID-VkCopyImageInfo2-pRegions-07278", "For each element of pRegions, srcOffset.x must be a multiple of the texel block extent width of the VkFormat of srcImage", "chapters/copies.html"}, @@ -2517,7 +2696,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkDeviceCreateInfo-pNext-06532", "If the pNext chain includes a VkPhysicalDeviceVulkan13Features structure, then it must not include a VkPhysicalDeviceDynamicRenderingFeatures, VkPhysicalDeviceImageRobustnessFeatures, VkPhysicalDeviceInlineUniformBlockFeatures, VkPhysicalDeviceMaintenance4Features, VkPhysicalDevicePipelineCreationCacheControlFeatures, VkPhysicalDevicePrivateDataFeatures, VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures, VkPhysicalDeviceShaderIntegerDotProductFeatures, VkPhysicalDeviceShaderTerminateInvocationFeatures, VkPhysicalDeviceSubgroupSizeControlFeatures, VkPhysicalDeviceSynchronization2Features, VkPhysicalDeviceTextureCompressionASTCHDRFeatures, or VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures structure", "chapters/devsandqueues.html"}, {"VUID-VkDeviceCreateInfo-pNext-09396", "If the pNext chain includes a VkDeviceQueueShaderCoreControlCreateInfoARM structure, then it must not be included in the pNext chain of any of the VkDeviceQueueCreateInfo structures in pQueueCreateInfos", "chapters/devsandqueues.html"}, {"VUID-VkDeviceCreateInfo-pNext-09397", "If the pNext chain includes a VkDeviceQueueShaderCoreControlCreateInfoARM structure then VkPhysicalDeviceSchedulingControlsPropertiesARM::schedulingControlsFlags must contain VK_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM", "chapters/devsandqueues.html"}, - {"VUID-VkDeviceCreateInfo-pNext-10360", "If the pNext chain includes a VkPhysicalDeviceVulkan14Features structure, then it must not include a VkPhysicalDeviceGlobalPriorityQueryFeatures VkPhysicalDeviceShaderSubgroupRotateFeatures VkPhysicalDeviceShaderFloatControls2Features VkPhysicalDeviceShaderExpectAssumeFeatures VkPhysicalDeviceLineRasterizationFeatures VkPhysicalDeviceVertexAttributeDivisorFeatures VkPhysicalDeviceIndexTypeUint8Features VkPhysicalDeviceDynamicRenderingLocalReadFeatures VkPhysicalDeviceMaintenance5Features VkPhysicalDeviceMaintenance6Features VkPhysicalDevicePipelineProtectedAccessFeatures VkPhysicalDevicePipelineRobustnessFeatures, or VkPhysicalDeviceHostImageCopyFeatures structure.", "chapters/devsandqueues.html"}, + {"VUID-VkDeviceCreateInfo-pNext-10360", "If the pNext chain includes a VkPhysicalDeviceVulkan14Features structure, then it must not include a VkPhysicalDeviceGlobalPriorityQueryFeatures VkPhysicalDeviceShaderSubgroupRotateFeatures VkPhysicalDeviceShaderFloatControls2Features VkPhysicalDeviceShaderExpectAssumeFeatures VkPhysicalDeviceLineRasterizationFeatures VkPhysicalDeviceVertexAttributeDivisorFeatures VkPhysicalDeviceIndexTypeUint8Features VkPhysicalDeviceDynamicRenderingLocalReadFeatures VkPhysicalDeviceMaintenance5Features VkPhysicalDeviceMaintenance6Features VkPhysicalDevicePipelineProtectedAccessFeatures VkPhysicalDevicePipelineRobustnessFeatures, or VkPhysicalDeviceHostImageCopyFeatures structure", "chapters/devsandqueues.html"}, {"VUID-VkDeviceCreateInfo-pNext-pNext", "Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid struct for extending VkDeviceCreateInfo", "chapters/devsandqueues.html"}, {"VUID-VkDeviceCreateInfo-pProperties-04451", "If the VK_KHR_portability_subset extension is included in pProperties of vkEnumerateDeviceExtensionProperties, ppEnabledExtensionNames must include \"VK_KHR_portability_subset\"", "chapters/devsandqueues.html"}, {"VUID-VkDeviceCreateInfo-pQueueCreateInfos-06654", "If multiple elements of pQueueCreateInfos share the same queueFamilyIndex, then all of such elements must have the same global priority level, which can be specified explicitly by the including a VkDeviceQueueGlobalPriorityCreateInfo structure in the pNext chain, or by the implicit default value", "chapters/devsandqueues.html"}, @@ -3832,8 +4011,8 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkImageMemoryBarrier2-dstAccessMask-03911", "If dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, {"VUID-VkImageMemoryBarrier2-dstAccessMask-03912", "If dstAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, {"VUID-VkImageMemoryBarrier2-dstAccessMask-03913", "If dstAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, - {"VUID-VkImageMemoryBarrier2-dstAccessMask-03914", "If dstAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, - {"VUID-VkImageMemoryBarrier2-dstAccessMask-03915", "If dstAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_CLEAR_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, + {"VUID-VkImageMemoryBarrier2-dstAccessMask-03914", "If dstAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_CONVERT_COOPERATIVE_VECTOR_MATRIX_BIT_NV, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, + {"VUID-VkImageMemoryBarrier2-dstAccessMask-03915", "If dstAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_CLEAR_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_CONVERT_COOPERATIVE_VECTOR_MATRIX_BIT_NV, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, {"VUID-VkImageMemoryBarrier2-dstAccessMask-03916", "If dstAccessMask includes VK_ACCESS_2_HOST_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT", "chapters/synchronization.html"}, {"VUID-VkImageMemoryBarrier2-dstAccessMask-03917", "If dstAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT", "chapters/synchronization.html"}, {"VUID-VkImageMemoryBarrier2-dstAccessMask-03918", "If dstAccessMask includes VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, @@ -3914,8 +4093,8 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkImageMemoryBarrier2-srcAccessMask-03911", "If srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, {"VUID-VkImageMemoryBarrier2-srcAccessMask-03912", "If srcAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, {"VUID-VkImageMemoryBarrier2-srcAccessMask-03913", "If srcAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, - {"VUID-VkImageMemoryBarrier2-srcAccessMask-03914", "If srcAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, - {"VUID-VkImageMemoryBarrier2-srcAccessMask-03915", "If srcAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_CLEAR_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, + {"VUID-VkImageMemoryBarrier2-srcAccessMask-03914", "If srcAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_CONVERT_COOPERATIVE_VECTOR_MATRIX_BIT_NV, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, + {"VUID-VkImageMemoryBarrier2-srcAccessMask-03915", "If srcAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_CLEAR_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_CONVERT_COOPERATIVE_VECTOR_MATRIX_BIT_NV, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, {"VUID-VkImageMemoryBarrier2-srcAccessMask-03916", "If srcAccessMask includes VK_ACCESS_2_HOST_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT", "chapters/synchronization.html"}, {"VUID-VkImageMemoryBarrier2-srcAccessMask-03917", "If srcAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT", "chapters/synchronization.html"}, {"VUID-VkImageMemoryBarrier2-srcAccessMask-03918", "If srcAccessMask includes VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, @@ -4560,8 +4739,8 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkMemoryBarrier2-dstAccessMask-03911", "If dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, {"VUID-VkMemoryBarrier2-dstAccessMask-03912", "If dstAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, {"VUID-VkMemoryBarrier2-dstAccessMask-03913", "If dstAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, - {"VUID-VkMemoryBarrier2-dstAccessMask-03914", "If dstAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, - {"VUID-VkMemoryBarrier2-dstAccessMask-03915", "If dstAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_CLEAR_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, + {"VUID-VkMemoryBarrier2-dstAccessMask-03914", "If dstAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_CONVERT_COOPERATIVE_VECTOR_MATRIX_BIT_NV, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, + {"VUID-VkMemoryBarrier2-dstAccessMask-03915", "If dstAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_CLEAR_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_CONVERT_COOPERATIVE_VECTOR_MATRIX_BIT_NV, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, {"VUID-VkMemoryBarrier2-dstAccessMask-03916", "If dstAccessMask includes VK_ACCESS_2_HOST_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT", "chapters/synchronization.html"}, {"VUID-VkMemoryBarrier2-dstAccessMask-03917", "If dstAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT", "chapters/synchronization.html"}, {"VUID-VkMemoryBarrier2-dstAccessMask-03918", "If dstAccessMask includes VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT, dstStageMask must include VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, @@ -4615,8 +4794,8 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkMemoryBarrier2-srcAccessMask-03911", "If srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, {"VUID-VkMemoryBarrier2-srcAccessMask-03912", "If srcAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, {"VUID-VkMemoryBarrier2-srcAccessMask-03913", "If srcAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, - {"VUID-VkMemoryBarrier2-srcAccessMask-03914", "If srcAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, - {"VUID-VkMemoryBarrier2-srcAccessMask-03915", "If srcAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_CLEAR_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, + {"VUID-VkMemoryBarrier2-srcAccessMask-03914", "If srcAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_CONVERT_COOPERATIVE_VECTOR_MATRIX_BIT_NV, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, + {"VUID-VkMemoryBarrier2-srcAccessMask-03915", "If srcAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_PIPELINE_STAGE_2_RESOLVE_BIT, VK_PIPELINE_STAGE_2_CLEAR_BIT, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_CONVERT_COOPERATIVE_VECTOR_MATRIX_BIT_NV, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, {"VUID-VkMemoryBarrier2-srcAccessMask-03916", "If srcAccessMask includes VK_ACCESS_2_HOST_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT", "chapters/synchronization.html"}, {"VUID-VkMemoryBarrier2-srcAccessMask-03917", "If srcAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT", "chapters/synchronization.html"}, {"VUID-VkMemoryBarrier2-srcAccessMask-03918", "If srcAccessMask includes VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT, srcStageMask must include VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "chapters/synchronization.html"}, @@ -4874,6 +5053,23 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkOpticalFlowSessionCreatePrivateDataInfoNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV", "chapters/VK_NV_optical_flow/optical_flow.html"}, {"VUID-VkOutOfBandQueueTypeInfoNV-queueType-parameter", "queueType must be a valid VkOutOfBandQueueTypeNV value", "chapters/VK_KHR_surface/wsi.html"}, {"VUID-VkOutOfBandQueueTypeInfoNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV", "chapters/VK_KHR_surface/wsi.html"}, + {"VUID-VkPartitionedAccelerationStructureFlagsNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_FLAGS_NV", "chapters/accelstructures.html"}, + {"VUID-VkPartitionedAccelerationStructureInstancesInputNV-flags-parameter", "flags must be a valid combination of VkBuildAccelerationStructureFlagBitsKHR values", "chapters/accelstructures.html"}, + {"VUID-VkPartitionedAccelerationStructureInstancesInputNV-pNext-pNext", "pNext must be NULL or a pointer to a valid instance of VkPartitionedAccelerationStructureFlagsNV", "chapters/accelstructures.html"}, + {"VUID-VkPartitionedAccelerationStructureInstancesInputNV-partitionCount-10535", "The sum of partitionCount and maxInstanceInGlobalPartitionCount must be less than or equal to VkPhysicalDevicePartitionedAccelerationStructurePropertiesNV::maxPartitionCount", "chapters/accelstructures.html"}, + {"VUID-VkPartitionedAccelerationStructureInstancesInputNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCES_INPUT_NV", "chapters/accelstructures.html"}, + {"VUID-VkPartitionedAccelerationStructureInstancesInputNV-sType-unique", "The sType value of each struct in the pNext chain must be unique", "chapters/accelstructures.html"}, + {"VUID-VkPartitionedAccelerationStructureUpdateInstanceDataNV-None-10572", "The instance must have either been created with flag VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_ENABLE_EXPLICIT_BOUNDING_BOX_NV or did not have an acceleration structure assigned with VkPartitionedAccelerationStructureWriteInstanceDataNV", "chapters/accelstructures.html"}, + {"VUID-VkPartitionedAccelerationStructureUpdateInstanceDataNV-instanceContributionToHitGroupIndex-10571", "The most significant 8 bits of instanceContributionToHitGroupIndex must be 0", "chapters/accelstructures.html"}, + {"VUID-VkPartitionedAccelerationStructureUpdateInstanceDataNV-instanceIndex-10573", "instanceIndex must be less than VkBuildPartitionedAccelerationStructureInfoNV::input::instanceCount", "chapters/accelstructures.html"}, + {"VUID-VkPartitionedAccelerationStructureWriteInstanceDataNV-explicitAABB-10570", "explicitAABB must be a valid bounding box if instance was created with flag VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_ENABLE_EXPLICIT_BOUNDING_BOX_NV set", "chapters/accelstructures.html"}, + {"VUID-VkPartitionedAccelerationStructureWriteInstanceDataNV-instanceContributionToHitGroupIndex-10567", "The most significant 8 bits of instanceContributionToHitGroupIndex must be 0", "chapters/accelstructures.html"}, + {"VUID-VkPartitionedAccelerationStructureWriteInstanceDataNV-instanceFlags-parameter", "instanceFlags must be a valid combination of VkPartitionedAccelerationStructureInstanceFlagBitsNV values", "chapters/accelstructures.html"}, + {"VUID-VkPartitionedAccelerationStructureWriteInstanceDataNV-instanceIndex-10568", "instanceIndex must be less than VkBuildPartitionedAccelerationStructureInfoNV::input::instanceCount", "chapters/accelstructures.html"}, + {"VUID-VkPartitionedAccelerationStructureWriteInstanceDataNV-instanceMask-10566", "The most significant 24 bits of instanceMask must be 0", "chapters/accelstructures.html"}, + {"VUID-VkPartitionedAccelerationStructureWriteInstanceDataNV-partitionIndex-10569", "partitionIndex must be less than VkBuildPartitionedAccelerationStructureInfoNV::input::partitionCount", "chapters/accelstructures.html"}, + {"VUID-VkPartitionedAccelerationStructureWritePartitionTranslationDataNV-enablePartitionTranslation-10575", "The partitioned acceleration structure must have the VkPartitionedAccelerationStructureFlagsNV::enablePartitionTranslation flag set", "chapters/accelstructures.html"}, + {"VUID-VkPartitionedAccelerationStructureWritePartitionTranslationDataNV-partitionIndex-10574", "partitionIndex must be less than VkBuildPartitionedAccelerationStructureInfoNV::input::partitionCount", "chapters/accelstructures.html"}, {"VUID-VkPerformanceConfigurationAcquireInfoINTEL-pNext-pNext", "pNext must be NULL", "chapters/queries.html"}, {"VUID-VkPerformanceConfigurationAcquireInfoINTEL-sType-sType", "sType must be VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL", "chapters/queries.html"}, {"VUID-VkPerformanceConfigurationAcquireInfoINTEL-type-parameter", "type must be a valid VkPerformanceConfigurationTypeINTEL value", "chapters/queries.html"}, @@ -4907,6 +5103,8 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkPhysicalDeviceBorderColorSwizzleFeaturesEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT", "chapters/features.html"}, {"VUID-VkPhysicalDeviceBufferDeviceAddressFeatures-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES", "chapters/features.html"}, {"VUID-VkPhysicalDeviceBufferDeviceAddressFeaturesEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT", "chapters/features.html"}, + {"VUID-VkPhysicalDeviceClusterAccelerationStructureFeaturesNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_FEATURES_NV", "chapters/features.html"}, + {"VUID-VkPhysicalDeviceClusterAccelerationStructurePropertiesNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_PROPERTIES_NV", "chapters/limits.html"}, {"VUID-VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI", "chapters/features.html"}, {"VUID-VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI", "chapters/limits.html"}, {"VUID-VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI", "chapters/features.html"}, @@ -4923,6 +5121,8 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkPhysicalDeviceCooperativeMatrixFeaturesNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV", "chapters/features.html"}, {"VUID-VkPhysicalDeviceCooperativeMatrixPropertiesKHR-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR", "chapters/limits.html"}, {"VUID-VkPhysicalDeviceCooperativeMatrixPropertiesNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV", "chapters/limits.html"}, + {"VUID-VkPhysicalDeviceCooperativeVectorFeaturesNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_VECTOR_FEATURES_NV", "chapters/features.html"}, + {"VUID-VkPhysicalDeviceCooperativeVectorPropertiesNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_VECTOR_PROPERTIES_NV", "chapters/limits.html"}, {"VUID-VkPhysicalDeviceCopyMemoryIndirectFeaturesNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV", "chapters/features.html"}, {"VUID-VkPhysicalDeviceCopyMemoryIndirectPropertiesNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV", "chapters/limits.html"}, {"VUID-VkPhysicalDeviceCornerSampledImageFeaturesNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV", "chapters/features.html"}, @@ -5117,6 +5317,8 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkPhysicalDeviceOpticalFlowPropertiesNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV", "chapters/limits.html"}, {"VUID-VkPhysicalDevicePCIBusInfoPropertiesEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT", "chapters/devsandqueues.html"}, {"VUID-VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT", "chapters/features.html"}, + {"VUID-VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_FEATURES_NV", "chapters/features.html"}, + {"VUID-VkPhysicalDevicePartitionedAccelerationStructurePropertiesNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_PROPERTIES_NV", "chapters/limits.html"}, {"VUID-VkPhysicalDevicePerStageDescriptorSetFeaturesNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV", "chapters/features.html"}, {"VUID-VkPhysicalDevicePerformanceQueryFeaturesKHR-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR", "chapters/features.html"}, {"VUID-VkPhysicalDevicePerformanceQueryPropertiesKHR-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR", "chapters/limits.html"}, @@ -5154,6 +5356,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkPhysicalDeviceRayQueryFeaturesKHR-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR", "chapters/features.html"}, {"VUID-VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV", "chapters/features.html"}, {"VUID-VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV", "chapters/limits.html"}, + {"VUID-VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_LINEAR_SWEPT_SPHERES_FEATURES_NV", "chapters/features.html"}, {"VUID-VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR", "chapters/features.html"}, {"VUID-VkPhysicalDeviceRayTracingMotionBlurFeaturesNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV", "chapters/features.html"}, {"VUID-VkPhysicalDeviceRayTracingPipelineFeaturesKHR-rayTracingPipelineShaderGroupHandleCaptureReplayMixed-03575", "If rayTracingPipelineShaderGroupHandleCaptureReplayMixed is VK_TRUE, rayTracingPipelineShaderGroupHandleCaptureReplay must also be VK_TRUE", "chapters/features.html"}, @@ -5806,6 +6009,8 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkQueueFamilyProperties2-sType-unique", "The sType value of each struct in the pNext chain must be unique", "chapters/devsandqueues.html"}, {"VUID-VkQueueFamilyQueryResultStatusPropertiesKHR-sType-sType", "sType must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR", "chapters/devsandqueues.html"}, {"VUID-VkQueueFamilyVideoPropertiesKHR-sType-sType", "sType must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR", "chapters/devsandqueues.html"}, + {"VUID-VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV-clusterAccelerationStructure-10576", "The VkPhysicalDeviceClusterAccelerationStructureFeaturesNV::clusterAccelerationStructure feature must be enabled", "chapters/pipelines.html"}, + {"VUID-VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CLUSTER_ACCELERATION_STRUCTURE_CREATE_INFO_NV", "chapters/pipelines.html"}, {"VUID-VkRayTracingPipelineCreateInfoKHR-None-09497", "If the pNext chain does not include a VkPipelineCreateFlags2CreateInfo structure, flags must be a valid combination of VkPipelineCreateFlagBits values", "chapters/pipelines.html"}, {"VUID-VkRayTracingPipelineCreateInfoKHR-None-10391", "If a resource variables is declared in a shader as an array of descriptors, then the descriptor type of that variable must not be VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK", "chapters/pipelines.html"}, {"VUID-VkRayTracingPipelineCreateInfoKHR-commonparent", "Both of basePipelineHandle, and layout that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", "chapters/pipelines.html"}, @@ -5848,7 +6053,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-07999", "If pLibraryInfo is NULL or its libraryCount is 0, stageCount must not be 0", "chapters/pipelines.html"}, {"VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-parameter", "If pLibraryInfo is not NULL, pLibraryInfo must be a valid pointer to a valid VkPipelineLibraryCreateInfoKHR structure", "chapters/pipelines.html"}, {"VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInterface-parameter", "If pLibraryInterface is not NULL, pLibraryInterface must be a valid pointer to a valid VkRayTracingPipelineInterfaceCreateInfoKHR structure", "chapters/pipelines.html"}, - {"VUID-VkRayTracingPipelineCreateInfoKHR-pNext-pNext", "Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkPipelineBinaryInfoKHR, VkPipelineCreateFlags2CreateInfo, VkPipelineCreationFeedbackCreateInfo, or VkPipelineRobustnessCreateInfo", "chapters/pipelines.html"}, + {"VUID-VkRayTracingPipelineCreateInfoKHR-pNext-pNext", "Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkPipelineBinaryInfoKHR, VkPipelineCreateFlags2CreateInfo, VkPipelineCreationFeedbackCreateInfo, VkPipelineRobustnessCreateInfo, or VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV", "chapters/pipelines.html"}, {"VUID-VkRayTracingPipelineCreateInfoKHR-pStages-03426", "The shader code for the entry points identified by pStages, and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter", "chapters/pipelines.html"}, {"VUID-VkRayTracingPipelineCreateInfoKHR-pStages-parameter", "If stageCount is not 0, pStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures", "chapters/pipelines.html"}, {"VUID-VkRayTracingPipelineCreateInfoKHR-pipelineCreationCacheControl-02905", "If the pipelineCreationCacheControl feature is not enabled, flags must not include VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT or VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT", "chapters/pipelines.html"}, @@ -6949,7 +7154,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkSurfaceCapabilities2KHR-sType-unique", "The sType value of each struct in the pNext chain must be unique", "chapters/VK_KHR_surface/wsi.html"}, {"VUID-VkSurfaceCapabilitiesFullScreenExclusiveEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT", "chapters/VK_KHR_surface/wsi.html"}, {"VUID-VkSurfaceCapabilitiesPresentBarrierNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV", "chapters/VK_KHR_surface/wsi.html"}, - {"VUID-VkSurfaceFormat2KHR-pNext-06750", "If the imageCompressionControlSwapchain feature is not enabled, the pNext chain must not include an VkImageCompressionPropertiesEXT structure", "chapters/VK_KHR_surface/wsi.html"}, + {"VUID-VkSurfaceFormat2KHR-pNext-06750", "If the VK_EXT_image_compression_control_swapchain extension is not supported, the pNext chain must not include an VkImageCompressionPropertiesEXT structure", "chapters/VK_KHR_surface/wsi.html"}, {"VUID-VkSurfaceFormat2KHR-pNext-pNext", "pNext must be NULL or a pointer to a valid instance of VkImageCompressionPropertiesEXT", "chapters/VK_KHR_surface/wsi.html"}, {"VUID-VkSurfaceFormat2KHR-sType-sType", "sType must be VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR", "chapters/VK_KHR_surface/wsi.html"}, {"VUID-VkSurfaceFormat2KHR-sType-unique", "The sType value of each struct in the pNext chain must be unique", "chapters/VK_KHR_surface/wsi.html"}, @@ -7646,7 +7851,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkWriteDescriptorSet-dstBinding-10009", "dstBinding must be a binding with a non-zero VkDescriptorSetLayoutCreateInfo::bindingCount", "chapters/descriptorsets.html"}, {"VUID-VkWriteDescriptorSet-dstSet-00320", "dstSet must be a valid VkDescriptorSet handle", "chapters/descriptorsets.html"}, {"VUID-VkWriteDescriptorSet-dstSet-04611", "If the VkDescriptorSetLayoutBinding for dstSet at dstBinding is VK_DESCRIPTOR_TYPE_MUTABLE_EXT, the new active descriptor type descriptorType must exist in the corresponding pMutableDescriptorTypeLists list for dstBinding", "chapters/descriptorsets.html"}, - {"VUID-VkWriteDescriptorSet-pNext-pNext", "Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkWriteDescriptorSetAccelerationStructureKHR, VkWriteDescriptorSetAccelerationStructureNV, or VkWriteDescriptorSetInlineUniformBlock", "chapters/descriptorsets.html"}, + {"VUID-VkWriteDescriptorSet-pNext-pNext", "Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkWriteDescriptorSetAccelerationStructureKHR, VkWriteDescriptorSetAccelerationStructureNV, VkWriteDescriptorSetInlineUniformBlock, or VkWriteDescriptorSetPartitionedAccelerationStructureNV", "chapters/descriptorsets.html"}, {"VUID-VkWriteDescriptorSet-sType-sType", "sType must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET", "chapters/descriptorsets.html"}, {"VUID-VkWriteDescriptorSet-sType-unique", "The sType value of each struct in the pNext chain must be unique", "chapters/descriptorsets.html"}, {"VUID-VkWriteDescriptorSetAccelerationStructureKHR-accelerationStructureCount-arraylength", "accelerationStructureCount must be greater than 0", "chapters/descriptorsets.html"}, @@ -7663,6 +7868,11 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkWriteDescriptorSetInlineUniformBlock-dataSize-arraylength", "dataSize must be greater than 0", "chapters/descriptorsets.html"}, {"VUID-VkWriteDescriptorSetInlineUniformBlock-pData-parameter", "pData must be a valid pointer to an array of dataSize bytes", "chapters/descriptorsets.html"}, {"VUID-VkWriteDescriptorSetInlineUniformBlock-sType-sType", "sType must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK", "chapters/descriptorsets.html"}, + {"VUID-VkWriteDescriptorSetPartitionedAccelerationStructureNV-accelerationStructureCount-10511", "accelerationStructureCount must be equal to descriptorCount in the extended structure", "chapters/descriptorsets.html"}, + {"VUID-VkWriteDescriptorSetPartitionedAccelerationStructureNV-accelerationStructureCount-arraylength", "accelerationStructureCount must be greater than 0", "chapters/descriptorsets.html"}, + {"VUID-VkWriteDescriptorSetPartitionedAccelerationStructureNV-pAccelerationStructures-10512", "Each entry in pAccelerationStructures must be a valid address of a PTLAS", "chapters/descriptorsets.html"}, + {"VUID-VkWriteDescriptorSetPartitionedAccelerationStructureNV-pAccelerationStructures-parameter", "pAccelerationStructures must be a valid pointer to an array of accelerationStructureCount or VK_NULL_HANDLE VkDeviceAddress values", "chapters/descriptorsets.html"}, + {"VUID-VkWriteDescriptorSetPartitionedAccelerationStructureNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_PARTITIONED_ACCELERATION_STRUCTURE_NV", "chapters/descriptorsets.html"}, {"VUID-VkWriteIndirectExecutionSetPipelineEXT-index-11026", "index must be less than the value of VkIndirectExecutionSetPipelineInfoEXT::maxPipelineCount used to create the set", "chapters/device_generated_commands/generatedcommands.html"}, {"VUID-VkWriteIndirectExecutionSetPipelineEXT-index-11029", "index must not be referenced by submitted command buffers", "chapters/device_generated_commands/generatedcommands.html"}, {"VUID-VkWriteIndirectExecutionSetPipelineEXT-pipeline-11027", "pipeline must have been created with VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT", "chapters/device_generated_commands/generatedcommands.html"}, @@ -8381,8 +8591,10 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdBlitImage-filter-02001", "If filter is VK_FILTER_LINEAR, then the format features of srcImage must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", "chapters/copies.html"}, {"VUID-vkCmdBlitImage-filter-02002", "If filter is VK_FILTER_CUBIC_EXT, then the format features of srcImage must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "chapters/copies.html"}, {"VUID-vkCmdBlitImage-filter-parameter", "filter must be a valid VkFilter value", "chapters/copies.html"}, - {"VUID-vkCmdBlitImage-maintenance8-10207", "If the maintenance8 feature is enabled and srcImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.baseArrayLayer must be 0, and srcSubresource.layerCount must be 1", "chapters/copies.html"}, - {"VUID-vkCmdBlitImage-maintenance8-10208", "If the maintenance8 feature is enabled and dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, dstSubresource.baseArrayLayer must be 0, and dstSubresource.layerCount must be 1", "chapters/copies.html"}, + {"VUID-vkCmdBlitImage-maintenance8-10207", "If the maintenance8 feature is enabled and srcImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.baseArrayLayer must be 0, and srcSubresource.layerCount and dstSubresource.layerCount must each be 1", "chapters/copies.html"}, + {"VUID-vkCmdBlitImage-maintenance8-10208", "If the maintenance8 feature is enabled and dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, dstSubresource.baseArrayLayer must be 0, and srcSubresource.layerCount and dstSubresource.layerCount must each be 1", "chapters/copies.html"}, + {"VUID-vkCmdBlitImage-maintenance8-10579", "If the maintenance8 feature is enabled and srcImage is not of type VK_IMAGE_TYPE_3D, then for each element of pRegions, the absolute difference of the z member of each member of dstOffsets must equal srcSubresource.layerCount", "chapters/copies.html"}, + {"VUID-vkCmdBlitImage-maintenance8-10580", "If the maintenance8 feature is enabled and dstImage is not of type VK_IMAGE_TYPE_3D, then for each element of pRegions, the absolute difference of the z member of each member of srcOffsets must equal dstSubresource.layerCount", "chapters/copies.html"}, {"VUID-vkCmdBlitImage-pRegions-00215", "The source region specified by each element of pRegions must be a region that is contained within srcImage", "chapters/copies.html"}, {"VUID-vkCmdBlitImage-pRegions-00216", "The destination region specified by each element of pRegions must be a region that is contained within dstImage", "chapters/copies.html"}, {"VUID-vkCmdBlitImage-pRegions-00217", "The union of all destination regions, specified by the elements of pRegions, must not overlap in memory with any texel that may be sampled during the blit operation", "chapters/copies.html"}, @@ -8597,6 +8809,35 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdBuildAccelerationStructuresKHR-scratchData-03705", "The range of memory backing the scratchData member of any element of pInfos that is accessed by this command must not overlap the memory backing the srcAccelerationStructure member of any element of pInfos with a mode equal to VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR (including the same element), which is accessed by this command", "chapters/accelstructures.html"}, {"VUID-vkCmdBuildAccelerationStructuresKHR-srcAccelerationStructure-04629", "If the srcAccelerationStructure member of any element of pInfos is not VK_NULL_HANDLE, the srcAccelerationStructure member must be a valid VkAccelerationStructureKHR handle", "chapters/accelstructures.html"}, {"VUID-vkCmdBuildAccelerationStructuresKHR-videocoding", "This command must only be called outside of a video coding scope", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-clusterAccelerationStructure-10443", "The VkPhysicalDeviceClusterAccelerationStructureFeaturesNV::clusterAccelerationStructure feature must be enabled", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support compute operations", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-commandBuffer-recording", "commandBuffer must be in the recording state", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-dstAddressesArray-10455", "The memory regions specified in VkClusterAccelerationStructureCommandsInfoNV::dstAddressesArray must not overlap with each other or with pCommandInfos->scratchData", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-dstImplicitData-10456", "The memory region specified in VkClusterAccelerationStructureCommandsInfoNV::dstImplicitData for multiple acceleration structure builds must not overlap with pCommandInfos->scratchData", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-pCommandInfos-10445", "pCommandInfos->input::maxAccelerationStructureCount must be less than or equal to the value used in pInfo->maxAccelerationStructureCount in vkGetClusterAccelerationStructureBuildSizesNV to determine the memory requirements for the build operation", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-pCommandInfos-10448", "If pCommandInfos->input::opType is VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_MOVE_OBJECTS_NV, pCommandInfos->srcInfosArray must be an array of VkClusterAccelerationStructureMoveObjectsInfoNV structures", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-pCommandInfos-10449", "If pCommandInfos->input::opType is VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_CLUSTERS_BOTTOM_LEVEL_NV, pCommandInfos->srcInfosArray must be an array of VkClusterAccelerationStructureBuildClustersBottomLevelInfoNV structures", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-pCommandInfos-10450", "If pCommandInfos->input::opType is VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_TRIANGLE_CLUSTER_NV, pCommandInfos->srcInfosArray must be an array of VkClusterAccelerationStructureBuildTriangleClusterInfoNV structures", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-pCommandInfos-10451", "If pCommandInfos->input::opType is VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_TRIANGLE_CLUSTER_TEMPLATE_NV, pCommandInfos->srcInfosArray must be an array of VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV structures", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-pCommandInfos-10452", "If pCommandInfos->input::opType is VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_INSTANTIATE_TRIANGLE_CLUSTER_NV, pCommandInfos->srcInfosArray must be an array of VkClusterAccelerationStructureInstantiateClusterInfoNV structures", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-pCommandInfos-10453", "The value in pCommandInfos->srcInfosCount must be less than or equal to pCommandInfos->input::maxAccelerationStructureCount", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-pCommandInfos-10454", "The number of inputs specified in pCommandInfos->srcInfosArray must be greater than or equal to pCommandInfos->srcInfosCount", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-pCommandInfos-10457", "The buffer from which the buffer device address for pCommandInfos->scratchData is queried must have been created with the VK_BUFFER_USAGE_STORAGE_BUFFER_BIT usage flag", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-pCommandInfos-10458", "The buffers from which the buffer device addresses for pCommandInfos->srcInfosArray, pCommandInfos->srcInfosCount and pCommandInfos->addressResolutionFlags are queried must have been created with the VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR usage flag", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-pCommandInfos-10459", "The buffers from which the buffer device addresses for pCommandInfos->dstImplicitData and pCommandInfos->dstAddressesArray are queried must have been created with the VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR usage flag", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-pCommandInfos-10460", "If pCommandInfos->dstImplicitData is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-pCommandInfos-10461", "If pCommandInfos->scratchData is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-pCommandInfos-10462", "If pCommandInfos->srcInfosCount is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-pCommandInfos-10463", "If the addresses specified in pCommandInfos->dstAddressesArray are the address of a non-sparse buffer then they each must be bound completely and contiguously to a single VkDeviceMemory object", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-pCommandInfos-10464", "If the addresses specified in pCommandInfos->dstSizesArray are the address of a non-sparse buffer then they each must be bound completely and contiguously to a single VkDeviceMemory object", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-pCommandInfos-10465", "If the addresses specified in pCommandInfos->srcInfosArray are the address of a non-sparse buffer then they each must be bound completely and contiguously to a single VkDeviceMemory object", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-pCommandInfos-parameter", "pCommandInfos must be a valid pointer to a valid VkClusterAccelerationStructureCommandsInfoNV structure", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-pNext-10444", "The pNext chain of the bound ray tracing pipeline must include a VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV structure", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-renderpass", "This command must only be called outside of a render pass instance", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-scratchData-10446", "The scratch memory of the cluster acceleration structure specified in VkClusterAccelerationStructureCommandsInfoNV::scratchData must be larger than or equal to the scratch size queried with vkGetClusterAccelerationStructureBuildSizesNV", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-scratchData-10447", "The scratch address of the cluster acceleration structure specified in VkClusterAccelerationStructureCommandsInfoNV::scratchData must be aligned based on the cluster acceleration structure type and its alignment properties as queried with VkPhysicalDeviceClusterAccelerationStructurePropertiesNV", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-videocoding", "This command must only be called outside of a video coding scope", "chapters/accelstructures.html"}, {"VUID-vkCmdBuildMicromapsEXT-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support compute operations", "chapters/VK_EXT_opacity_micromap/micromaps.html"}, {"VUID-vkCmdBuildMicromapsEXT-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "chapters/VK_EXT_opacity_micromap/micromaps.html"}, {"VUID-vkCmdBuildMicromapsEXT-commandBuffer-recording", "commandBuffer must be in the recording state", "chapters/VK_EXT_opacity_micromap/micromaps.html"}, @@ -8619,6 +8860,34 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdBuildMicromapsEXT-renderpass", "This command must only be called outside of a render pass instance", "chapters/VK_EXT_opacity_micromap/micromaps.html"}, {"VUID-vkCmdBuildMicromapsEXT-scratchData-07467", "The range of memory backing the scratchData member of any element of pInfos that is accessed by this command must not overlap the memory backing the scratchData member of any other element of pInfos, which is accessed by this command", "chapters/VK_EXT_opacity_micromap/micromaps.html"}, {"VUID-vkCmdBuildMicromapsEXT-videocoding", "This command must only be called outside of a video coding scope", "chapters/VK_EXT_opacity_micromap/micromaps.html"}, + {"VUID-vkCmdBuildPartitionedAccelerationStructuresNV-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support compute operations", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildPartitionedAccelerationStructuresNV-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildPartitionedAccelerationStructuresNV-commandBuffer-recording", "commandBuffer must be in the recording state", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildPartitionedAccelerationStructuresNV-pBuildInfo-10537", "The count specified in pBuildInfo->input::instanceCount for the build operation must not exceed the value provided in pInfo->instanceCount when calling vkGetPartitionedAccelerationStructuresBuildSizesNV to determine the memory size", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildPartitionedAccelerationStructuresNV-pBuildInfo-10538", "The count specified in pBuildInfo->input::maxInstancePerPartitionCount for the build operation must not exceed the value provided in pInfo->maxInstancePerPartitionCount when calling vkGetPartitionedAccelerationStructuresBuildSizesNV to determine the memory size", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildPartitionedAccelerationStructuresNV-pBuildInfo-10539", "The count specified in pBuildInfo->input::partitionCount for the build operation must not exceed the value provided in pInfo->partitionCount when calling vkGetPartitionedAccelerationStructuresBuildSizesNV to determine the memory size", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildPartitionedAccelerationStructuresNV-pBuildInfo-10540", "The count specified in pBuildInfo->input::maxInstanceInGlobalPartitionCount for the build operation must not exceed the value provided in pInfo->maxInstanceInGlobalPartitionCount when calling vkGetPartitionedAccelerationStructuresBuildSizesNV to determine the memory size", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildPartitionedAccelerationStructuresNV-pBuildInfo-10541", "The scratch memory for the partitioned acceleration structure build specified in pBuildInfo->scratchData must be larger than or equal to the scratch size queried with vkGetPartitionedAccelerationStructuresBuildSizesNV", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildPartitionedAccelerationStructuresNV-pBuildInfo-10542", "pBuildInfo->scratchData must be aligned to 256 bytes", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildPartitionedAccelerationStructuresNV-pBuildInfo-10543", "The destination memory of the partitioned acceleration structure build specified in pBuildInfo->dstAccelerationStructureData must be larger than or equal to the size queried with vkGetPartitionedAccelerationStructuresBuildSizesNV", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildPartitionedAccelerationStructuresNV-pBuildInfo-10544", "pBuildInfo->srcAccelerationStructureData must be aligned to 256 bytes", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildPartitionedAccelerationStructuresNV-pBuildInfo-10545", "pBuildInfo->dstAccelerationStructureData must be aligned to 256 bytes", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildPartitionedAccelerationStructuresNV-pBuildInfo-10546", "The number of inputs specified in pBuildInfo->srcInfos must be greater than or equal to pBuildInfo->srcInfosCount", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildPartitionedAccelerationStructuresNV-pBuildInfo-10547", "The memory region containing the acceleration structure at address pBuildInfo->srcAccelerationStructureData must not overlap with scratch memory region at address pBuildInfo->scratchData", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildPartitionedAccelerationStructuresNV-pBuildInfo-10548", "The memory region containing the acceleration structure at address pBuildInfo->dstAccelerationStructureData must not overlap with scratch memory region at address pBuildInfo->scratchData", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildPartitionedAccelerationStructuresNV-pBuildInfo-10549", "The memory regions containing the acceleration structures at addresses pBuildInfo->srcAccelerationStructureData and pBuildInfo->dstAccelerationStructureData must not overlap with each other", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildPartitionedAccelerationStructuresNV-pBuildInfo-10550", "The buffer from which the buffer device address for pBuildInfo->scratchData is queried must have been created with the VK_BUFFER_USAGE_STORAGE_BUFFER_BIT usage flag", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildPartitionedAccelerationStructuresNV-pBuildInfo-10551", "The buffers from which the buffer device addresses for pBuildInfo->srcInfos and pBuildInfo->srcInfosCount are queried must have been created with the VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR usage flag", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildPartitionedAccelerationStructuresNV-pBuildInfo-10552", "The buffers from which the buffer device addresses for pBuildInfo->srcAccelerationStructureData and pBuildInfo->dstAccelerationStructureData are queried must have been created with the VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR usage flag", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildPartitionedAccelerationStructuresNV-pBuildInfo-10553", "If pBuildInfo->srcAccelerationStructureData is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildPartitionedAccelerationStructuresNV-pBuildInfo-10554", "If pBuildInfo->dstAccelerationStructureData is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildPartitionedAccelerationStructuresNV-pBuildInfo-10555", "If pBuildInfo->scratchData is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildPartitionedAccelerationStructuresNV-pBuildInfo-10556", "If pBuildInfo->srcInfos is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildPartitionedAccelerationStructuresNV-pBuildInfo-10557", "If pBuildInfo->srcInfosCount is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildPartitionedAccelerationStructuresNV-pBuildInfo-parameter", "pBuildInfo must be a valid pointer to a valid VkBuildPartitionedAccelerationStructureInfoNV structure", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildPartitionedAccelerationStructuresNV-partitionedAccelerationStructure-10536", "The VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV::partitionedAccelerationStructure feature must be enabled", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildPartitionedAccelerationStructuresNV-renderpass", "This command must only be called outside of a render pass instance", "chapters/accelstructures.html"}, + {"VUID-vkCmdBuildPartitionedAccelerationStructuresNV-videocoding", "This command must only be called outside of a video coding scope", "chapters/accelstructures.html"}, {"VUID-vkCmdClearAttachments-None-09679", "If the attachment format has components other than R and G, it must not have a 64-bit component width", "chapters/clears.html"}, {"VUID-vkCmdClearAttachments-aspectMask-07271", "If the aspectMask member of any element of pAttachments contains VK_IMAGE_ASPECT_COLOR_BIT, the colorAttachment must be a valid color attachment index in the current render pass instance", "chapters/clears.html"}, {"VUID-vkCmdClearAttachments-aspectMask-07884", "If the current render pass instance does not use dynamic rendering, and the aspectMask member of any element of pAttachments contains VK_IMAGE_ASPECT_DEPTH_BIT, the current subpass instance's depth-stencil attachment must be either VK_ATTACHMENT_UNUSED or the attachment format must contain a depth component", "chapters/clears.html"}, @@ -8705,6 +8974,19 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdControlVideoCodingKHR-pCodingControlInfo-parameter", "pCodingControlInfo must be a valid pointer to a valid VkVideoCodingControlInfoKHR structure", "chapters/videocoding.html"}, {"VUID-vkCmdControlVideoCodingKHR-renderpass", "This command must only be called outside of a render pass instance", "chapters/videocoding.html"}, {"VUID-vkCmdControlVideoCodingKHR-videocoding", "This command must only be called inside of a video coding scope", "chapters/videocoding.html"}, + {"VUID-vkCmdConvertCooperativeVectorMatrixNV-None-10088", "Memory accessed by the sources and destinations of all of the conversions must not overlap", "chapters/shaders.html"}, + {"VUID-vkCmdConvertCooperativeVectorMatrixNV-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations", "chapters/shaders.html"}, + {"VUID-vkCmdConvertCooperativeVectorMatrixNV-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "chapters/shaders.html"}, + {"VUID-vkCmdConvertCooperativeVectorMatrixNV-commandBuffer-recording", "commandBuffer must be in the recording state", "chapters/shaders.html"}, + {"VUID-vkCmdConvertCooperativeVectorMatrixNV-infoCount-arraylength", "infoCount must be greater than 0", "chapters/shaders.html"}, + {"VUID-vkCmdConvertCooperativeVectorMatrixNV-pInfo-10083", "For each element of pInfo, srcData::deviceAddress and dstData::deviceAddress must be valid device addresses", "chapters/shaders.html"}, + {"VUID-vkCmdConvertCooperativeVectorMatrixNV-pInfo-10084", "For each element of pInfo, srcData::deviceAddress must be 64 byte aligned", "chapters/shaders.html"}, + {"VUID-vkCmdConvertCooperativeVectorMatrixNV-pInfo-10085", "For each element of pInfo, dstData::deviceAddress must be 64 byte aligned", "chapters/shaders.html"}, + {"VUID-vkCmdConvertCooperativeVectorMatrixNV-pInfo-10086", "For each element of pInfo, srcSize must be large enough to contain the source matrix, based either on the standard matrix layout or based on the size filled out by vkConvertCooperativeVectorMatrixNV", "chapters/shaders.html"}, + {"VUID-vkCmdConvertCooperativeVectorMatrixNV-pInfo-10087", "For each element of pInfo, the value pointed to by pDstSize must be large enough to contain the destination matrix, based either on the standard matrix layout or based on the size filled out by vkConvertCooperativeVectorMatrixNV", "chapters/shaders.html"}, + {"VUID-vkCmdConvertCooperativeVectorMatrixNV-pInfos-parameter", "pInfos must be a valid pointer to an array of infoCount valid VkConvertCooperativeVectorMatrixInfoNV structures", "chapters/shaders.html"}, + {"VUID-vkCmdConvertCooperativeVectorMatrixNV-renderpass", "This command must only be called outside of a render pass instance", "chapters/shaders.html"}, + {"VUID-vkCmdConvertCooperativeVectorMatrixNV-videocoding", "This command must only be called outside of a video coding scope", "chapters/shaders.html"}, {"VUID-vkCmdCopyAccelerationStructureKHR-accelerationStructure-08925", "The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructure feature must be enabled", "chapters/accelstructures.html"}, {"VUID-vkCmdCopyAccelerationStructureKHR-buffer-03737", "The buffer used to create pInfo->src must be bound to device memory", "chapters/accelstructures.html"}, {"VUID-vkCmdCopyAccelerationStructureKHR-buffer-03738", "The buffer used to create pInfo->dst must be bound to device memory", "chapters/accelstructures.html"}, @@ -8886,7 +9168,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdCopyImage-dstOffset-01784", "The dstOffset and extent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer's command pool's queue family, as described in VkQueueFamilyProperties", "chapters/copies.html"}, {"VUID-vkCmdCopyImage-dstSubresource-07967", "The dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created", "chapters/copies.html"}, {"VUID-vkCmdCopyImage-dstSubresource-07968", "If dstSubresource.layerCount is not VK_REMAINING_ARRAY_LAYERS, dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created", "chapters/copies.html"}, - {"VUID-vkCmdCopyImage-dstSubresource-10215", "If dstSubresource.aspectMask is VK_IMAGE_ASPECT_COLOR_BIT, then srSubresource.aspectMask must not contain both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT.", "chapters/copies.html"}, + {"VUID-vkCmdCopyImage-dstSubresource-10215", "If dstSubresource.aspectMask is VK_IMAGE_ASPECT_COLOR_BIT, then srSubresource.aspectMask must not contain both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT", "chapters/copies.html"}, {"VUID-vkCmdCopyImage-pRegions-00124", "The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory", "chapters/copies.html"}, {"VUID-vkCmdCopyImage-pRegions-07278", "For each element of pRegions, srcOffset.x must be a multiple of the texel block extent width of the VkFormat of srcImage", "chapters/copies.html"}, {"VUID-vkCmdCopyImage-pRegions-07279", "For each element of pRegions, srcOffset.y must be a multiple of the texel block extent height of the VkFormat of srcImage", "chapters/copies.html"}, @@ -17372,6 +17654,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdTraceRaysKHR-SampledType-04471", "If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", "chapters/raytracing.html"}, {"VUID-vkCmdTraceRaysKHR-SampledType-04472", "If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", "chapters/raytracing.html"}, {"VUID-vkCmdTraceRaysKHR-SampledType-04473", "If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", "chapters/raytracing.html"}, + {"VUID-vkCmdTraceRaysKHR-allowClusterAccelerationStructure-10578", "If the traced geometry contains a cluster acceleration structure, then VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV::allowClusterAccelerationStructure must have been set for that pipeline", "chapters/raytracing.html"}, {"VUID-vkCmdTraceRaysKHR-commandBuffer-02707", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", "chapters/raytracing.html"}, {"VUID-vkCmdTraceRaysKHR-commandBuffer-03635", "commandBuffer must not be a protected command buffer", "chapters/raytracing.html"}, {"VUID-vkCmdTraceRaysKHR-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support compute operations", "chapters/raytracing.html"}, @@ -17484,6 +17767,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdTraceRaysNV-SampledType-04471", "If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", "chapters/raytracing.html"}, {"VUID-vkCmdTraceRaysNV-SampledType-04472", "If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", "chapters/raytracing.html"}, {"VUID-vkCmdTraceRaysNV-SampledType-04473", "If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", "chapters/raytracing.html"}, + {"VUID-vkCmdTraceRaysNV-allowClusterAccelerationStructure-10577", "If the traced geometry contains a cluster acceleration structure, then VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV::allowClusterAccelerationStructure must have been set for that pipeline", "chapters/raytracing.html"}, {"VUID-vkCmdTraceRaysNV-callableShaderBindingOffset-02461", "callableShaderBindingOffset must be less than the size of callableShaderBindingTableBuffer", "chapters/raytracing.html"}, {"VUID-vkCmdTraceRaysNV-callableShaderBindingOffset-02462", "callableShaderBindingOffset must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment", "chapters/raytracing.html"}, {"VUID-vkCmdTraceRaysNV-callableShaderBindingStride-02465", "callableShaderBindingStride must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupHandleSize", "chapters/raytracing.html"}, @@ -17782,6 +18066,12 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCompileDeferredNV-pipeline-parameter", "pipeline must be a valid VkPipeline handle", "chapters/pipelines.html"}, {"VUID-vkCompileDeferredNV-pipeline-parent", "pipeline must have been created, allocated, or retrieved from device", "chapters/pipelines.html"}, {"VUID-vkCompileDeferredNV-shader-02238", "shader must not have been called as a deferred compile before", "chapters/pipelines.html"}, + {"VUID-vkConvertCooperativeVectorMatrixNV-device-parameter", "device must be a valid VkDevice handle", "chapters/shaders.html"}, + {"VUID-vkConvertCooperativeVectorMatrixNV-pInfo-10073", "If pInfo->srcData.hostAddress is NULL, then pInfo->dstData.hostAddress must be NULL", "chapters/shaders.html"}, + {"VUID-vkConvertCooperativeVectorMatrixNV-pInfo-10074", "If pInfo->srcData.hostAddress is not NULL, then pInfo->srcSize must be large enough to contain the source matrix, based either on the standard matrix layout or based on the size filled out by this command", "chapters/shaders.html"}, + {"VUID-vkConvertCooperativeVectorMatrixNV-pInfo-10075", "If pInfo->dstData.hostAddress is not NULL, then the value pointed to by pInfo->pDstSize must be large enough to contain the destination matrix, based either on the standard matrix layout or based on the size filled out by this command", "chapters/shaders.html"}, + {"VUID-vkConvertCooperativeVectorMatrixNV-pInfo-10076", "If pInfo->dstData.hostAddress is not NULL, the source and destination memory ranges must not overlap", "chapters/shaders.html"}, + {"VUID-vkConvertCooperativeVectorMatrixNV-pInfo-parameter", "pInfo must be a valid pointer to a valid VkConvertCooperativeVectorMatrixInfoNV structure", "chapters/shaders.html"}, {"VUID-vkCopyAccelerationStructureKHR-accelerationStructureHostCommands-03582", "The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureHostCommands feature must be enabled", "chapters/accelstructures.html"}, {"VUID-vkCopyAccelerationStructureKHR-buffer-03727", "The buffer used to create pInfo->src must be bound to host-visible device memory", "chapters/accelstructures.html"}, {"VUID-vkCopyAccelerationStructureKHR-buffer-03728", "The buffer used to create pInfo->dst must be bound to host-visible device memory", "chapters/accelstructures.html"}, @@ -18664,6 +18954,10 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkGetCalibratedTimestampsKHR-pTimestamps-parameter", "pTimestamps must be a valid pointer to an array of timestampCount uint64_t values", "chapters/synchronization.html"}, {"VUID-vkGetCalibratedTimestampsKHR-timeDomain-09246", "The timeDomain value of each VkCalibratedTimestampInfoKHR in pTimestampInfos must be unique", "chapters/synchronization.html"}, {"VUID-vkGetCalibratedTimestampsKHR-timestampCount-arraylength", "timestampCount must be greater than 0", "chapters/synchronization.html"}, + {"VUID-vkGetClusterAccelerationStructureBuildSizesNV-clusterAccelerationStructure-10438", "The VkPhysicalDeviceClusterAccelerationStructureFeaturesNV::clusterAccelerationStructure feature must be enabled", "chapters/accelstructures.html"}, + {"VUID-vkGetClusterAccelerationStructureBuildSizesNV-device-parameter", "device must be a valid VkDevice handle", "chapters/accelstructures.html"}, + {"VUID-vkGetClusterAccelerationStructureBuildSizesNV-pInfo-parameter", "pInfo must be a valid pointer to a valid VkClusterAccelerationStructureInputInfoNV structure", "chapters/accelstructures.html"}, + {"VUID-vkGetClusterAccelerationStructureBuildSizesNV-pSizeInfo-parameter", "pSizeInfo must be a valid pointer to a VkAccelerationStructureBuildSizesInfoKHR structure", "chapters/accelstructures.html"}, {"VUID-vkGetCudaModuleCacheNV-device-parameter", "device must be a valid VkDevice handle", "chapters/shaders.html"}, {"VUID-vkGetCudaModuleCacheNV-module-parameter", "module must be a valid VkCudaModuleNV handle", "chapters/shaders.html"}, {"VUID-vkGetCudaModuleCacheNV-module-parent", "module must have been created, allocated, or retrieved from device", "chapters/shaders.html"}, @@ -18992,6 +19286,10 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkGetMicromapBuildSizesEXT-micromap-07439", "The micromap feature must be enabled", "chapters/resources.html"}, {"VUID-vkGetMicromapBuildSizesEXT-pBuildInfo-parameter", "pBuildInfo must be a valid pointer to a valid VkMicromapBuildInfoEXT structure", "chapters/resources.html"}, {"VUID-vkGetMicromapBuildSizesEXT-pSizeInfo-parameter", "pSizeInfo must be a valid pointer to a VkMicromapBuildSizesInfoEXT structure", "chapters/resources.html"}, + {"VUID-vkGetPartitionedAccelerationStructuresBuildSizesNV-device-parameter", "device must be a valid VkDevice handle", "chapters/accelstructures.html"}, + {"VUID-vkGetPartitionedAccelerationStructuresBuildSizesNV-pInfo-parameter", "pInfo must be a valid pointer to a valid VkPartitionedAccelerationStructureInstancesInputNV structure", "chapters/accelstructures.html"}, + {"VUID-vkGetPartitionedAccelerationStructuresBuildSizesNV-pSizeInfo-parameter", "pSizeInfo must be a valid pointer to a VkAccelerationStructureBuildSizesInfoKHR structure", "chapters/accelstructures.html"}, + {"VUID-vkGetPartitionedAccelerationStructuresBuildSizesNV-partitionedAccelerationStructure-10534", "The VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV::partitionedAccelerationStructure feature must be enabled", "chapters/accelstructures.html"}, {"VUID-vkGetPastPresentationTimingGOOGLE-device-parameter", "device must be a valid VkDevice handle", "chapters/VK_KHR_surface/wsi.html"}, {"VUID-vkGetPastPresentationTimingGOOGLE-pPresentationTimingCount-parameter", "pPresentationTimingCount must be a valid pointer to a uint32_t value", "chapters/VK_KHR_surface/wsi.html"}, {"VUID-vkGetPastPresentationTimingGOOGLE-pPresentationTimings-parameter", "If the value referenced by pPresentationTimingCount is not 0, and pPresentationTimings is not NULL, pPresentationTimings must be a valid pointer to an array of pPresentationTimingCount VkPastPresentationTimingGOOGLE structures", "chapters/VK_KHR_surface/wsi.html"}, @@ -19012,6 +19310,9 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesNV-pProperties-parameter", "If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkCooperativeMatrixPropertiesNV structures", "chapters/shaders.html"}, {"VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesNV-pPropertyCount-parameter", "pPropertyCount must be a valid pointer to a uint32_t value", "chapters/shaders.html"}, {"VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesNV-physicalDevice-parameter", "physicalDevice must be a valid VkPhysicalDevice handle", "chapters/shaders.html"}, + {"VUID-vkGetPhysicalDeviceCooperativeVectorPropertiesNV-pProperties-parameter", "If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkCooperativeVectorPropertiesNV structures", "chapters/shaders.html"}, + {"VUID-vkGetPhysicalDeviceCooperativeVectorPropertiesNV-pPropertyCount-parameter", "pPropertyCount must be a valid pointer to a uint32_t value", "chapters/shaders.html"}, + {"VUID-vkGetPhysicalDeviceCooperativeVectorPropertiesNV-physicalDevice-parameter", "physicalDevice must be a valid VkPhysicalDevice handle", "chapters/shaders.html"}, {"VUID-vkGetPhysicalDeviceDirectFBPresentationSupportEXT-dfb-parameter", "dfb must be a valid pointer to an IDirectFB value", "chapters/VK_KHR_surface/wsi.html"}, {"VUID-vkGetPhysicalDeviceDirectFBPresentationSupportEXT-physicalDevice-parameter", "physicalDevice must be a valid VkPhysicalDevice handle", "chapters/VK_KHR_surface/wsi.html"}, {"VUID-vkGetPhysicalDeviceDirectFBPresentationSupportEXT-queueFamilyIndex-04119", "queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice", "chapters/VK_KHR_surface/wsi.html"}, diff --git a/scripts/generators/command_validation_generator.py b/scripts/generators/command_validation_generator.py index 75f0866beb7..b1164bcd63f 100644 --- a/scripts/generators/command_validation_generator.py +++ b/scripts/generators/command_validation_generator.py @@ -1,6 +1,6 @@ #!/usr/bin/python3 -i # -# Copyright (c) 2021-2024 The Khronos Group Inc. +# Copyright (c) 2021-2025 The Khronos Group Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -34,8 +34,8 @@ def generate(self): /*************************************************************************** * - * Copyright (c) 2021-2024 Valve Corporation - * Copyright (c) 2021-2024 LunarG, Inc. + * Copyright (c) 2021-2025 Valve Corporation + * Copyright (c) 2021-2025 LunarG, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/scripts/known_good.json b/scripts/known_good.json index 4dc0afb2c93..9ead761c3c7 100644 --- a/scripts/known_good.json +++ b/scripts/known_good.json @@ -7,7 +7,7 @@ "sub_dir": "Vulkan-Headers", "build_dir": "Vulkan-Headers/build", "install_dir": "Vulkan-Headers/build/install", - "commit": "v1.4.306" + "commit": "v1.4.307" }, { "name": "Vulkan-Utility-Libraries", @@ -15,7 +15,7 @@ "sub_dir": "Vulkan-Utility-Libraries", "build_dir": "Vulkan-Utility-Libraries/build", "install_dir": "Vulkan-Utility-Libraries/build/install", - "commit": "v1.4.306", + "commit": "v1.4.307", "deps": [ { "var_name": "VULKAN_HEADERS_INSTALL_DIR", @@ -110,7 +110,7 @@ "sub_dir": "Vulkan-Loader", "build_dir": "Vulkan-Loader/build", "install_dir": "Vulkan-Loader/build/install", - "commit": "v1.4.306", + "commit": "v1.4.307", "build_step": "skip", "optional": [ "tests" @@ -136,7 +136,7 @@ "sub_dir": "Vulkan-Tools", "build_dir": "Vulkan-Tools/build", "install_dir": "Vulkan-Tools/build/install", - "commit": "v1.4.306", + "commit": "v1.4.307", "build_step": "skip", "optional": [ "tests" diff --git a/tests/layers/VkLayer_device_profile_api.json.in b/tests/layers/VkLayer_device_profile_api.json.in index 32f9fcc6a7e..04a09014a16 100644 --- a/tests/layers/VkLayer_device_profile_api.json.in +++ b/tests/layers/VkLayer_device_profile_api.json.in @@ -4,7 +4,7 @@ "name": "VK_LAYER_LUNARG_device_profile_api", "type": "GLOBAL", "library_path": "@JSON_LIBRARY_PATH@", - "api_version": "1.4.306", + "api_version": "1.4.307", "implementation_version": "2", "description": "LunarG Device Profile Api Layer", "device_extensions": [