File vulkan-validationlayers_PR6182.patch of Package vulkan-validationlayers
From 65ba950a8acc162b7cd19f269f6400a3ffd68d47 Mon Sep 17 00:00:00 2001
From: Mike Schuchardt <mikes@lunarg.com>
Date: Fri, 21 Jul 2023 14:20:38 -0700
Subject: [PATCH] build: Update to header 1.3.258
- Update known-good, include shader toolchain for upcoming SDK
- Generate source
---
build-android/known_good.json | 10 +-
layers/VkLayer_khronos_validation.json.in | 2 +-
layers/vulkan/generated/best_practices.cpp | 41 +
layers/vulkan/generated/best_practices.h | 21 +
layers/vulkan/generated/chassis.cpp | 210 ++-
layers/vulkan/generated/chassis.h | 70 +-
.../generated/chassis_dispatch_helper.h | 54 +-
.../vulkan/generated/command_validation.cpp | 5 +
layers/vulkan/generated/command_validation.h | 96 +-
layers/vulkan/generated/enum_flag_bits.h | 7 +-
.../generated/layer_chassis_dispatch.cpp | 176 ++-
.../vulkan/generated/layer_chassis_dispatch.h | 34 +-
layers/vulkan/generated/object_tracker.cpp | 114 +-
layers/vulkan/generated/object_tracker.h | 34 +-
.../vulkan/generated/spirv_tools_commit_id.h | 2 +-
.../generated/stateless_validation_helper.cpp | 328 ++++-
.../generated/stateless_validation_helper.h | 34 +-
layers/vulkan/generated/thread_safety.cpp | 135 +-
.../vulkan/generated/thread_safety_commands.h | 91 +-
layers/vulkan/generated/valid_enum_values.cpp | 1 +
.../generated/vk_dispatch_table_helper.h | 36 +-
.../vulkan/generated/vk_enum_string_helper.h | 59 +
layers/vulkan/generated/vk_extension_helper.h | 10 +
.../vulkan/generated/vk_function_pointers.cpp | 34 +-
.../vulkan/generated/vk_function_pointers.h | 9 +-
.../generated/vk_layer_dispatch_table.h | 9 +-
layers/vulkan/generated/vk_safe_struct.h | 293 ++++-
.../vulkan/generated/vk_safe_struct_ext.cpp | 1151 +++++++++++++++--
.../vulkan/generated/vk_safe_struct_utils.cpp | 30 +
.../generated/vk_safe_struct_vendor.cpp | 198 +++
layers/vulkan/generated/vk_typemap_helper.h | 153 ++-
.../generated/vk_validation_error_messages.h | 402 ++++--
scripts/known_good.json | 8 +-
.../layers/VkLayer_device_profile_api.json.in | 2 +-
34 files changed, 3364 insertions(+), 495 deletions(-)
diff --git a/build-android/known_good.json b/build-android/known_good.json
index accfd71432b..99e419856b8 100755
--- a/build-android/known_good.json
+++ b/build-android/known_good.json
@@ -4,31 +4,31 @@
"name": "shaderc",
"url": "https://github.com/google/shaderc.git",
"sub_dir": "shaderc",
- "commit": "45b735dfddefe26a99b77e5a74e30d860713ac64"
+ "commit": "5b892551dd02bbf8704adbc3fcde2fd645f333b2"
},
{
"name": "glslang",
"url": "https://github.com/KhronosGroup/glslang.git",
"sub_dir": "shaderc/third_party/glslang",
- "commit": "d1517d64cfca91f573af1bf7341dc3a5113349c0"
+ "commit": "4f3ae4b03dc3556f96f55467e139f852831199d0"
},
{
"name": "Vulkan-Headers",
"url": "https://github.com/KhronosGroup/Vulkan-Headers.git",
"sub_dir": "Vulkan-Headers",
- "commit": "v1.3.257"
+ "commit": "v1.3.258"
},
{
"name": "SPIRV-Tools",
"url": "https://github.com/KhronosGroup/SPIRV-Tools.git",
"sub_dir": "shaderc/third_party/spirv-tools",
- "commit": "04cdb2d344706052c7a2d359294e830ebac63e74"
+ "commit": "4b6bd5a665ba0529747af3a0bc808732b7e78f48"
},
{
"name": "SPIRV-Headers",
"url": "https://github.com/KhronosGroup/SPIRV-Headers.git",
"sub_dir": "shaderc/third_party/spirv-tools/external/spirv-headers",
- "commit": "3469b164e25cee24435029a569933cb42578db5d"
+ "commit": "f1ba373ef03752ee9f6f2b898bea1213f93e1ef2"
},
{
"name": "robin-hood-hashing",
diff --git a/layers/VkLayer_khronos_validation.json.in b/layers/VkLayer_khronos_validation.json.in
index d56708b50f6..03346f09748 100644
--- a/layers/VkLayer_khronos_validation.json.in
+++ b/layers/VkLayer_khronos_validation.json.in
@@ -4,7 +4,7 @@
"name": "VK_LAYER_KHRONOS_validation",
"type": "GLOBAL",
"library_path": "@JSON_LIBRARY_PATH@",
- "api_version": "1.3.257",
+ "api_version": "1.3.258",
"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 Valiation Layer can be enabled to assist development by enabling developers to verify their applications correctly use the Vulkan API.",
diff --git a/layers/vulkan/generated/best_practices.cpp b/layers/vulkan/generated/best_practices.cpp
index 1fc11016666..2c21c455783 100644
--- a/layers/vulkan/generated/best_practices.cpp
+++ b/layers/vulkan/generated/best_practices.cpp
@@ -2584,6 +2584,47 @@ void BestPractices::PostCallRecordCreateHeadlessSurfaceEXT(
}
}
+void BestPractices::PostCallRecordCopyMemoryToImageEXT(
+ VkDevice device,
+ const VkCopyMemoryToImageInfoEXT* pCopyMemoryToImageInfo,
+ VkResult result) {
+ ValidationStateTracker::PostCallRecordCopyMemoryToImageEXT(device, pCopyMemoryToImageInfo, result);
+ if (result < VK_SUCCESS) {
+ LogErrorCode("vkCopyMemoryToImageEXT", result); // VK_ERROR_INITIALIZATION_FAILED, VK_ERROR_OUT_OF_HOST_MEMORY, VK_ERROR_OUT_OF_DEVICE_MEMORY, VK_ERROR_MEMORY_MAP_FAILED
+ }
+}
+
+void BestPractices::PostCallRecordCopyImageToMemoryEXT(
+ VkDevice device,
+ const VkCopyImageToMemoryInfoEXT* pCopyImageToMemoryInfo,
+ VkResult result) {
+ ValidationStateTracker::PostCallRecordCopyImageToMemoryEXT(device, pCopyImageToMemoryInfo, result);
+ if (result < VK_SUCCESS) {
+ LogErrorCode("vkCopyImageToMemoryEXT", result); // VK_ERROR_INITIALIZATION_FAILED, VK_ERROR_OUT_OF_HOST_MEMORY, VK_ERROR_OUT_OF_DEVICE_MEMORY, VK_ERROR_MEMORY_MAP_FAILED
+ }
+}
+
+void BestPractices::PostCallRecordCopyImageToImageEXT(
+ VkDevice device,
+ const VkCopyImageToImageInfoEXT* pCopyImageToImageInfo,
+ VkResult result) {
+ ValidationStateTracker::PostCallRecordCopyImageToImageEXT(device, pCopyImageToImageInfo, result);
+ if (result < VK_SUCCESS) {
+ LogErrorCode("vkCopyImageToImageEXT", result); // VK_ERROR_INITIALIZATION_FAILED, VK_ERROR_OUT_OF_HOST_MEMORY, VK_ERROR_OUT_OF_DEVICE_MEMORY, VK_ERROR_MEMORY_MAP_FAILED
+ }
+}
+
+void BestPractices::PostCallRecordTransitionImageLayoutEXT(
+ VkDevice device,
+ uint32_t transitionCount,
+ const VkHostImageLayoutTransitionInfoEXT* pTransitions,
+ VkResult result) {
+ ValidationStateTracker::PostCallRecordTransitionImageLayoutEXT(device, transitionCount, pTransitions, result);
+ if (result < VK_SUCCESS) {
+ LogErrorCode("vkTransitionImageLayoutEXT", result); // VK_ERROR_INITIALIZATION_FAILED, VK_ERROR_OUT_OF_HOST_MEMORY, VK_ERROR_OUT_OF_DEVICE_MEMORY, VK_ERROR_MEMORY_MAP_FAILED
+ }
+}
+
void BestPractices::PostCallRecordReleaseSwapchainImagesEXT(
VkDevice device,
const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo,
diff --git a/layers/vulkan/generated/best_practices.h b/layers/vulkan/generated/best_practices.h
index 02ddeda336c..f33e5be5f71 100644
--- a/layers/vulkan/generated/best_practices.h
+++ b/layers/vulkan/generated/best_practices.h
@@ -1374,6 +1374,27 @@ void PostCallRecordCreateHeadlessSurfaceEXT(
VkSurfaceKHR* pSurface,
VkResult result) override;
+void PostCallRecordCopyMemoryToImageEXT(
+ VkDevice device,
+ const VkCopyMemoryToImageInfoEXT* pCopyMemoryToImageInfo,
+ VkResult result) override;
+
+void PostCallRecordCopyImageToMemoryEXT(
+ VkDevice device,
+ const VkCopyImageToMemoryInfoEXT* pCopyImageToMemoryInfo,
+ VkResult result) override;
+
+void PostCallRecordCopyImageToImageEXT(
+ VkDevice device,
+ const VkCopyImageToImageInfoEXT* pCopyImageToImageInfo,
+ VkResult result) override;
+
+void PostCallRecordTransitionImageLayoutEXT(
+ VkDevice device,
+ uint32_t transitionCount,
+ const VkHostImageLayoutTransitionInfoEXT* pTransitions,
+ VkResult result) override;
+
void PostCallRecordReleaseSwapchainImagesEXT(
VkDevice device,
const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo,
diff --git a/layers/vulkan/generated/chassis.cpp b/layers/vulkan/generated/chassis.cpp
index a6078214ae2..eee5572b1d6 100644
--- a/layers/vulkan/generated/chassis.cpp
+++ b/layers/vulkan/generated/chassis.cpp
@@ -11682,6 +11682,118 @@ VKAPI_ATTR void VKAPI_CALL CmdSetStencilOpEXT(
}
}
+VKAPI_ATTR VkResult VKAPI_CALL CopyMemoryToImageEXT(
+ VkDevice device,
+ const VkCopyMemoryToImageInfoEXT* pCopyMemoryToImageInfo) {
+ auto layer_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map);
+ bool skip = false;
+ for (const ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPreCallValidateCopyMemoryToImageEXT]) {
+ auto lock = intercept->ReadLock();
+ skip |= intercept->PreCallValidateCopyMemoryToImageEXT(device, pCopyMemoryToImageInfo);
+ if (skip) return VK_ERROR_VALIDATION_FAILED_EXT;
+ }
+ for (ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPreCallRecordCopyMemoryToImageEXT]) {
+ auto lock = intercept->WriteLock();
+ intercept->PreCallRecordCopyMemoryToImageEXT(device, pCopyMemoryToImageInfo);
+ }
+ VkResult result = DispatchCopyMemoryToImageEXT(device, pCopyMemoryToImageInfo);
+ for (ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPostCallRecordCopyMemoryToImageEXT]) {
+ auto lock = intercept->WriteLock();
+ intercept->PostCallRecordCopyMemoryToImageEXT(device, pCopyMemoryToImageInfo, result);
+ }
+ return result;
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL CopyImageToMemoryEXT(
+ VkDevice device,
+ const VkCopyImageToMemoryInfoEXT* pCopyImageToMemoryInfo) {
+ auto layer_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map);
+ bool skip = false;
+ for (const ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPreCallValidateCopyImageToMemoryEXT]) {
+ auto lock = intercept->ReadLock();
+ skip |= intercept->PreCallValidateCopyImageToMemoryEXT(device, pCopyImageToMemoryInfo);
+ if (skip) return VK_ERROR_VALIDATION_FAILED_EXT;
+ }
+ for (ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPreCallRecordCopyImageToMemoryEXT]) {
+ auto lock = intercept->WriteLock();
+ intercept->PreCallRecordCopyImageToMemoryEXT(device, pCopyImageToMemoryInfo);
+ }
+ VkResult result = DispatchCopyImageToMemoryEXT(device, pCopyImageToMemoryInfo);
+ for (ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPostCallRecordCopyImageToMemoryEXT]) {
+ auto lock = intercept->WriteLock();
+ intercept->PostCallRecordCopyImageToMemoryEXT(device, pCopyImageToMemoryInfo, result);
+ }
+ return result;
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL CopyImageToImageEXT(
+ VkDevice device,
+ const VkCopyImageToImageInfoEXT* pCopyImageToImageInfo) {
+ auto layer_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map);
+ bool skip = false;
+ for (const ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPreCallValidateCopyImageToImageEXT]) {
+ auto lock = intercept->ReadLock();
+ skip |= intercept->PreCallValidateCopyImageToImageEXT(device, pCopyImageToImageInfo);
+ if (skip) return VK_ERROR_VALIDATION_FAILED_EXT;
+ }
+ for (ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPreCallRecordCopyImageToImageEXT]) {
+ auto lock = intercept->WriteLock();
+ intercept->PreCallRecordCopyImageToImageEXT(device, pCopyImageToImageInfo);
+ }
+ VkResult result = DispatchCopyImageToImageEXT(device, pCopyImageToImageInfo);
+ for (ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPostCallRecordCopyImageToImageEXT]) {
+ auto lock = intercept->WriteLock();
+ intercept->PostCallRecordCopyImageToImageEXT(device, pCopyImageToImageInfo, result);
+ }
+ return result;
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL TransitionImageLayoutEXT(
+ VkDevice device,
+ uint32_t transitionCount,
+ const VkHostImageLayoutTransitionInfoEXT* pTransitions) {
+ auto layer_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map);
+ bool skip = false;
+ for (const ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPreCallValidateTransitionImageLayoutEXT]) {
+ auto lock = intercept->ReadLock();
+ skip |= intercept->PreCallValidateTransitionImageLayoutEXT(device, transitionCount, pTransitions);
+ if (skip) return VK_ERROR_VALIDATION_FAILED_EXT;
+ }
+ for (ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPreCallRecordTransitionImageLayoutEXT]) {
+ auto lock = intercept->WriteLock();
+ intercept->PreCallRecordTransitionImageLayoutEXT(device, transitionCount, pTransitions);
+ }
+ VkResult result = DispatchTransitionImageLayoutEXT(device, transitionCount, pTransitions);
+ for (ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPostCallRecordTransitionImageLayoutEXT]) {
+ auto lock = intercept->WriteLock();
+ intercept->PostCallRecordTransitionImageLayoutEXT(device, transitionCount, pTransitions, result);
+ }
+ return result;
+}
+
+VKAPI_ATTR void VKAPI_CALL GetImageSubresourceLayout2EXT(
+ VkDevice device,
+ VkImage image,
+ const VkImageSubresource2EXT* pSubresource,
+ VkSubresourceLayout2EXT* pLayout) {
+ auto layer_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map);
+ bool skip = false;
+ for (const ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPreCallValidateGetImageSubresourceLayout2EXT]) {
+ auto lock = intercept->ReadLock();
+ skip |= intercept->PreCallValidateGetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout);
+ if (skip) return;
+ }
+ for (ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPreCallRecordGetImageSubresourceLayout2EXT]) {
+ auto lock = intercept->WriteLock();
+ intercept->PreCallRecordGetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout);
+ }
+ DispatchGetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout);
+ for (ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPostCallRecordGetImageSubresourceLayout2EXT]) {
+ auto lock = intercept->WriteLock();
+ intercept->PostCallRecordGetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout);
+ }
+}
+
VKAPI_ATTR VkResult VKAPI_CALL ReleaseSwapchainImagesEXT(
VkDevice device,
const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo) {
@@ -12300,29 +12412,6 @@ VKAPI_ATTR void VKAPI_CALL CmdSetFragmentShadingRateEnumNV(
}
}
-VKAPI_ATTR void VKAPI_CALL GetImageSubresourceLayout2EXT(
- VkDevice device,
- VkImage image,
- const VkImageSubresource2EXT* pSubresource,
- VkSubresourceLayout2EXT* pLayout) {
- auto layer_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map);
- bool skip = false;
- for (const ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPreCallValidateGetImageSubresourceLayout2EXT]) {
- auto lock = intercept->ReadLock();
- skip |= intercept->PreCallValidateGetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout);
- if (skip) return;
- }
- for (ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPreCallRecordGetImageSubresourceLayout2EXT]) {
- auto lock = intercept->WriteLock();
- intercept->PreCallRecordGetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout);
- }
- DispatchGetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout);
- for (ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPostCallRecordGetImageSubresourceLayout2EXT]) {
- auto lock = intercept->WriteLock();
- intercept->PostCallRecordGetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout);
- }
-}
-
VKAPI_ATTR VkResult VKAPI_CALL GetDeviceFaultInfoEXT(
VkDevice device,
VkDeviceFaultCountsEXT* pFaultCounts,
@@ -13561,6 +13650,72 @@ VKAPI_ATTR void VKAPI_CALL CmdDecompressMemoryIndirectCountNV(
}
}
+VKAPI_ATTR void VKAPI_CALL GetPipelineIndirectMemoryRequirementsNV(
+ VkDevice device,
+ const VkComputePipelineCreateInfo* pCreateInfo,
+ VkMemoryRequirements2* pMemoryRequirements) {
+ auto layer_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map);
+ bool skip = false;
+ for (const ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPreCallValidateGetPipelineIndirectMemoryRequirementsNV]) {
+ auto lock = intercept->ReadLock();
+ skip |= intercept->PreCallValidateGetPipelineIndirectMemoryRequirementsNV(device, pCreateInfo, pMemoryRequirements);
+ if (skip) return;
+ }
+ for (ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPreCallRecordGetPipelineIndirectMemoryRequirementsNV]) {
+ auto lock = intercept->WriteLock();
+ intercept->PreCallRecordGetPipelineIndirectMemoryRequirementsNV(device, pCreateInfo, pMemoryRequirements);
+ }
+ DispatchGetPipelineIndirectMemoryRequirementsNV(device, pCreateInfo, pMemoryRequirements);
+ for (ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPostCallRecordGetPipelineIndirectMemoryRequirementsNV]) {
+ auto lock = intercept->WriteLock();
+ intercept->PostCallRecordGetPipelineIndirectMemoryRequirementsNV(device, pCreateInfo, pMemoryRequirements);
+ }
+}
+
+VKAPI_ATTR void VKAPI_CALL CmdUpdatePipelineIndirectBuffer(
+ VkCommandBuffer commandBuffer,
+ VkPipelineBindPoint pipelineBindPoint,
+ VkPipeline pipeline) {
+ auto layer_data = GetLayerDataPtr(get_dispatch_key(commandBuffer), layer_data_map);
+ bool skip = false;
+ for (const ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPreCallValidateCmdUpdatePipelineIndirectBuffer]) {
+ auto lock = intercept->ReadLock();
+ skip |= intercept->PreCallValidateCmdUpdatePipelineIndirectBuffer(commandBuffer, pipelineBindPoint, pipeline);
+ if (skip) return;
+ }
+ for (ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPreCallRecordCmdUpdatePipelineIndirectBuffer]) {
+ auto lock = intercept->WriteLock();
+ intercept->PreCallRecordCmdUpdatePipelineIndirectBuffer(commandBuffer, pipelineBindPoint, pipeline);
+ }
+ DispatchCmdUpdatePipelineIndirectBuffer(commandBuffer, pipelineBindPoint, pipeline);
+ for (ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPostCallRecordCmdUpdatePipelineIndirectBuffer]) {
+ auto lock = intercept->WriteLock();
+ intercept->PostCallRecordCmdUpdatePipelineIndirectBuffer(commandBuffer, pipelineBindPoint, pipeline);
+ }
+}
+
+VKAPI_ATTR VkDeviceAddress VKAPI_CALL GetPipelineIndirectDeviceAddressNV(
+ VkDevice device,
+ const VkPipelineIndirectDeviceAddressInfoNV* pInfo) {
+ auto layer_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map);
+ bool skip = false;
+ for (const ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPreCallValidateGetPipelineIndirectDeviceAddressNV]) {
+ auto lock = intercept->ReadLock();
+ skip |= intercept->PreCallValidateGetPipelineIndirectDeviceAddressNV(device, pInfo);
+ if (skip) return 0;
+ }
+ for (ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPreCallRecordGetPipelineIndirectDeviceAddressNV]) {
+ auto lock = intercept->WriteLock();
+ intercept->PreCallRecordGetPipelineIndirectDeviceAddressNV(device, pInfo);
+ }
+ VkDeviceAddress result = DispatchGetPipelineIndirectDeviceAddressNV(device, pInfo);
+ for (ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPostCallRecordGetPipelineIndirectDeviceAddressNV]) {
+ auto lock = intercept->WriteLock();
+ intercept->PostCallRecordGetPipelineIndirectDeviceAddressNV(device, pInfo, result);
+ }
+ return result;
+}
+
VKAPI_ATTR void VKAPI_CALL CmdSetTessellationDomainOriginEXT(
VkCommandBuffer commandBuffer,
VkTessellationDomainOrigin domainOrigin) {
@@ -15699,6 +15854,11 @@ const vvl::unordered_map<std::string, function_data> name_to_funcptr_map = {
{"vkCmdSetDepthBoundsTestEnableEXT", {kFuncTypeDev, (void*)CmdSetDepthBoundsTestEnableEXT}},
{"vkCmdSetStencilTestEnableEXT", {kFuncTypeDev, (void*)CmdSetStencilTestEnableEXT}},
{"vkCmdSetStencilOpEXT", {kFuncTypeDev, (void*)CmdSetStencilOpEXT}},
+ {"vkCopyMemoryToImageEXT", {kFuncTypeDev, (void*)CopyMemoryToImageEXT}},
+ {"vkCopyImageToMemoryEXT", {kFuncTypeDev, (void*)CopyImageToMemoryEXT}},
+ {"vkCopyImageToImageEXT", {kFuncTypeDev, (void*)CopyImageToImageEXT}},
+ {"vkTransitionImageLayoutEXT", {kFuncTypeDev, (void*)TransitionImageLayoutEXT}},
+ {"vkGetImageSubresourceLayout2EXT", {kFuncTypeDev, (void*)GetImageSubresourceLayout2EXT}},
{"vkReleaseSwapchainImagesEXT", {kFuncTypeDev, (void*)ReleaseSwapchainImagesEXT}},
{"vkGetGeneratedCommandsMemoryRequirementsNV", {kFuncTypeDev, (void*)GetGeneratedCommandsMemoryRequirementsNV}},
{"vkCmdPreprocessGeneratedCommandsNV", {kFuncTypeDev, (void*)CmdPreprocessGeneratedCommandsNV}},
@@ -15728,7 +15888,6 @@ const vvl::unordered_map<std::string, function_data> name_to_funcptr_map = {
{"vkGetSamplerOpaqueCaptureDescriptorDataEXT", {kFuncTypeDev, (void*)GetSamplerOpaqueCaptureDescriptorDataEXT}},
{"vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT", {kFuncTypeDev, (void*)GetAccelerationStructureOpaqueCaptureDescriptorDataEXT}},
{"vkCmdSetFragmentShadingRateEnumNV", {kFuncTypeDev, (void*)CmdSetFragmentShadingRateEnumNV}},
- {"vkGetImageSubresourceLayout2EXT", {kFuncTypeDev, (void*)GetImageSubresourceLayout2EXT}},
{"vkGetDeviceFaultInfoEXT", {kFuncTypeDev, (void*)GetDeviceFaultInfoEXT}},
#ifdef VK_USE_PLATFORM_WIN32_KHR
{"vkAcquireWinrtDisplayNV", {kFuncTypePdev, (void*)AcquireWinrtDisplayNV}},
@@ -15812,6 +15971,9 @@ const vvl::unordered_map<std::string, function_data> name_to_funcptr_map = {
{"vkCmdCopyMemoryToImageIndirectNV", {kFuncTypeDev, (void*)CmdCopyMemoryToImageIndirectNV}},
{"vkCmdDecompressMemoryNV", {kFuncTypeDev, (void*)CmdDecompressMemoryNV}},
{"vkCmdDecompressMemoryIndirectCountNV", {kFuncTypeDev, (void*)CmdDecompressMemoryIndirectCountNV}},
+ {"vkGetPipelineIndirectMemoryRequirementsNV", {kFuncTypeDev, (void*)GetPipelineIndirectMemoryRequirementsNV}},
+ {"vkCmdUpdatePipelineIndirectBuffer", {kFuncTypeDev, (void*)CmdUpdatePipelineIndirectBuffer}},
+ {"vkGetPipelineIndirectDeviceAddressNV", {kFuncTypeDev, (void*)GetPipelineIndirectDeviceAddressNV}},
{"vkCmdSetTessellationDomainOriginEXT", {kFuncTypeDev, (void*)CmdSetTessellationDomainOriginEXT}},
{"vkCmdSetDepthClampEnableEXT", {kFuncTypeDev, (void*)CmdSetDepthClampEnableEXT}},
{"vkCmdSetPolygonModeEXT", {kFuncTypeDev, (void*)CmdSetPolygonModeEXT}},
diff --git a/layers/vulkan/generated/chassis.h b/layers/vulkan/generated/chassis.h
index 5d8087cdfbb..63b5e654723 100644
--- a/layers/vulkan/generated/chassis.h
+++ b/layers/vulkan/generated/chassis.h
@@ -2798,6 +2798,29 @@ VKAPI_ATTR void VKAPI_CALL CmdSetStencilOpEXT(
VkStencilOp depthFailOp,
VkCompareOp compareOp);
+VKAPI_ATTR VkResult VKAPI_CALL CopyMemoryToImageEXT(
+ VkDevice device,
+ const VkCopyMemoryToImageInfoEXT* pCopyMemoryToImageInfo);
+
+VKAPI_ATTR VkResult VKAPI_CALL CopyImageToMemoryEXT(
+ VkDevice device,
+ const VkCopyImageToMemoryInfoEXT* pCopyImageToMemoryInfo);
+
+VKAPI_ATTR VkResult VKAPI_CALL CopyImageToImageEXT(
+ VkDevice device,
+ const VkCopyImageToImageInfoEXT* pCopyImageToImageInfo);
+
+VKAPI_ATTR VkResult VKAPI_CALL TransitionImageLayoutEXT(
+ VkDevice device,
+ uint32_t transitionCount,
+ const VkHostImageLayoutTransitionInfoEXT* pTransitions);
+
+VKAPI_ATTR void VKAPI_CALL GetImageSubresourceLayout2EXT(
+ VkDevice device,
+ VkImage image,
+ const VkImageSubresource2EXT* pSubresource,
+ VkSubresourceLayout2EXT* pLayout);
+
VKAPI_ATTR VkResult VKAPI_CALL ReleaseSwapchainImagesEXT(
VkDevice device,
const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo);
@@ -2946,12 +2969,6 @@ VKAPI_ATTR void VKAPI_CALL CmdSetFragmentShadingRateEnumNV(
VkFragmentShadingRateNV shadingRate,
const VkFragmentShadingRateCombinerOpKHR combinerOps[2]);
-VKAPI_ATTR void VKAPI_CALL GetImageSubresourceLayout2EXT(
- VkDevice device,
- VkImage image,
- const VkImageSubresource2EXT* pSubresource,
- VkSubresourceLayout2EXT* pLayout);
-
VKAPI_ATTR VkResult VKAPI_CALL GetDeviceFaultInfoEXT(
VkDevice device,
VkDeviceFaultCountsEXT* pFaultCounts,
@@ -3265,6 +3282,20 @@ VKAPI_ATTR void VKAPI_CALL CmdDecompressMemoryIndirectCountNV(
VkDeviceAddress indirectCommandsCountAddress,
uint32_t stride);
+VKAPI_ATTR void VKAPI_CALL GetPipelineIndirectMemoryRequirementsNV(
+ VkDevice device,
+ const VkComputePipelineCreateInfo* pCreateInfo,
+ VkMemoryRequirements2* pMemoryRequirements);
+
+VKAPI_ATTR void VKAPI_CALL CmdUpdatePipelineIndirectBuffer(
+ VkCommandBuffer commandBuffer,
+ VkPipelineBindPoint pipelineBindPoint,
+ VkPipeline pipeline);
+
+VKAPI_ATTR VkDeviceAddress VKAPI_CALL GetPipelineIndirectDeviceAddressNV(
+ VkDevice device,
+ const VkPipelineIndirectDeviceAddressInfoNV* pInfo);
+
VKAPI_ATTR void VKAPI_CALL CmdSetTessellationDomainOriginEXT(
VkCommandBuffer commandBuffer,
VkTessellationDomainOrigin domainOrigin);
@@ -5452,6 +5483,21 @@ class ValidationObject {
virtual bool PreCallValidateCmdSetStencilOpEXT(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp) const { return false; };
virtual void PreCallRecordCmdSetStencilOpEXT(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp) {};
virtual void PostCallRecordCmdSetStencilOpEXT(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp) {};
+ virtual bool PreCallValidateCopyMemoryToImageEXT(VkDevice device, const VkCopyMemoryToImageInfoEXT* pCopyMemoryToImageInfo) const { return false; };
+ virtual void PreCallRecordCopyMemoryToImageEXT(VkDevice device, const VkCopyMemoryToImageInfoEXT* pCopyMemoryToImageInfo) {};
+ virtual void PostCallRecordCopyMemoryToImageEXT(VkDevice device, const VkCopyMemoryToImageInfoEXT* pCopyMemoryToImageInfo, VkResult result) {};
+ virtual bool PreCallValidateCopyImageToMemoryEXT(VkDevice device, const VkCopyImageToMemoryInfoEXT* pCopyImageToMemoryInfo) const { return false; };
+ virtual void PreCallRecordCopyImageToMemoryEXT(VkDevice device, const VkCopyImageToMemoryInfoEXT* pCopyImageToMemoryInfo) {};
+ virtual void PostCallRecordCopyImageToMemoryEXT(VkDevice device, const VkCopyImageToMemoryInfoEXT* pCopyImageToMemoryInfo, VkResult result) {};
+ virtual bool PreCallValidateCopyImageToImageEXT(VkDevice device, const VkCopyImageToImageInfoEXT* pCopyImageToImageInfo) const { return false; };
+ virtual void PreCallRecordCopyImageToImageEXT(VkDevice device, const VkCopyImageToImageInfoEXT* pCopyImageToImageInfo) {};
+ virtual void PostCallRecordCopyImageToImageEXT(VkDevice device, const VkCopyImageToImageInfoEXT* pCopyImageToImageInfo, VkResult result) {};
+ virtual bool PreCallValidateTransitionImageLayoutEXT(VkDevice device, uint32_t transitionCount, const VkHostImageLayoutTransitionInfoEXT* pTransitions) const { return false; };
+ virtual void PreCallRecordTransitionImageLayoutEXT(VkDevice device, uint32_t transitionCount, const VkHostImageLayoutTransitionInfoEXT* pTransitions) {};
+ virtual void PostCallRecordTransitionImageLayoutEXT(VkDevice device, uint32_t transitionCount, const VkHostImageLayoutTransitionInfoEXT* pTransitions, VkResult result) {};
+ virtual bool PreCallValidateGetImageSubresourceLayout2EXT(VkDevice device, VkImage image, const VkImageSubresource2EXT* pSubresource, VkSubresourceLayout2EXT* pLayout) const { return false; };
+ virtual void PreCallRecordGetImageSubresourceLayout2EXT(VkDevice device, VkImage image, const VkImageSubresource2EXT* pSubresource, VkSubresourceLayout2EXT* pLayout) {};
+ virtual void PostCallRecordGetImageSubresourceLayout2EXT(VkDevice device, VkImage image, const VkImageSubresource2EXT* pSubresource, VkSubresourceLayout2EXT* pLayout) {};
virtual bool PreCallValidateReleaseSwapchainImagesEXT(VkDevice device, const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo) const { return false; };
virtual void PreCallRecordReleaseSwapchainImagesEXT(VkDevice device, const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo) {};
virtual void PostCallRecordReleaseSwapchainImagesEXT(VkDevice device, const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo, VkResult result) {};
@@ -5535,9 +5581,6 @@ class ValidationObject {
virtual bool PreCallValidateCmdSetFragmentShadingRateEnumNV(VkCommandBuffer commandBuffer, VkFragmentShadingRateNV shadingRate, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) const { return false; };
virtual void PreCallRecordCmdSetFragmentShadingRateEnumNV(VkCommandBuffer commandBuffer, VkFragmentShadingRateNV shadingRate, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) {};
virtual void PostCallRecordCmdSetFragmentShadingRateEnumNV(VkCommandBuffer commandBuffer, VkFragmentShadingRateNV shadingRate, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) {};
- virtual bool PreCallValidateGetImageSubresourceLayout2EXT(VkDevice device, VkImage image, const VkImageSubresource2EXT* pSubresource, VkSubresourceLayout2EXT* pLayout) const { return false; };
- virtual void PreCallRecordGetImageSubresourceLayout2EXT(VkDevice device, VkImage image, const VkImageSubresource2EXT* pSubresource, VkSubresourceLayout2EXT* pLayout) {};
- virtual void PostCallRecordGetImageSubresourceLayout2EXT(VkDevice device, VkImage image, const VkImageSubresource2EXT* pSubresource, VkSubresourceLayout2EXT* pLayout) {};
virtual bool PreCallValidateGetDeviceFaultInfoEXT(VkDevice device, VkDeviceFaultCountsEXT* pFaultCounts, VkDeviceFaultInfoEXT* pFaultInfo) const { return false; };
virtual void PreCallRecordGetDeviceFaultInfoEXT(VkDevice device, VkDeviceFaultCountsEXT* pFaultCounts, VkDeviceFaultInfoEXT* pFaultInfo) {};
virtual void PostCallRecordGetDeviceFaultInfoEXT(VkDevice device, VkDeviceFaultCountsEXT* pFaultCounts, VkDeviceFaultInfoEXT* pFaultInfo, VkResult result) {};
@@ -5727,6 +5770,15 @@ class ValidationObject {
virtual bool PreCallValidateCmdDecompressMemoryIndirectCountNV(VkCommandBuffer commandBuffer, VkDeviceAddress indirectCommandsAddress, VkDeviceAddress indirectCommandsCountAddress, uint32_t stride) const { return false; };
virtual void PreCallRecordCmdDecompressMemoryIndirectCountNV(VkCommandBuffer commandBuffer, VkDeviceAddress indirectCommandsAddress, VkDeviceAddress indirectCommandsCountAddress, uint32_t stride) {};
virtual void PostCallRecordCmdDecompressMemoryIndirectCountNV(VkCommandBuffer commandBuffer, VkDeviceAddress indirectCommandsAddress, VkDeviceAddress indirectCommandsCountAddress, uint32_t stride) {};
+ virtual bool PreCallValidateGetPipelineIndirectMemoryRequirementsNV(VkDevice device, const VkComputePipelineCreateInfo* pCreateInfo, VkMemoryRequirements2* pMemoryRequirements) const { return false; };
+ virtual void PreCallRecordGetPipelineIndirectMemoryRequirementsNV(VkDevice device, const VkComputePipelineCreateInfo* pCreateInfo, VkMemoryRequirements2* pMemoryRequirements) {};
+ virtual void PostCallRecordGetPipelineIndirectMemoryRequirementsNV(VkDevice device, const VkComputePipelineCreateInfo* pCreateInfo, VkMemoryRequirements2* pMemoryRequirements) {};
+ virtual bool PreCallValidateCmdUpdatePipelineIndirectBuffer(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline) const { return false; };
+ virtual void PreCallRecordCmdUpdatePipelineIndirectBuffer(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline) {};
+ virtual void PostCallRecordCmdUpdatePipelineIndirectBuffer(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline) {};
+ virtual bool PreCallValidateGetPipelineIndirectDeviceAddressNV(VkDevice device, const VkPipelineIndirectDeviceAddressInfoNV* pInfo) const { return false; };
+ virtual void PreCallRecordGetPipelineIndirectDeviceAddressNV(VkDevice device, const VkPipelineIndirectDeviceAddressInfoNV* pInfo) {};
+ virtual void PostCallRecordGetPipelineIndirectDeviceAddressNV(VkDevice device, const VkPipelineIndirectDeviceAddressInfoNV* pInfo, VkDeviceAddress result) {};
virtual bool PreCallValidateCmdSetTessellationDomainOriginEXT(VkCommandBuffer commandBuffer, VkTessellationDomainOrigin domainOrigin) const { return false; };
virtual void PreCallRecordCmdSetTessellationDomainOriginEXT(VkCommandBuffer commandBuffer, VkTessellationDomainOrigin domainOrigin) {};
virtual void PostCallRecordCmdSetTessellationDomainOriginEXT(VkCommandBuffer commandBuffer, VkTessellationDomainOrigin domainOrigin) {};
diff --git a/layers/vulkan/generated/chassis_dispatch_helper.h b/layers/vulkan/generated/chassis_dispatch_helper.h
index f147d8dcf8e..fa7bd272c74 100644
--- a/layers/vulkan/generated/chassis_dispatch_helper.h
+++ b/layers/vulkan/generated/chassis_dispatch_helper.h
@@ -1161,6 +1161,21 @@ typedef enum InterceptId{
InterceptIdPreCallValidateCmdSetStencilOpEXT,
InterceptIdPreCallRecordCmdSetStencilOpEXT,
InterceptIdPostCallRecordCmdSetStencilOpEXT,
+ InterceptIdPreCallValidateCopyMemoryToImageEXT,
+ InterceptIdPreCallRecordCopyMemoryToImageEXT,
+ InterceptIdPostCallRecordCopyMemoryToImageEXT,
+ InterceptIdPreCallValidateCopyImageToMemoryEXT,
+ InterceptIdPreCallRecordCopyImageToMemoryEXT,
+ InterceptIdPostCallRecordCopyImageToMemoryEXT,
+ InterceptIdPreCallValidateCopyImageToImageEXT,
+ InterceptIdPreCallRecordCopyImageToImageEXT,
+ InterceptIdPostCallRecordCopyImageToImageEXT,
+ InterceptIdPreCallValidateTransitionImageLayoutEXT,
+ InterceptIdPreCallRecordTransitionImageLayoutEXT,
+ InterceptIdPostCallRecordTransitionImageLayoutEXT,
+ InterceptIdPreCallValidateGetImageSubresourceLayout2EXT,
+ InterceptIdPreCallRecordGetImageSubresourceLayout2EXT,
+ InterceptIdPostCallRecordGetImageSubresourceLayout2EXT,
InterceptIdPreCallValidateReleaseSwapchainImagesEXT,
InterceptIdPreCallRecordReleaseSwapchainImagesEXT,
InterceptIdPostCallRecordReleaseSwapchainImagesEXT,
@@ -1236,9 +1251,6 @@ typedef enum InterceptId{
InterceptIdPreCallValidateCmdSetFragmentShadingRateEnumNV,
InterceptIdPreCallRecordCmdSetFragmentShadingRateEnumNV,
InterceptIdPostCallRecordCmdSetFragmentShadingRateEnumNV,
- InterceptIdPreCallValidateGetImageSubresourceLayout2EXT,
- InterceptIdPreCallRecordGetImageSubresourceLayout2EXT,
- InterceptIdPostCallRecordGetImageSubresourceLayout2EXT,
InterceptIdPreCallValidateGetDeviceFaultInfoEXT,
InterceptIdPreCallRecordGetDeviceFaultInfoEXT,
InterceptIdPostCallRecordGetDeviceFaultInfoEXT,
@@ -1380,6 +1392,15 @@ typedef enum InterceptId{
InterceptIdPreCallValidateCmdDecompressMemoryIndirectCountNV,
InterceptIdPreCallRecordCmdDecompressMemoryIndirectCountNV,
InterceptIdPostCallRecordCmdDecompressMemoryIndirectCountNV,
+ InterceptIdPreCallValidateGetPipelineIndirectMemoryRequirementsNV,
+ InterceptIdPreCallRecordGetPipelineIndirectMemoryRequirementsNV,
+ InterceptIdPostCallRecordGetPipelineIndirectMemoryRequirementsNV,
+ InterceptIdPreCallValidateCmdUpdatePipelineIndirectBuffer,
+ InterceptIdPreCallRecordCmdUpdatePipelineIndirectBuffer,
+ InterceptIdPostCallRecordCmdUpdatePipelineIndirectBuffer,
+ InterceptIdPreCallValidateGetPipelineIndirectDeviceAddressNV,
+ InterceptIdPreCallRecordGetPipelineIndirectDeviceAddressNV,
+ InterceptIdPostCallRecordGetPipelineIndirectDeviceAddressNV,
InterceptIdPreCallValidateCmdSetTessellationDomainOriginEXT,
InterceptIdPreCallRecordCmdSetTessellationDomainOriginEXT,
InterceptIdPostCallRecordCmdSetTessellationDomainOriginEXT,
@@ -2808,6 +2829,21 @@ void ValidationObject::InitObjectDispatchVectors() {
BUILD_DISPATCH_VECTOR(PreCallValidateCmdSetStencilOpEXT);
BUILD_DISPATCH_VECTOR(PreCallRecordCmdSetStencilOpEXT);
BUILD_DISPATCH_VECTOR(PostCallRecordCmdSetStencilOpEXT);
+ BUILD_DISPATCH_VECTOR(PreCallValidateCopyMemoryToImageEXT);
+ BUILD_DISPATCH_VECTOR(PreCallRecordCopyMemoryToImageEXT);
+ BUILD_DISPATCH_VECTOR(PostCallRecordCopyMemoryToImageEXT);
+ BUILD_DISPATCH_VECTOR(PreCallValidateCopyImageToMemoryEXT);
+ BUILD_DISPATCH_VECTOR(PreCallRecordCopyImageToMemoryEXT);
+ BUILD_DISPATCH_VECTOR(PostCallRecordCopyImageToMemoryEXT);
+ BUILD_DISPATCH_VECTOR(PreCallValidateCopyImageToImageEXT);
+ BUILD_DISPATCH_VECTOR(PreCallRecordCopyImageToImageEXT);
+ BUILD_DISPATCH_VECTOR(PostCallRecordCopyImageToImageEXT);
+ BUILD_DISPATCH_VECTOR(PreCallValidateTransitionImageLayoutEXT);
+ BUILD_DISPATCH_VECTOR(PreCallRecordTransitionImageLayoutEXT);
+ BUILD_DISPATCH_VECTOR(PostCallRecordTransitionImageLayoutEXT);
+ BUILD_DISPATCH_VECTOR(PreCallValidateGetImageSubresourceLayout2EXT);
+ BUILD_DISPATCH_VECTOR(PreCallRecordGetImageSubresourceLayout2EXT);
+ BUILD_DISPATCH_VECTOR(PostCallRecordGetImageSubresourceLayout2EXT);
BUILD_DISPATCH_VECTOR(PreCallValidateReleaseSwapchainImagesEXT);
BUILD_DISPATCH_VECTOR(PreCallRecordReleaseSwapchainImagesEXT);
BUILD_DISPATCH_VECTOR(PostCallRecordReleaseSwapchainImagesEXT);
@@ -2885,9 +2921,6 @@ void ValidationObject::InitObjectDispatchVectors() {
BUILD_DISPATCH_VECTOR(PreCallValidateCmdSetFragmentShadingRateEnumNV);
BUILD_DISPATCH_VECTOR(PreCallRecordCmdSetFragmentShadingRateEnumNV);
BUILD_DISPATCH_VECTOR(PostCallRecordCmdSetFragmentShadingRateEnumNV);
- BUILD_DISPATCH_VECTOR(PreCallValidateGetImageSubresourceLayout2EXT);
- BUILD_DISPATCH_VECTOR(PreCallRecordGetImageSubresourceLayout2EXT);
- BUILD_DISPATCH_VECTOR(PostCallRecordGetImageSubresourceLayout2EXT);
BUILD_DISPATCH_VECTOR(PreCallValidateGetDeviceFaultInfoEXT);
BUILD_DISPATCH_VECTOR(PreCallRecordGetDeviceFaultInfoEXT);
BUILD_DISPATCH_VECTOR(PostCallRecordGetDeviceFaultInfoEXT);
@@ -3047,6 +3080,15 @@ void ValidationObject::InitObjectDispatchVectors() {
BUILD_DISPATCH_VECTOR(PreCallValidateCmdDecompressMemoryIndirectCountNV);
BUILD_DISPATCH_VECTOR(PreCallRecordCmdDecompressMemoryIndirectCountNV);
BUILD_DISPATCH_VECTOR(PostCallRecordCmdDecompressMemoryIndirectCountNV);
+ BUILD_DISPATCH_VECTOR(PreCallValidateGetPipelineIndirectMemoryRequirementsNV);
+ BUILD_DISPATCH_VECTOR(PreCallRecordGetPipelineIndirectMemoryRequirementsNV);
+ BUILD_DISPATCH_VECTOR(PostCallRecordGetPipelineIndirectMemoryRequirementsNV);
+ BUILD_DISPATCH_VECTOR(PreCallValidateCmdUpdatePipelineIndirectBuffer);
+ BUILD_DISPATCH_VECTOR(PreCallRecordCmdUpdatePipelineIndirectBuffer);
+ BUILD_DISPATCH_VECTOR(PostCallRecordCmdUpdatePipelineIndirectBuffer);
+ BUILD_DISPATCH_VECTOR(PreCallValidateGetPipelineIndirectDeviceAddressNV);
+ BUILD_DISPATCH_VECTOR(PreCallRecordGetPipelineIndirectDeviceAddressNV);
+ BUILD_DISPATCH_VECTOR(PostCallRecordGetPipelineIndirectDeviceAddressNV);
BUILD_DISPATCH_VECTOR(PreCallValidateCmdSetTessellationDomainOriginEXT);
BUILD_DISPATCH_VECTOR(PreCallRecordCmdSetTessellationDomainOriginEXT);
BUILD_DISPATCH_VECTOR(PostCallRecordCmdSetTessellationDomainOriginEXT);
diff --git a/layers/vulkan/generated/command_validation.cpp b/layers/vulkan/generated/command_validation.cpp
index 5738b467336..fd600e20c8a 100644
--- a/layers/vulkan/generated/command_validation.cpp
+++ b/layers/vulkan/generated/command_validation.cpp
@@ -216,6 +216,7 @@ static const std::array<const char *, CMD_RANGE_SIZE> kGeneratedMustBeRecordingL
"VUID-vkCmdCopyMemoryToImageIndirectNV-commandBuffer-recording",
"VUID-vkCmdDecompressMemoryNV-commandBuffer-recording",
"VUID-vkCmdDecompressMemoryIndirectCountNV-commandBuffer-recording",
+ "VUID-vkCmdUpdatePipelineIndirectBuffer-commandBuffer-recording",
"VUID-vkCmdSetTessellationDomainOriginEXT-commandBuffer-recording",
"VUID-vkCmdSetDepthClampEnableEXT-commandBuffer-recording",
"VUID-vkCmdSetPolygonModeEXT-commandBuffer-recording",
@@ -461,6 +462,7 @@ static const std::array<CommandSupportedQueueType, CMD_RANGE_SIZE> kGeneratedQue
{VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT | VK_QUEUE_TRANSFER_BIT, "VUID-vkCmdCopyMemoryToImageIndirectNV-commandBuffer-cmdpool"},
{VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT, "VUID-vkCmdDecompressMemoryNV-commandBuffer-cmdpool"},
{VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT, "VUID-vkCmdDecompressMemoryIndirectCountNV-commandBuffer-cmdpool"},
+ {VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT | VK_QUEUE_TRANSFER_BIT, "VUID-vkCmdUpdatePipelineIndirectBuffer-commandBuffer-cmdpool"},
{VK_QUEUE_GRAPHICS_BIT, "VUID-vkCmdSetTessellationDomainOriginEXT-commandBuffer-cmdpool"},
{VK_QUEUE_GRAPHICS_BIT, "VUID-vkCmdSetDepthClampEnableEXT-commandBuffer-cmdpool"},
{VK_QUEUE_GRAPHICS_BIT, "VUID-vkCmdSetPolygonModeEXT-commandBuffer-cmdpool"},
@@ -712,6 +714,7 @@ static const std::array<CommandSupportedRenderPass, CMD_RANGE_SIZE> kGeneratedRe
{CMD_SCOPE_OUTSIDE, "VUID-vkCmdCopyMemoryToImageIndirectNV-renderpass"},
{CMD_SCOPE_OUTSIDE, "VUID-vkCmdDecompressMemoryNV-renderpass"},
{CMD_SCOPE_OUTSIDE, "VUID-vkCmdDecompressMemoryIndirectCountNV-renderpass"},
+ {CMD_SCOPE_OUTSIDE, "VUID-vkCmdUpdatePipelineIndirectBuffer-renderpass"},
{CMD_SCOPE_BOTH, kVUIDUndefined},
{CMD_SCOPE_BOTH, kVUIDUndefined},
{CMD_SCOPE_BOTH, kVUIDUndefined},
@@ -957,6 +960,7 @@ static const std::array<CommandSupportedVideoCoding, CMD_RANGE_SIZE> kGeneratedV
{CMD_SCOPE_OUTSIDE, "VUID-vkCmdCopyMemoryToImageIndirectNV-videocoding"},
{CMD_SCOPE_OUTSIDE, "VUID-vkCmdDecompressMemoryNV-videocoding"},
{CMD_SCOPE_OUTSIDE, "VUID-vkCmdDecompressMemoryIndirectCountNV-videocoding"},
+ {CMD_SCOPE_OUTSIDE, "VUID-vkCmdUpdatePipelineIndirectBuffer-videocoding"},
{CMD_SCOPE_OUTSIDE, "VUID-vkCmdSetTessellationDomainOriginEXT-videocoding"},
{CMD_SCOPE_OUTSIDE, "VUID-vkCmdSetDepthClampEnableEXT-videocoding"},
{CMD_SCOPE_OUTSIDE, "VUID-vkCmdSetPolygonModeEXT-videocoding"},
@@ -1243,6 +1247,7 @@ static const std::array<const char *, CMD_RANGE_SIZE> kGeneratedBufferLevelList
nullptr,
nullptr,
nullptr,
+ nullptr,
}};
// Used to handle all the implicit VUs that are autogenerated from the registry
diff --git a/layers/vulkan/generated/command_validation.h b/layers/vulkan/generated/command_validation.h
index b5631523db1..e0a22c78d06 100644
--- a/layers/vulkan/generated/command_validation.h
+++ b/layers/vulkan/generated/command_validation.h
@@ -219,53 +219,54 @@ typedef enum CMD_TYPE {
CMD_COPYMEMORYTOIMAGEINDIRECTNV = 189,
CMD_DECOMPRESSMEMORYNV = 190,
CMD_DECOMPRESSMEMORYINDIRECTCOUNTNV = 191,
- CMD_SETTESSELLATIONDOMAINORIGINEXT = 192,
- CMD_SETDEPTHCLAMPENABLEEXT = 193,
- CMD_SETPOLYGONMODEEXT = 194,
- CMD_SETRASTERIZATIONSAMPLESEXT = 195,
- CMD_SETSAMPLEMASKEXT = 196,
- CMD_SETALPHATOCOVERAGEENABLEEXT = 197,
- CMD_SETALPHATOONEENABLEEXT = 198,
- CMD_SETLOGICOPENABLEEXT = 199,
- CMD_SETCOLORBLENDENABLEEXT = 200,
- CMD_SETCOLORBLENDEQUATIONEXT = 201,
- CMD_SETCOLORWRITEMASKEXT = 202,
- CMD_SETRASTERIZATIONSTREAMEXT = 203,
- CMD_SETCONSERVATIVERASTERIZATIONMODEEXT = 204,
- CMD_SETEXTRAPRIMITIVEOVERESTIMATIONSIZEEXT = 205,
- CMD_SETDEPTHCLIPENABLEEXT = 206,
- CMD_SETSAMPLELOCATIONSENABLEEXT = 207,
- CMD_SETCOLORBLENDADVANCEDEXT = 208,
- CMD_SETPROVOKINGVERTEXMODEEXT = 209,
- CMD_SETLINERASTERIZATIONMODEEXT = 210,
- CMD_SETLINESTIPPLEENABLEEXT = 211,
- CMD_SETDEPTHCLIPNEGATIVEONETOONEEXT = 212,
- CMD_SETVIEWPORTWSCALINGENABLENV = 213,
- CMD_SETVIEWPORTSWIZZLENV = 214,
- CMD_SETCOVERAGETOCOLORENABLENV = 215,
- CMD_SETCOVERAGETOCOLORLOCATIONNV = 216,
- CMD_SETCOVERAGEMODULATIONMODENV = 217,
- CMD_SETCOVERAGEMODULATIONTABLEENABLENV = 218,
- CMD_SETCOVERAGEMODULATIONTABLENV = 219,
- CMD_SETSHADINGRATEIMAGEENABLENV = 220,
- CMD_SETREPRESENTATIVEFRAGMENTTESTENABLENV = 221,
- CMD_SETCOVERAGEREDUCTIONMODENV = 222,
- CMD_OPTICALFLOWEXECUTENV = 223,
- CMD_BINDSHADERSEXT = 224,
- CMD_SETATTACHMENTFEEDBACKLOOPENABLEEXT = 225,
- CMD_BUILDACCELERATIONSTRUCTURESKHR = 226,
- CMD_BUILDACCELERATIONSTRUCTURESINDIRECTKHR = 227,
- CMD_COPYACCELERATIONSTRUCTUREKHR = 228,
- CMD_COPYACCELERATIONSTRUCTURETOMEMORYKHR = 229,
- CMD_COPYMEMORYTOACCELERATIONSTRUCTUREKHR = 230,
- CMD_WRITEACCELERATIONSTRUCTURESPROPERTIESKHR = 231,
- CMD_TRACERAYSKHR = 232,
- CMD_TRACERAYSINDIRECTKHR = 233,
- CMD_SETRAYTRACINGPIPELINESTACKSIZEKHR = 234,
- CMD_DRAWMESHTASKSEXT = 235,
- CMD_DRAWMESHTASKSINDIRECTEXT = 236,
- CMD_DRAWMESHTASKSINDIRECTCOUNTEXT = 237,
- CMD_RANGE_SIZE = 238
+ CMD_UPDATEPIPELINEINDIRECTBUFFER = 192,
+ CMD_SETTESSELLATIONDOMAINORIGINEXT = 193,
+ CMD_SETDEPTHCLAMPENABLEEXT = 194,
+ CMD_SETPOLYGONMODEEXT = 195,
+ CMD_SETRASTERIZATIONSAMPLESEXT = 196,
+ CMD_SETSAMPLEMASKEXT = 197,
+ CMD_SETALPHATOCOVERAGEENABLEEXT = 198,
+ CMD_SETALPHATOONEENABLEEXT = 199,
+ CMD_SETLOGICOPENABLEEXT = 200,
+ CMD_SETCOLORBLENDENABLEEXT = 201,
+ CMD_SETCOLORBLENDEQUATIONEXT = 202,
+ CMD_SETCOLORWRITEMASKEXT = 203,
+ CMD_SETRASTERIZATIONSTREAMEXT = 204,
+ CMD_SETCONSERVATIVERASTERIZATIONMODEEXT = 205,
+ CMD_SETEXTRAPRIMITIVEOVERESTIMATIONSIZEEXT = 206,
+ CMD_SETDEPTHCLIPENABLEEXT = 207,
+ CMD_SETSAMPLELOCATIONSENABLEEXT = 208,
+ CMD_SETCOLORBLENDADVANCEDEXT = 209,
+ CMD_SETPROVOKINGVERTEXMODEEXT = 210,
+ CMD_SETLINERASTERIZATIONMODEEXT = 211,
+ CMD_SETLINESTIPPLEENABLEEXT = 212,
+ CMD_SETDEPTHCLIPNEGATIVEONETOONEEXT = 213,
+ CMD_SETVIEWPORTWSCALINGENABLENV = 214,
+ CMD_SETVIEWPORTSWIZZLENV = 215,
+ CMD_SETCOVERAGETOCOLORENABLENV = 216,
+ CMD_SETCOVERAGETOCOLORLOCATIONNV = 217,
+ CMD_SETCOVERAGEMODULATIONMODENV = 218,
+ CMD_SETCOVERAGEMODULATIONTABLEENABLENV = 219,
+ CMD_SETCOVERAGEMODULATIONTABLENV = 220,
+ CMD_SETSHADINGRATEIMAGEENABLENV = 221,
+ CMD_SETREPRESENTATIVEFRAGMENTTESTENABLENV = 222,
+ CMD_SETCOVERAGEREDUCTIONMODENV = 223,
+ CMD_OPTICALFLOWEXECUTENV = 224,
+ CMD_BINDSHADERSEXT = 225,
+ CMD_SETATTACHMENTFEEDBACKLOOPENABLEEXT = 226,
+ CMD_BUILDACCELERATIONSTRUCTURESKHR = 227,
+ CMD_BUILDACCELERATIONSTRUCTURESINDIRECTKHR = 228,
+ CMD_COPYACCELERATIONSTRUCTUREKHR = 229,
+ CMD_COPYACCELERATIONSTRUCTURETOMEMORYKHR = 230,
+ CMD_COPYMEMORYTOACCELERATIONSTRUCTUREKHR = 231,
+ CMD_WRITEACCELERATIONSTRUCTURESPROPERTIESKHR = 232,
+ CMD_TRACERAYSKHR = 233,
+ CMD_TRACERAYSINDIRECTKHR = 234,
+ CMD_SETRAYTRACINGPIPELINESTACKSIZEKHR = 235,
+ CMD_DRAWMESHTASKSEXT = 236,
+ CMD_DRAWMESHTASKSINDIRECTEXT = 237,
+ CMD_DRAWMESHTASKSINDIRECTCOUNTEXT = 238,
+ CMD_RANGE_SIZE = 239
} CMD_TYPE;
static const std::array<const char *, CMD_RANGE_SIZE> kGeneratedCommandNameList = {{
@@ -461,6 +462,7 @@ static const std::array<const char *, CMD_RANGE_SIZE> kGeneratedCommandNameList
"vkCmdCopyMemoryToImageIndirectNV",
"vkCmdDecompressMemoryNV",
"vkCmdDecompressMemoryIndirectCountNV",
+ "vkCmdUpdatePipelineIndirectBuffer",
"vkCmdSetTessellationDomainOriginEXT",
"vkCmdSetDepthClampEnableEXT",
"vkCmdSetPolygonModeEXT",
diff --git a/layers/vulkan/generated/enum_flag_bits.h b/layers/vulkan/generated/enum_flag_bits.h
index d0fef2aaf72..8c2049b25d1 100644
--- a/layers/vulkan/generated/enum_flag_bits.h
+++ b/layers/vulkan/generated/enum_flag_bits.h
@@ -24,7 +24,7 @@
#include <array>
#include "vulkan/vulkan.h"
-const uint32_t GeneratedVulkanHeaderVersion = 257;
+const uint32_t GeneratedVulkanHeaderVersion = 258;
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;
@@ -38,7 +38,7 @@ const VkBufferCreateFlags AllVkBufferCreateFlagBits = VK_BUFFER_CREATE_SPARSE_BI
const VkBufferUsageFlags AllVkBufferUsageFlagBits = VK_BUFFER_USAGE_TRANSFER_SRC_BIT|VK_BUFFER_USAGE_TRANSFER_DST_BIT|VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT|VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT|VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT|VK_BUFFER_USAGE_STORAGE_BUFFER_BIT|VK_BUFFER_USAGE_INDEX_BUFFER_BIT|VK_BUFFER_USAGE_VERTEX_BUFFER_BIT|VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT|VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT|VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR|VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR|VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT|VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT|VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT|VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR|VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR|VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR|VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR|VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR|VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT|VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT|VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT|VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT|VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT;
const VkImageCreateFlags AllVkImageCreateFlagBits = VK_IMAGE_CREATE_SPARSE_BINDING_BIT|VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT|VK_IMAGE_CREATE_SPARSE_ALIASED_BIT|VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT|VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT|VK_IMAGE_CREATE_ALIAS_BIT|VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT|VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT|VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT|VK_IMAGE_CREATE_EXTENDED_USAGE_BIT|VK_IMAGE_CREATE_PROTECTED_BIT|VK_IMAGE_CREATE_DISJOINT_BIT|VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV|VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT|VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT|VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT|VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT|VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT|VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM;
const VkSampleCountFlags AllVkSampleCountFlagBits = VK_SAMPLE_COUNT_1_BIT|VK_SAMPLE_COUNT_2_BIT|VK_SAMPLE_COUNT_4_BIT|VK_SAMPLE_COUNT_8_BIT|VK_SAMPLE_COUNT_16_BIT|VK_SAMPLE_COUNT_32_BIT|VK_SAMPLE_COUNT_64_BIT;
-const VkImageUsageFlags AllVkImageUsageFlagBits = VK_IMAGE_USAGE_TRANSFER_SRC_BIT|VK_IMAGE_USAGE_TRANSFER_DST_BIT|VK_IMAGE_USAGE_SAMPLED_BIT|VK_IMAGE_USAGE_STORAGE_BIT|VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT|VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT|VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT|VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT|VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR|VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR|VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR|VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT|VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR|VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR|VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR|VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR|VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT|VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI|VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM|VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM;
+const VkImageUsageFlags AllVkImageUsageFlagBits = VK_IMAGE_USAGE_TRANSFER_SRC_BIT|VK_IMAGE_USAGE_TRANSFER_DST_BIT|VK_IMAGE_USAGE_SAMPLED_BIT|VK_IMAGE_USAGE_STORAGE_BIT|VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT|VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT|VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT|VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT|VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR|VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR|VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR|VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT|VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR|VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT|VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR|VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR|VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR|VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT|VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI|VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM|VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM;
const VkImageViewCreateFlags AllVkImageViewCreateFlagBits = VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT|VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT|VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT;
const VkPipelineCacheCreateFlags AllVkPipelineCacheCreateFlagBits = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT;
const VkPipelineShaderStageCreateFlags AllVkPipelineShaderStageCreateFlagBits = VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT|VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT;
@@ -51,7 +51,7 @@ const VkPipelineColorBlendStateCreateFlags AllVkPipelineColorBlendStateCreateFla
const VkPipelineLayoutCreateFlags AllVkPipelineLayoutCreateFlagBits = VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT;
const VkSamplerCreateFlags AllVkSamplerCreateFlagBits = VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT|VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT|VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT|VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT|VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM;
const VkDescriptorPoolCreateFlags AllVkDescriptorPoolCreateFlagBits = VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT|VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT|VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT;
-const VkDescriptorSetLayoutCreateFlags AllVkDescriptorSetLayoutCreateFlagBits = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT|VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR|VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT|VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT|VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT;
+const VkDescriptorSetLayoutCreateFlags AllVkDescriptorSetLayoutCreateFlagBits = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT|VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR|VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT|VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT|VK_DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV|VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT;
const VkAttachmentDescriptionFlags AllVkAttachmentDescriptionFlagBits = VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT;
const VkFramebufferCreateFlags AllVkFramebufferCreateFlagBits = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT;
const VkSubpassDescriptionFlags AllVkSubpassDescriptionFlagBits = VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX|VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX|VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM|VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM|VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT|VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT|VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT|VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT;
@@ -110,6 +110,7 @@ const VkSurfaceCounterFlagsEXT AllVkSurfaceCounterFlagBitsEXT = VK_SURFACE_COUNT
const VkDebugUtilsMessageSeverityFlagsEXT AllVkDebugUtilsMessageSeverityFlagBitsEXT = VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT|VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT|VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT|VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT;
const VkDebugUtilsMessageTypeFlagsEXT AllVkDebugUtilsMessageTypeFlagBitsEXT = VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT|VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT|VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT|VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT;
const VkGeometryFlagsKHR AllVkGeometryFlagBitsKHR = VK_GEOMETRY_OPAQUE_BIT_KHR|VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR;
+const VkHostImageCopyFlagsEXT AllVkHostImageCopyFlagBitsEXT = VK_HOST_IMAGE_COPY_MEMCPY_EXT;
const VkPresentScalingFlagsEXT AllVkPresentScalingFlagBitsEXT = VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT|VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT|VK_PRESENT_SCALING_STRETCH_BIT_EXT;
const VkPresentGravityFlagsEXT AllVkPresentGravityFlagBitsEXT = VK_PRESENT_GRAVITY_MIN_BIT_EXT|VK_PRESENT_GRAVITY_MAX_BIT_EXT|VK_PRESENT_GRAVITY_CENTERED_BIT_EXT;
const VkIndirectStateFlagsNV AllVkIndirectStateFlagBitsNV = VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV;
diff --git a/layers/vulkan/generated/layer_chassis_dispatch.cpp b/layers/vulkan/generated/layer_chassis_dispatch.cpp
index fcd5fe12d48..31934c6f4cd 100644
--- a/layers/vulkan/generated/layer_chassis_dispatch.cpp
+++ b/layers/vulkan/generated/layer_chassis_dispatch.cpp
@@ -7476,6 +7476,107 @@ void DispatchCmdSetStencilOpEXT(
}
+VkResult DispatchCopyMemoryToImageEXT(
+ VkDevice device,
+ const VkCopyMemoryToImageInfoEXT* pCopyMemoryToImageInfo) {
+ auto layer_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map);
+ if (!wrap_handles) return layer_data->device_dispatch_table.CopyMemoryToImageEXT(device, pCopyMemoryToImageInfo);
+ safe_VkCopyMemoryToImageInfoEXT var_local_pCopyMemoryToImageInfo;
+ safe_VkCopyMemoryToImageInfoEXT *local_pCopyMemoryToImageInfo = nullptr; {
+ if (pCopyMemoryToImageInfo) {
+ local_pCopyMemoryToImageInfo = &var_local_pCopyMemoryToImageInfo;
+ local_pCopyMemoryToImageInfo->initialize(pCopyMemoryToImageInfo);
+ if (pCopyMemoryToImageInfo->dstImage) {
+ local_pCopyMemoryToImageInfo->dstImage = layer_data->Unwrap(pCopyMemoryToImageInfo->dstImage);
+ }
+ }
+ }
+ VkResult result = layer_data->device_dispatch_table.CopyMemoryToImageEXT(device, (const VkCopyMemoryToImageInfoEXT*)local_pCopyMemoryToImageInfo);
+
+ return result;
+}
+
+VkResult DispatchCopyImageToMemoryEXT(
+ VkDevice device,
+ const VkCopyImageToMemoryInfoEXT* pCopyImageToMemoryInfo) {
+ auto layer_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map);
+ if (!wrap_handles) return layer_data->device_dispatch_table.CopyImageToMemoryEXT(device, pCopyImageToMemoryInfo);
+ safe_VkCopyImageToMemoryInfoEXT var_local_pCopyImageToMemoryInfo;
+ safe_VkCopyImageToMemoryInfoEXT *local_pCopyImageToMemoryInfo = nullptr; {
+ if (pCopyImageToMemoryInfo) {
+ local_pCopyImageToMemoryInfo = &var_local_pCopyImageToMemoryInfo;
+ local_pCopyImageToMemoryInfo->initialize(pCopyImageToMemoryInfo);
+ if (pCopyImageToMemoryInfo->srcImage) {
+ local_pCopyImageToMemoryInfo->srcImage = layer_data->Unwrap(pCopyImageToMemoryInfo->srcImage);
+ }
+ }
+ }
+ VkResult result = layer_data->device_dispatch_table.CopyImageToMemoryEXT(device, (const VkCopyImageToMemoryInfoEXT*)local_pCopyImageToMemoryInfo);
+
+ return result;
+}
+
+VkResult DispatchCopyImageToImageEXT(
+ VkDevice device,
+ const VkCopyImageToImageInfoEXT* pCopyImageToImageInfo) {
+ auto layer_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map);
+ if (!wrap_handles) return layer_data->device_dispatch_table.CopyImageToImageEXT(device, pCopyImageToImageInfo);
+ safe_VkCopyImageToImageInfoEXT var_local_pCopyImageToImageInfo;
+ safe_VkCopyImageToImageInfoEXT *local_pCopyImageToImageInfo = nullptr; {
+ if (pCopyImageToImageInfo) {
+ local_pCopyImageToImageInfo = &var_local_pCopyImageToImageInfo;
+ local_pCopyImageToImageInfo->initialize(pCopyImageToImageInfo);
+ if (pCopyImageToImageInfo->srcImage) {
+ local_pCopyImageToImageInfo->srcImage = layer_data->Unwrap(pCopyImageToImageInfo->srcImage);
+ }
+ if (pCopyImageToImageInfo->dstImage) {
+ local_pCopyImageToImageInfo->dstImage = layer_data->Unwrap(pCopyImageToImageInfo->dstImage);
+ }
+ }
+ }
+ VkResult result = layer_data->device_dispatch_table.CopyImageToImageEXT(device, (const VkCopyImageToImageInfoEXT*)local_pCopyImageToImageInfo);
+
+ return result;
+}
+
+VkResult DispatchTransitionImageLayoutEXT(
+ VkDevice device,
+ uint32_t transitionCount,
+ const VkHostImageLayoutTransitionInfoEXT* pTransitions) {
+ auto layer_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map);
+ if (!wrap_handles) return layer_data->device_dispatch_table.TransitionImageLayoutEXT(device, transitionCount, pTransitions);
+ safe_VkHostImageLayoutTransitionInfoEXT *local_pTransitions = nullptr; {
+ if (pTransitions) {
+ local_pTransitions = new safe_VkHostImageLayoutTransitionInfoEXT[transitionCount];
+ for (uint32_t index0 = 0; index0 < transitionCount; ++index0) {
+ local_pTransitions[index0].initialize(&pTransitions[index0]);
+ if (pTransitions[index0].image) {
+ local_pTransitions[index0].image = layer_data->Unwrap(pTransitions[index0].image);
+ }
+ }
+ }
+ }
+ VkResult result = layer_data->device_dispatch_table.TransitionImageLayoutEXT(device, transitionCount, (const VkHostImageLayoutTransitionInfoEXT*)local_pTransitions);
+ if (local_pTransitions) {
+ delete[] local_pTransitions;
+ }
+ return result;
+}
+
+void DispatchGetImageSubresourceLayout2EXT(
+ VkDevice device,
+ VkImage image,
+ const VkImageSubresource2EXT* pSubresource,
+ VkSubresourceLayout2EXT* pLayout) {
+ auto layer_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map);
+ if (!wrap_handles) return layer_data->device_dispatch_table.GetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout);
+ {
+ image = layer_data->Unwrap(image);
+ }
+ layer_data->device_dispatch_table.GetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout);
+
+}
+
VkResult DispatchReleaseSwapchainImagesEXT(
VkDevice device,
const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo) {
@@ -7922,20 +8023,6 @@ void DispatchCmdSetFragmentShadingRateEnumNV(
}
-void DispatchGetImageSubresourceLayout2EXT(
- VkDevice device,
- VkImage image,
- const VkImageSubresource2EXT* pSubresource,
- VkSubresourceLayout2EXT* pLayout) {
- auto layer_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map);
- if (!wrap_handles) return layer_data->device_dispatch_table.GetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout);
- {
- image = layer_data->Unwrap(image);
- }
- layer_data->device_dispatch_table.GetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout);
-
-}
-
VkResult DispatchGetDeviceFaultInfoEXT(
VkDevice device,
VkDeviceFaultCountsEXT* pFaultCounts,
@@ -8818,6 +8905,67 @@ void DispatchCmdDecompressMemoryIndirectCountNV(
}
+void DispatchGetPipelineIndirectMemoryRequirementsNV(
+ VkDevice device,
+ const VkComputePipelineCreateInfo* pCreateInfo,
+ VkMemoryRequirements2* pMemoryRequirements) {
+ auto layer_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map);
+ if (!wrap_handles) return layer_data->device_dispatch_table.GetPipelineIndirectMemoryRequirementsNV(device, pCreateInfo, pMemoryRequirements);
+ safe_VkComputePipelineCreateInfo var_local_pCreateInfo;
+ safe_VkComputePipelineCreateInfo *local_pCreateInfo = nullptr; {
+ if (pCreateInfo) {
+ local_pCreateInfo = &var_local_pCreateInfo;
+ local_pCreateInfo->initialize(pCreateInfo);
+ if (pCreateInfo->stage.module) {
+ local_pCreateInfo->stage.module = layer_data->Unwrap(pCreateInfo->stage.module);
+ }
+ WrapPnextChainHandles(layer_data, local_pCreateInfo->stage.pNext);
+ if (pCreateInfo->layout) {
+ local_pCreateInfo->layout = layer_data->Unwrap(pCreateInfo->layout);
+ }
+ if (pCreateInfo->basePipelineHandle) {
+ local_pCreateInfo->basePipelineHandle = layer_data->Unwrap(pCreateInfo->basePipelineHandle);
+ }
+ WrapPnextChainHandles(layer_data, local_pCreateInfo->pNext);
+ }
+ }
+ layer_data->device_dispatch_table.GetPipelineIndirectMemoryRequirementsNV(device, (const VkComputePipelineCreateInfo*)local_pCreateInfo, pMemoryRequirements);
+
+}
+
+void DispatchCmdUpdatePipelineIndirectBuffer(
+ VkCommandBuffer commandBuffer,
+ VkPipelineBindPoint pipelineBindPoint,
+ VkPipeline pipeline) {
+ auto layer_data = GetLayerDataPtr(get_dispatch_key(commandBuffer), layer_data_map);
+ if (!wrap_handles) return layer_data->device_dispatch_table.CmdUpdatePipelineIndirectBuffer(commandBuffer, pipelineBindPoint, pipeline);
+ {
+ pipeline = layer_data->Unwrap(pipeline);
+ }
+ layer_data->device_dispatch_table.CmdUpdatePipelineIndirectBuffer(commandBuffer, pipelineBindPoint, pipeline);
+
+}
+
+VkDeviceAddress DispatchGetPipelineIndirectDeviceAddressNV(
+ VkDevice device,
+ const VkPipelineIndirectDeviceAddressInfoNV* pInfo) {
+ auto layer_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map);
+ if (!wrap_handles) return layer_data->device_dispatch_table.GetPipelineIndirectDeviceAddressNV(device, pInfo);
+ safe_VkPipelineIndirectDeviceAddressInfoNV var_local_pInfo;
+ safe_VkPipelineIndirectDeviceAddressInfoNV *local_pInfo = nullptr; {
+ if (pInfo) {
+ local_pInfo = &var_local_pInfo;
+ local_pInfo->initialize(pInfo);
+ if (pInfo->pipeline) {
+ local_pInfo->pipeline = layer_data->Unwrap(pInfo->pipeline);
+ }
+ }
+ }
+ VkDeviceAddress result = layer_data->device_dispatch_table.GetPipelineIndirectDeviceAddressNV(device, (const VkPipelineIndirectDeviceAddressInfoNV*)local_pInfo);
+
+ return result;
+}
+
void DispatchCmdSetTessellationDomainOriginEXT(
VkCommandBuffer commandBuffer,
VkTessellationDomainOrigin domainOrigin) {
diff --git a/layers/vulkan/generated/layer_chassis_dispatch.h b/layers/vulkan/generated/layer_chassis_dispatch.h
index 14a390d3b76..143da39a6e4 100644
--- a/layers/vulkan/generated/layer_chassis_dispatch.h
+++ b/layers/vulkan/generated/layer_chassis_dispatch.h
@@ -2268,6 +2268,24 @@ void DispatchCmdSetStencilOpEXT(
VkStencilOp passOp,
VkStencilOp depthFailOp,
VkCompareOp compareOp);
+VkResult DispatchCopyMemoryToImageEXT(
+ VkDevice device,
+ const VkCopyMemoryToImageInfoEXT* pCopyMemoryToImageInfo);
+VkResult DispatchCopyImageToMemoryEXT(
+ VkDevice device,
+ const VkCopyImageToMemoryInfoEXT* pCopyImageToMemoryInfo);
+VkResult DispatchCopyImageToImageEXT(
+ VkDevice device,
+ const VkCopyImageToImageInfoEXT* pCopyImageToImageInfo);
+VkResult DispatchTransitionImageLayoutEXT(
+ VkDevice device,
+ uint32_t transitionCount,
+ const VkHostImageLayoutTransitionInfoEXT* pTransitions);
+void DispatchGetImageSubresourceLayout2EXT(
+ VkDevice device,
+ VkImage image,
+ const VkImageSubresource2EXT* pSubresource,
+ VkSubresourceLayout2EXT* pLayout);
VkResult DispatchReleaseSwapchainImagesEXT(
VkDevice device,
const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo);
@@ -2389,11 +2407,6 @@ void DispatchCmdSetFragmentShadingRateEnumNV(
VkCommandBuffer commandBuffer,
VkFragmentShadingRateNV shadingRate,
const VkFragmentShadingRateCombinerOpKHR combinerOps[2]);
-void DispatchGetImageSubresourceLayout2EXT(
- VkDevice device,
- VkImage image,
- const VkImageSubresource2EXT* pSubresource,
- VkSubresourceLayout2EXT* pLayout);
VkResult DispatchGetDeviceFaultInfoEXT(
VkDevice device,
VkDeviceFaultCountsEXT* pFaultCounts,
@@ -2654,6 +2667,17 @@ void DispatchCmdDecompressMemoryIndirectCountNV(
VkDeviceAddress indirectCommandsAddress,
VkDeviceAddress indirectCommandsCountAddress,
uint32_t stride);
+void DispatchGetPipelineIndirectMemoryRequirementsNV(
+ VkDevice device,
+ const VkComputePipelineCreateInfo* pCreateInfo,
+ VkMemoryRequirements2* pMemoryRequirements);
+void DispatchCmdUpdatePipelineIndirectBuffer(
+ VkCommandBuffer commandBuffer,
+ VkPipelineBindPoint pipelineBindPoint,
+ VkPipeline pipeline);
+VkDeviceAddress DispatchGetPipelineIndirectDeviceAddressNV(
+ VkDevice device,
+ const VkPipelineIndirectDeviceAddressInfoNV* pInfo);
void DispatchCmdSetTessellationDomainOriginEXT(
VkCommandBuffer commandBuffer,
VkTessellationDomainOrigin domainOrigin);
diff --git a/layers/vulkan/generated/object_tracker.cpp b/layers/vulkan/generated/object_tracker.cpp
index 5f41b3c2f8a..69185145803 100644
--- a/layers/vulkan/generated/object_tracker.cpp
+++ b/layers/vulkan/generated/object_tracker.cpp
@@ -6735,6 +6735,70 @@ bool ObjectLifetimes::PreCallValidateCmdSetStencilOpEXT(
return skip;
}
+bool ObjectLifetimes::PreCallValidateCopyMemoryToImageEXT(
+ VkDevice device,
+ const VkCopyMemoryToImageInfoEXT* pCopyMemoryToImageInfo) const {
+ bool skip = false;
+ skip |= ValidateObject(device, kVulkanObjectTypeDevice, false, kVUIDUndefined, kVUIDUndefined, "vkCopyMemoryToImageEXT");
+ if (pCopyMemoryToImageInfo) {
+ skip |= ValidateObject(pCopyMemoryToImageInfo->dstImage, kVulkanObjectTypeImage, false, kVUIDUndefined, kVUIDUndefined, "VkCopyMemoryToImageInfoEXT");
+ }
+
+ return skip;
+}
+
+bool ObjectLifetimes::PreCallValidateCopyImageToMemoryEXT(
+ VkDevice device,
+ const VkCopyImageToMemoryInfoEXT* pCopyImageToMemoryInfo) const {
+ bool skip = false;
+ skip |= ValidateObject(device, kVulkanObjectTypeDevice, false, kVUIDUndefined, kVUIDUndefined, "vkCopyImageToMemoryEXT");
+ if (pCopyImageToMemoryInfo) {
+ skip |= ValidateObject(pCopyImageToMemoryInfo->srcImage, kVulkanObjectTypeImage, false, kVUIDUndefined, kVUIDUndefined, "VkCopyImageToMemoryInfoEXT");
+ }
+
+ return skip;
+}
+
+bool ObjectLifetimes::PreCallValidateCopyImageToImageEXT(
+ VkDevice device,
+ const VkCopyImageToImageInfoEXT* pCopyImageToImageInfo) const {
+ bool skip = false;
+ skip |= ValidateObject(device, kVulkanObjectTypeDevice, false, kVUIDUndefined, kVUIDUndefined, "vkCopyImageToImageEXT");
+ if (pCopyImageToImageInfo) {
+ skip |= ValidateObject(pCopyImageToImageInfo->srcImage, kVulkanObjectTypeImage, false, kVUIDUndefined, kVUIDUndefined, "VkCopyImageToImageInfoEXT");
+ skip |= ValidateObject(pCopyImageToImageInfo->dstImage, kVulkanObjectTypeImage, false, kVUIDUndefined, kVUIDUndefined, "VkCopyImageToImageInfoEXT");
+ }
+
+ return skip;
+}
+
+bool ObjectLifetimes::PreCallValidateTransitionImageLayoutEXT(
+ VkDevice device,
+ uint32_t transitionCount,
+ const VkHostImageLayoutTransitionInfoEXT* pTransitions) const {
+ bool skip = false;
+ skip |= ValidateObject(device, kVulkanObjectTypeDevice, false, "VUID-vkTransitionImageLayoutEXT-device-parameter", kVUIDUndefined, "vkTransitionImageLayoutEXT");
+ if (pTransitions) {
+ for (uint32_t index0 = 0; index0 < transitionCount; ++index0) {
+ skip |= ValidateObject(pTransitions[index0].image, kVulkanObjectTypeImage, false, "VUID-VkHostImageLayoutTransitionInfoEXT-image-parameter", kVUIDUndefined, "VkHostImageLayoutTransitionInfoEXT");
+ }
+ }
+
+ return skip;
+}
+
+bool ObjectLifetimes::PreCallValidateGetImageSubresourceLayout2EXT(
+ VkDevice device,
+ VkImage image,
+ const VkImageSubresource2EXT* pSubresource,
+ VkSubresourceLayout2EXT* pLayout) const {
+ bool skip = false;
+ skip |= ValidateObject(device, kVulkanObjectTypeDevice, false, "VUID-vkGetImageSubresourceLayout2EXT-device-parameter", kVUIDUndefined, "vkGetImageSubresourceLayout2EXT");
+ skip |= ValidateObject(image, kVulkanObjectTypeImage, false, "VUID-vkGetImageSubresourceLayout2EXT-image-parameter", "VUID-vkGetImageSubresourceLayout2EXT-image-parent", "vkGetImageSubresourceLayout2EXT");
+
+ return skip;
+}
+
bool ObjectLifetimes::PreCallValidateReleaseSwapchainImagesEXT(
VkDevice device,
const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo) const {
@@ -6754,7 +6818,7 @@ bool ObjectLifetimes::PreCallValidateGetGeneratedCommandsMemoryRequirementsNV(
bool skip = false;
skip |= ValidateObject(device, kVulkanObjectTypeDevice, false, "VUID-vkGetGeneratedCommandsMemoryRequirementsNV-device-parameter", kVUIDUndefined, "vkGetGeneratedCommandsMemoryRequirementsNV");
if (pInfo) {
- skip |= ValidateObject(pInfo->pipeline, kVulkanObjectTypePipeline, false, "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipeline-parameter", "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-commonparent", "VkGeneratedCommandsMemoryRequirementsInfoNV");
+ skip |= ValidateObject(pInfo->pipeline, kVulkanObjectTypePipeline, true, "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipeline-parameter", "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-commonparent", "VkGeneratedCommandsMemoryRequirementsInfoNV");
skip |= ValidateObject(pInfo->indirectCommandsLayout, kVulkanObjectTypeIndirectCommandsLayoutNV, false, "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-indirectCommandsLayout-parameter", "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-commonparent", "VkGeneratedCommandsMemoryRequirementsInfoNV");
}
@@ -7111,18 +7175,6 @@ bool ObjectLifetimes::PreCallValidateCmdSetFragmentShadingRateEnumNV(
return skip;
}
-bool ObjectLifetimes::PreCallValidateGetImageSubresourceLayout2EXT(
- VkDevice device,
- VkImage image,
- const VkImageSubresource2EXT* pSubresource,
- VkSubresourceLayout2EXT* pLayout) const {
- bool skip = false;
- skip |= ValidateObject(device, kVulkanObjectTypeDevice, false, "VUID-vkGetImageSubresourceLayout2EXT-device-parameter", kVUIDUndefined, "vkGetImageSubresourceLayout2EXT");
- skip |= ValidateObject(image, kVulkanObjectTypeImage, false, "VUID-vkGetImageSubresourceLayout2EXT-image-parameter", "VUID-vkGetImageSubresourceLayout2EXT-image-parent", "vkGetImageSubresourceLayout2EXT");
-
- return skip;
-}
-
bool ObjectLifetimes::PreCallValidateGetDeviceFaultInfoEXT(
VkDevice device,
VkDeviceFaultCountsEXT* pFaultCounts,
@@ -7851,6 +7903,42 @@ bool ObjectLifetimes::PreCallValidateCmdDecompressMemoryIndirectCountNV(
return skip;
}
+bool ObjectLifetimes::PreCallValidateGetPipelineIndirectMemoryRequirementsNV(
+ VkDevice device,
+ const VkComputePipelineCreateInfo* pCreateInfo,
+ VkMemoryRequirements2* pMemoryRequirements) const {
+ bool skip = false;
+ skip |= ValidateObject(device, kVulkanObjectTypeDevice, false, kVUIDUndefined, kVUIDUndefined, "vkGetPipelineIndirectMemoryRequirementsNV");
+ if (pCreateInfo) {
+ skip |= ValidateObject(pCreateInfo->stage.module, kVulkanObjectTypeShaderModule, true, "VUID-VkPipelineShaderStageCreateInfo-module-parameter", kVUIDUndefined, "VkPipelineShaderStageCreateInfo");
+ skip |= ValidateObject(pCreateInfo->layout, kVulkanObjectTypePipelineLayout, false, "VUID-VkComputePipelineCreateInfo-layout-parameter", "VUID-VkComputePipelineCreateInfo-commonparent", "VkComputePipelineCreateInfo");
+ if ((pCreateInfo->flags & VK_PIPELINE_CREATE_DERIVATIVE_BIT) && (pCreateInfo->basePipelineIndex == -1))
+ skip |= ValidateObject(pCreateInfo->basePipelineHandle, kVulkanObjectTypePipeline, false, "VUID-VkComputePipelineCreateInfo-flags-07984", "VUID-VkComputePipelineCreateInfo-commonparent", "VkComputePipelineCreateInfo");
+ }
+
+ return skip;
+}
+
+bool ObjectLifetimes::PreCallValidateCmdUpdatePipelineIndirectBuffer(
+ VkCommandBuffer commandBuffer,
+ VkPipelineBindPoint pipelineBindPoint,
+ VkPipeline pipeline) const {
+ bool skip = false;
+ skip |= ValidateObject(commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdUpdatePipelineIndirectBuffer-commandBuffer-parameter", "VUID-vkCmdUpdatePipelineIndirectBuffer-commonparent", "vkCmdUpdatePipelineIndirectBuffer");
+ skip |= ValidateObject(pipeline, kVulkanObjectTypePipeline, false, "VUID-vkCmdUpdatePipelineIndirectBuffer-pipeline-parameter", "VUID-vkCmdUpdatePipelineIndirectBuffer-commonparent", "vkCmdUpdatePipelineIndirectBuffer");
+
+ return skip;
+}
+
+bool ObjectLifetimes::PreCallValidateGetPipelineIndirectDeviceAddressNV(
+ VkDevice device,
+ const VkPipelineIndirectDeviceAddressInfoNV* pInfo) const {
+ bool skip = false;
+ skip |= ValidateObject(device, kVulkanObjectTypeDevice, false, "VUID-vkGetPipelineIndirectDeviceAddressNV-device-parameter", kVUIDUndefined, "vkGetPipelineIndirectDeviceAddressNV");
+
+ return skip;
+}
+
bool ObjectLifetimes::PreCallValidateCmdSetTessellationDomainOriginEXT(
VkCommandBuffer commandBuffer,
VkTessellationDomainOrigin domainOrigin) const {
diff --git a/layers/vulkan/generated/object_tracker.h b/layers/vulkan/generated/object_tracker.h
index 0d7c6c905f4..3c09abf91cc 100644
--- a/layers/vulkan/generated/object_tracker.h
+++ b/layers/vulkan/generated/object_tracker.h
@@ -2804,6 +2804,24 @@ bool PreCallValidateCmdSetStencilOpEXT(
VkStencilOp passOp,
VkStencilOp depthFailOp,
VkCompareOp compareOp) const override;
+bool PreCallValidateCopyMemoryToImageEXT(
+ VkDevice device,
+ const VkCopyMemoryToImageInfoEXT* pCopyMemoryToImageInfo) const override;
+bool PreCallValidateCopyImageToMemoryEXT(
+ VkDevice device,
+ const VkCopyImageToMemoryInfoEXT* pCopyImageToMemoryInfo) const override;
+bool PreCallValidateCopyImageToImageEXT(
+ VkDevice device,
+ const VkCopyImageToImageInfoEXT* pCopyImageToImageInfo) const override;
+bool PreCallValidateTransitionImageLayoutEXT(
+ VkDevice device,
+ uint32_t transitionCount,
+ const VkHostImageLayoutTransitionInfoEXT* pTransitions) const override;
+bool PreCallValidateGetImageSubresourceLayout2EXT(
+ VkDevice device,
+ VkImage image,
+ const VkImageSubresource2EXT* pSubresource,
+ VkSubresourceLayout2EXT* pLayout) const override;
bool PreCallValidateReleaseSwapchainImagesEXT(
VkDevice device,
const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo) const override;
@@ -2951,11 +2969,6 @@ bool PreCallValidateCmdSetFragmentShadingRateEnumNV(
VkCommandBuffer commandBuffer,
VkFragmentShadingRateNV shadingRate,
const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) const override;
-bool PreCallValidateGetImageSubresourceLayout2EXT(
- VkDevice device,
- VkImage image,
- const VkImageSubresource2EXT* pSubresource,
- VkSubresourceLayout2EXT* pLayout) const override;
bool PreCallValidateGetDeviceFaultInfoEXT(
VkDevice device,
VkDeviceFaultCountsEXT* pFaultCounts,
@@ -3253,6 +3266,17 @@ bool PreCallValidateCmdDecompressMemoryIndirectCountNV(
VkDeviceAddress indirectCommandsAddress,
VkDeviceAddress indirectCommandsCountAddress,
uint32_t stride) const override;
+bool PreCallValidateGetPipelineIndirectMemoryRequirementsNV(
+ VkDevice device,
+ const VkComputePipelineCreateInfo* pCreateInfo,
+ VkMemoryRequirements2* pMemoryRequirements) const override;
+bool PreCallValidateCmdUpdatePipelineIndirectBuffer(
+ VkCommandBuffer commandBuffer,
+ VkPipelineBindPoint pipelineBindPoint,
+ VkPipeline pipeline) const override;
+bool PreCallValidateGetPipelineIndirectDeviceAddressNV(
+ VkDevice device,
+ const VkPipelineIndirectDeviceAddressInfoNV* pInfo) const override;
bool PreCallValidateCmdSetTessellationDomainOriginEXT(
VkCommandBuffer commandBuffer,
VkTessellationDomainOrigin domainOrigin) const override;
diff --git a/layers/vulkan/generated/spirv_tools_commit_id.h b/layers/vulkan/generated/spirv_tools_commit_id.h
index dfe25f87f47..e0c99625006 100644
--- a/layers/vulkan/generated/spirv_tools_commit_id.h
+++ b/layers/vulkan/generated/spirv_tools_commit_id.h
@@ -23,4 +23,4 @@
#pragma once
-#define SPIRV_TOOLS_COMMIT_ID "04cdb2d344706052c7a2d359294e830ebac63e74"
+#define SPIRV_TOOLS_COMMIT_ID "4b6bd5a665ba0529747af3a0bc808732b7e78f48"
diff --git a/layers/vulkan/generated/stateless_validation_helper.cpp b/layers/vulkan/generated/stateless_validation_helper.cpp
index 0f33df2e252..4b63e24781a 100644
--- a/layers/vulkan/generated/stateless_validation_helper.cpp
+++ b/layers/vulkan/generated/stateless_validation_helper.cpp
@@ -3921,6 +3921,26 @@ bool StatelessValidation::ValidatePnextStructContents(const char *api_name, cons
}
} break;
+ // Validation code for VkPhysicalDeviceHostImageCopyFeaturesEXT structure members
+ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT: { // Covers VUID-VkPhysicalDeviceHostImageCopyFeaturesEXT-sType-sType
+ if (is_const_param) {
+ VkPhysicalDeviceHostImageCopyFeaturesEXT *structure = (VkPhysicalDeviceHostImageCopyFeaturesEXT *) header;
+ skip |= ValidateBool32("VkPhysicalDeviceHostImageCopyFeaturesEXT", "hostImageCopy", structure->hostImageCopy);
+ }
+ } break;
+
+ // Validation code for VkPhysicalDeviceHostImageCopyPropertiesEXT structure members
+ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT: { // Covers VUID-VkPhysicalDeviceHostImageCopyPropertiesEXT-sType-sType
+ if (is_const_param) {
+ VkPhysicalDeviceHostImageCopyPropertiesEXT *structure = (VkPhysicalDeviceHostImageCopyPropertiesEXT *) header;
+ skip |= ValidateBool32("VkPhysicalDeviceHostImageCopyPropertiesEXT", "identicalMemoryTypeRequirements", structure->identicalMemoryTypeRequirements);
+ }
+ } break;
+
+ // No Validation code for VkSubresourceHostMemcpySizeEXT structure members -- Covers VUID-VkSubresourceHostMemcpySizeEXT-sType-sType
+
+ // No Validation code for VkHostImageCopyDevicePerformanceQueryEXT structure members -- Covers VUID-VkHostImageCopyDevicePerformanceQueryEXT-sType-sType
+
// Validation code for VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT structure members
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT: { // Covers VUID-VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT-sType-sType
if (is_const_param) {
@@ -4959,6 +4979,18 @@ bool StatelessValidation::ValidatePnextStructContents(const char *api_name, cons
// No Validation code for VkPhysicalDeviceMemoryDecompressionPropertiesNV structure members -- Covers VUID-VkPhysicalDeviceMemoryDecompressionPropertiesNV-sType-sType
+ // Validation code for VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV structure members
+ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV: { // Covers VUID-VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV-sType-sType
+ if (is_const_param) {
+ VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV *structure = (VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV *) header;
+ skip |= ValidateBool32("VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV", "deviceGeneratedCompute", structure->deviceGeneratedCompute);
+
+ skip |= ValidateBool32("VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV", "deviceGeneratedComputePipelines", structure->deviceGeneratedComputePipelines);
+
+ skip |= ValidateBool32("VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV", "deviceGeneratedComputeCaptureReplay", structure->deviceGeneratedComputeCaptureReplay);
+ }
+ } break;
+
// Validation code for VkPhysicalDeviceLinearColorAttachmentFeaturesNV structure members
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV: { // Covers VUID-VkPhysicalDeviceLinearColorAttachmentFeaturesNV-sType-sType
if (is_const_param) {
@@ -5573,9 +5605,9 @@ bool StatelessValidation::PreCallValidateCreateDevice(
skip |= ValidateStructType("vkCreateDevice", "pCreateInfo", "VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO", pCreateInfo, VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO, true, "VUID-vkCreateDevice-pCreateInfo-parameter", "VUID-VkDeviceCreateInfo-sType-sType");
if (pCreateInfo != nullptr)
{
- constexpr std::array allowed_structs_VkDeviceCreateInfo = { VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT, VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV, VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO, VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD, VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT, 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_CULLING_SHADER_FEATURES_HUAWEI, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_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, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT, 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_PERFORMANCE_QUERY_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT, 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_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, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES };
+ constexpr std::array allowed_structs_VkDeviceCreateInfo = { VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT, VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV, VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO, VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD, VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT, 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_CULLING_SHADER_FEATURES_HUAWEI, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_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, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT, 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_PERFORMANCE_QUERY_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT, 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_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, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES };
- skip |= ValidateStructPnext("vkCreateDevice", "pCreateInfo->pNext", "VkDeviceDeviceMemoryReportCreateInfoEXT, VkDeviceDiagnosticsConfigCreateInfoNV, VkDeviceGroupDeviceCreateInfo, VkDeviceMemoryOverallocationCreateInfoAMD, VkDevicePrivateDataCreateInfo, VkPhysicalDevice16BitStorageFeatures, VkPhysicalDevice4444FormatsFeaturesEXT, VkPhysicalDevice8BitStorageFeatures, VkPhysicalDeviceASTCDecodeFeaturesEXT, VkPhysicalDeviceAccelerationStructureFeaturesKHR, VkPhysicalDeviceAddressBindingReportFeaturesEXT, VkPhysicalDeviceAmigoProfilingFeaturesSEC, VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT, VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT, VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, VkPhysicalDeviceBorderColorSwizzleFeaturesEXT, VkPhysicalDeviceBufferDeviceAddressFeatures, VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI, VkPhysicalDeviceCoherentMemoryFeaturesAMD, VkPhysicalDeviceColorWriteEnableFeaturesEXT, VkPhysicalDeviceComputeShaderDerivativesFeaturesNV, VkPhysicalDeviceConditionalRenderingFeaturesEXT, VkPhysicalDeviceCooperativeMatrixFeaturesKHR, VkPhysicalDeviceCooperativeMatrixFeaturesNV, VkPhysicalDeviceCopyMemoryIndirectFeaturesNV, VkPhysicalDeviceCornerSampledImageFeaturesNV, VkPhysicalDeviceCoverageReductionModeFeaturesNV, VkPhysicalDeviceCustomBorderColorFeaturesEXT, VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, VkPhysicalDeviceDepthBiasControlFeaturesEXT, VkPhysicalDeviceDepthClampZeroOneFeaturesEXT, VkPhysicalDeviceDepthClipControlFeaturesEXT, VkPhysicalDeviceDepthClipEnableFeaturesEXT, VkPhysicalDeviceDescriptorBufferFeaturesEXT, VkPhysicalDeviceDescriptorIndexingFeatures, VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE, VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV, VkPhysicalDeviceDeviceMemoryReportFeaturesEXT, VkPhysicalDeviceDiagnosticsConfigFeaturesNV, VkPhysicalDeviceDisplacementMicromapFeaturesNV, VkPhysicalDeviceDynamicRenderingFeatures, VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT, VkPhysicalDeviceExclusiveScissorFeaturesNV, VkPhysicalDeviceExtendedDynamicState2FeaturesEXT, VkPhysicalDeviceExtendedDynamicState3FeaturesEXT, VkPhysicalDeviceExtendedDynamicStateFeaturesEXT, VkPhysicalDeviceExternalMemoryRDMAFeaturesNV, VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX, VkPhysicalDeviceFaultFeaturesEXT, VkPhysicalDeviceFeatures2, VkPhysicalDeviceFragmentDensityMap2FeaturesEXT, VkPhysicalDeviceFragmentDensityMapFeaturesEXT, VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM, VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR, VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT, VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV, VkPhysicalDeviceFragmentShadingRateFeaturesKHR, VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR, VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT, VkPhysicalDeviceHostQueryResetFeatures, VkPhysicalDeviceImage2DViewOf3DFeaturesEXT, VkPhysicalDeviceImageCompressionControlFeaturesEXT, VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT, VkPhysicalDeviceImageProcessingFeaturesQCOM, VkPhysicalDeviceImageRobustnessFeatures, VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT, VkPhysicalDeviceImageViewMinLodFeaturesEXT, VkPhysicalDeviceImagelessFramebufferFeatures, VkPhysicalDeviceIndexTypeUint8FeaturesEXT, VkPhysicalDeviceInheritedViewportScissorFeaturesNV, VkPhysicalDeviceInlineUniformBlockFeatures, VkPhysicalDeviceInvocationMaskFeaturesHUAWEI, VkPhysicalDeviceLegacyDitheringFeaturesEXT, VkPhysicalDeviceLineRasterizationFeaturesEXT, VkPhysicalDeviceLinearColorAttachmentFeaturesNV, VkPhysicalDeviceMaintenance4Features, VkPhysicalDeviceMemoryDecompressionFeaturesNV, VkPhysicalDeviceMemoryPriorityFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesNV, VkPhysicalDeviceMultiDrawFeaturesEXT, VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT, VkPhysicalDeviceMultiviewFeatures, VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM, VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM, VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT, VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT, VkPhysicalDeviceOpacityMicromapFeaturesEXT, VkPhysicalDeviceOpticalFlowFeaturesNV, VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT, VkPhysicalDevicePerformanceQueryFeaturesKHR, VkPhysicalDevicePipelineCreationCacheControlFeatures, VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR, VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT, VkPhysicalDevicePipelinePropertiesFeaturesEXT, VkPhysicalDevicePipelineProtectedAccessFeaturesEXT, VkPhysicalDevicePipelineRobustnessFeaturesEXT, VkPhysicalDevicePortabilitySubsetFeaturesKHR, VkPhysicalDevicePresentBarrierFeaturesNV, VkPhysicalDevicePresentIdFeaturesKHR, VkPhysicalDevicePresentWaitFeaturesKHR, VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT, VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT, VkPhysicalDevicePrivateDataFeatures, VkPhysicalDeviceProtectedMemoryFeatures, VkPhysicalDeviceProvokingVertexFeaturesEXT, VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT, VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT, VkPhysicalDeviceRayQueryFeaturesKHR, VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV, VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR, VkPhysicalDeviceRayTracingMotionBlurFeaturesNV, VkPhysicalDeviceRayTracingPipelineFeaturesKHR, VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR, VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV, VkPhysicalDeviceRobustness2FeaturesEXT, VkPhysicalDeviceSamplerYcbcrConversionFeatures, VkPhysicalDeviceScalarBlockLayoutFeatures, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, VkPhysicalDeviceShaderAtomicInt64Features, VkPhysicalDeviceShaderClockFeaturesKHR, VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM, VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures, VkPhysicalDeviceShaderDrawParametersFeatures, VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD, VkPhysicalDeviceShaderFloat16Int8Features, VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT, VkPhysicalDeviceShaderImageFootprintFeaturesNV, VkPhysicalDeviceShaderIntegerDotProductFeatures, VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT, VkPhysicalDeviceShaderObjectFeaturesEXT, VkPhysicalDeviceShaderSMBuiltinsFeaturesNV, VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, VkPhysicalDeviceShaderTerminateInvocationFeatures, VkPhysicalDeviceShaderTileImageFeaturesEXT, VkPhysicalDeviceShadingRateImageFeaturesNV, VkPhysicalDeviceSubgroupSizeControlFeatures, VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT, VkPhysicalDeviceSubpassShadingFeaturesHUAWEI, VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT, VkPhysicalDeviceSynchronization2Features, VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT, VkPhysicalDeviceTextureCompressionASTCHDRFeatures, VkPhysicalDeviceTilePropertiesFeaturesQCOM, VkPhysicalDeviceTimelineSemaphoreFeatures, VkPhysicalDeviceTransformFeedbackFeaturesEXT, VkPhysicalDeviceUniformBufferStandardLayoutFeatures, VkPhysicalDeviceVariablePointersFeatures, VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT, VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT, VkPhysicalDeviceVulkan11Features, VkPhysicalDeviceVulkan12Features, VkPhysicalDeviceVulkan13Features, VkPhysicalDeviceVulkanMemoryModelFeatures, VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, VkPhysicalDeviceYcbcrImageArraysFeaturesEXT, VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures", pCreateInfo->pNext, allowed_structs_VkDeviceCreateInfo.size(), allowed_structs_VkDeviceCreateInfo.data(), GeneratedVulkanHeaderVersion, "VUID-VkDeviceCreateInfo-pNext-pNext", "VUID-VkDeviceCreateInfo-sType-unique", true, true);
+ skip |= ValidateStructPnext("vkCreateDevice", "pCreateInfo->pNext", "VkDeviceDeviceMemoryReportCreateInfoEXT, VkDeviceDiagnosticsConfigCreateInfoNV, VkDeviceGroupDeviceCreateInfo, VkDeviceMemoryOverallocationCreateInfoAMD, VkDevicePrivateDataCreateInfo, VkPhysicalDevice16BitStorageFeatures, VkPhysicalDevice4444FormatsFeaturesEXT, VkPhysicalDevice8BitStorageFeatures, VkPhysicalDeviceASTCDecodeFeaturesEXT, VkPhysicalDeviceAccelerationStructureFeaturesKHR, VkPhysicalDeviceAddressBindingReportFeaturesEXT, VkPhysicalDeviceAmigoProfilingFeaturesSEC, VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT, VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT, VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, VkPhysicalDeviceBorderColorSwizzleFeaturesEXT, VkPhysicalDeviceBufferDeviceAddressFeatures, VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI, VkPhysicalDeviceCoherentMemoryFeaturesAMD, VkPhysicalDeviceColorWriteEnableFeaturesEXT, VkPhysicalDeviceComputeShaderDerivativesFeaturesNV, VkPhysicalDeviceConditionalRenderingFeaturesEXT, VkPhysicalDeviceCooperativeMatrixFeaturesKHR, VkPhysicalDeviceCooperativeMatrixFeaturesNV, VkPhysicalDeviceCopyMemoryIndirectFeaturesNV, VkPhysicalDeviceCornerSampledImageFeaturesNV, VkPhysicalDeviceCoverageReductionModeFeaturesNV, VkPhysicalDeviceCustomBorderColorFeaturesEXT, VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, VkPhysicalDeviceDepthBiasControlFeaturesEXT, VkPhysicalDeviceDepthClampZeroOneFeaturesEXT, VkPhysicalDeviceDepthClipControlFeaturesEXT, VkPhysicalDeviceDepthClipEnableFeaturesEXT, VkPhysicalDeviceDescriptorBufferFeaturesEXT, VkPhysicalDeviceDescriptorIndexingFeatures, VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE, VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV, VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV, VkPhysicalDeviceDeviceMemoryReportFeaturesEXT, VkPhysicalDeviceDiagnosticsConfigFeaturesNV, VkPhysicalDeviceDisplacementMicromapFeaturesNV, VkPhysicalDeviceDynamicRenderingFeatures, VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT, VkPhysicalDeviceExclusiveScissorFeaturesNV, VkPhysicalDeviceExtendedDynamicState2FeaturesEXT, VkPhysicalDeviceExtendedDynamicState3FeaturesEXT, VkPhysicalDeviceExtendedDynamicStateFeaturesEXT, VkPhysicalDeviceExternalMemoryRDMAFeaturesNV, VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX, VkPhysicalDeviceFaultFeaturesEXT, VkPhysicalDeviceFeatures2, VkPhysicalDeviceFragmentDensityMap2FeaturesEXT, VkPhysicalDeviceFragmentDensityMapFeaturesEXT, VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM, VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR, VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT, VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV, VkPhysicalDeviceFragmentShadingRateFeaturesKHR, VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR, VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT, VkPhysicalDeviceHostImageCopyFeaturesEXT, VkPhysicalDeviceHostQueryResetFeatures, VkPhysicalDeviceImage2DViewOf3DFeaturesEXT, VkPhysicalDeviceImageCompressionControlFeaturesEXT, VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT, VkPhysicalDeviceImageProcessingFeaturesQCOM, VkPhysicalDeviceImageRobustnessFeatures, VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT, VkPhysicalDeviceImageViewMinLodFeaturesEXT, VkPhysicalDeviceImagelessFramebufferFeatures, VkPhysicalDeviceIndexTypeUint8FeaturesEXT, VkPhysicalDeviceInheritedViewportScissorFeaturesNV, VkPhysicalDeviceInlineUniformBlockFeatures, VkPhysicalDeviceInvocationMaskFeaturesHUAWEI, VkPhysicalDeviceLegacyDitheringFeaturesEXT, VkPhysicalDeviceLineRasterizationFeaturesEXT, VkPhysicalDeviceLinearColorAttachmentFeaturesNV, VkPhysicalDeviceMaintenance4Features, VkPhysicalDeviceMemoryDecompressionFeaturesNV, VkPhysicalDeviceMemoryPriorityFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesNV, VkPhysicalDeviceMultiDrawFeaturesEXT, VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT, VkPhysicalDeviceMultiviewFeatures, VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM, VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM, VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT, VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT, VkPhysicalDeviceOpacityMicromapFeaturesEXT, VkPhysicalDeviceOpticalFlowFeaturesNV, VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT, VkPhysicalDevicePerformanceQueryFeaturesKHR, VkPhysicalDevicePipelineCreationCacheControlFeatures, VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR, VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT, VkPhysicalDevicePipelinePropertiesFeaturesEXT, VkPhysicalDevicePipelineProtectedAccessFeaturesEXT, VkPhysicalDevicePipelineRobustnessFeaturesEXT, VkPhysicalDevicePortabilitySubsetFeaturesKHR, VkPhysicalDevicePresentBarrierFeaturesNV, VkPhysicalDevicePresentIdFeaturesKHR, VkPhysicalDevicePresentWaitFeaturesKHR, VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT, VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT, VkPhysicalDevicePrivateDataFeatures, VkPhysicalDeviceProtectedMemoryFeatures, VkPhysicalDeviceProvokingVertexFeaturesEXT, VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT, VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT, VkPhysicalDeviceRayQueryFeaturesKHR, VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV, VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR, VkPhysicalDeviceRayTracingMotionBlurFeaturesNV, VkPhysicalDeviceRayTracingPipelineFeaturesKHR, VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR, VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV, VkPhysicalDeviceRobustness2FeaturesEXT, VkPhysicalDeviceSamplerYcbcrConversionFeatures, VkPhysicalDeviceScalarBlockLayoutFeatures, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, VkPhysicalDeviceShaderAtomicInt64Features, VkPhysicalDeviceShaderClockFeaturesKHR, VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM, VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures, VkPhysicalDeviceShaderDrawParametersFeatures, VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD, VkPhysicalDeviceShaderFloat16Int8Features, VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT, VkPhysicalDeviceShaderImageFootprintFeaturesNV, VkPhysicalDeviceShaderIntegerDotProductFeatures, VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT, VkPhysicalDeviceShaderObjectFeaturesEXT, VkPhysicalDeviceShaderSMBuiltinsFeaturesNV, VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, VkPhysicalDeviceShaderTerminateInvocationFeatures, VkPhysicalDeviceShaderTileImageFeaturesEXT, VkPhysicalDeviceShadingRateImageFeaturesNV, VkPhysicalDeviceSubgroupSizeControlFeatures, VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT, VkPhysicalDeviceSubpassShadingFeaturesHUAWEI, VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT, VkPhysicalDeviceSynchronization2Features, VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT, VkPhysicalDeviceTextureCompressionASTCHDRFeatures, VkPhysicalDeviceTilePropertiesFeaturesQCOM, VkPhysicalDeviceTimelineSemaphoreFeatures, VkPhysicalDeviceTransformFeedbackFeaturesEXT, VkPhysicalDeviceUniformBufferStandardLayoutFeatures, VkPhysicalDeviceVariablePointersFeatures, VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT, VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT, VkPhysicalDeviceVulkan11Features, VkPhysicalDeviceVulkan12Features, VkPhysicalDeviceVulkan13Features, VkPhysicalDeviceVulkanMemoryModelFeatures, VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, VkPhysicalDeviceYcbcrImageArraysFeaturesEXT, VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures", pCreateInfo->pNext, allowed_structs_VkDeviceCreateInfo.size(), allowed_structs_VkDeviceCreateInfo.data(), GeneratedVulkanHeaderVersion, "VUID-VkDeviceCreateInfo-pNext-pNext", "VUID-VkDeviceCreateInfo-sType-unique", true, true);
skip |= ValidateReservedFlags("vkCreateDevice", "pCreateInfo->flags", pCreateInfo->flags, "VUID-VkDeviceCreateInfo-flags-zerobitmask");
@@ -8820,9 +8852,9 @@ bool StatelessValidation::PreCallValidateGetPhysicalDeviceProperties2(
skip |= ValidateStructType("vkGetPhysicalDeviceProperties2", "pProperties", "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2", pProperties, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2, true, "VUID-vkGetPhysicalDeviceProperties2-pProperties-parameter", "VUID-VkPhysicalDeviceProperties2-sType-sType");
if (pProperties != nullptr)
{
- 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_CULLING_SHADER_PROPERTIES_HUAWEI, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES, 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_PERFORMANCE_QUERY_PROPERTIES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES };
+ 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_CULLING_SHADER_PROPERTIES_HUAWEI, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES, 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_PERFORMANCE_QUERY_PROPERTIES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES };
- skip |= ValidateStructPnext("vkGetPhysicalDeviceProperties2", "pProperties->pNext", "VkPhysicalDeviceAccelerationStructurePropertiesKHR, VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI, VkPhysicalDeviceConservativeRasterizationPropertiesEXT, VkPhysicalDeviceCooperativeMatrixPropertiesKHR, VkPhysicalDeviceCooperativeMatrixPropertiesNV, VkPhysicalDeviceCopyMemoryIndirectPropertiesNV, VkPhysicalDeviceCustomBorderColorPropertiesEXT, VkPhysicalDeviceDepthStencilResolveProperties, VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT, VkPhysicalDeviceDescriptorBufferPropertiesEXT, VkPhysicalDeviceDescriptorIndexingProperties, VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV, VkPhysicalDeviceDiscardRectanglePropertiesEXT, VkPhysicalDeviceDisplacementMicromapPropertiesNV, VkPhysicalDeviceDriverProperties, VkPhysicalDeviceDrmPropertiesEXT, VkPhysicalDeviceExtendedDynamicState3PropertiesEXT, VkPhysicalDeviceExternalMemoryHostPropertiesEXT, VkPhysicalDeviceFloatControlsProperties, VkPhysicalDeviceFragmentDensityMap2PropertiesEXT, VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM, VkPhysicalDeviceFragmentDensityMapPropertiesEXT, VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR, VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV, VkPhysicalDeviceFragmentShadingRatePropertiesKHR, VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT, VkPhysicalDeviceIDProperties, VkPhysicalDeviceImageProcessingPropertiesQCOM, VkPhysicalDeviceInlineUniformBlockProperties, VkPhysicalDeviceLineRasterizationPropertiesEXT, VkPhysicalDeviceMaintenance3Properties, VkPhysicalDeviceMaintenance4Properties, VkPhysicalDeviceMemoryDecompressionPropertiesNV, VkPhysicalDeviceMeshShaderPropertiesEXT, VkPhysicalDeviceMeshShaderPropertiesNV, VkPhysicalDeviceMultiDrawPropertiesEXT, VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, VkPhysicalDeviceMultiviewProperties, VkPhysicalDeviceOpacityMicromapPropertiesEXT, VkPhysicalDeviceOpticalFlowPropertiesNV, VkPhysicalDevicePCIBusInfoPropertiesEXT, VkPhysicalDevicePerformanceQueryPropertiesKHR, VkPhysicalDevicePipelineRobustnessPropertiesEXT, VkPhysicalDevicePointClippingProperties, VkPhysicalDevicePortabilitySubsetPropertiesKHR, VkPhysicalDeviceProtectedMemoryProperties, VkPhysicalDeviceProvokingVertexPropertiesEXT, VkPhysicalDevicePushDescriptorPropertiesKHR, VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV, VkPhysicalDeviceRayTracingPipelinePropertiesKHR, VkPhysicalDeviceRayTracingPropertiesNV, VkPhysicalDeviceRobustness2PropertiesEXT, VkPhysicalDeviceSampleLocationsPropertiesEXT, VkPhysicalDeviceSamplerFilterMinmaxProperties, VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM, VkPhysicalDeviceShaderCoreProperties2AMD, VkPhysicalDeviceShaderCorePropertiesAMD, VkPhysicalDeviceShaderCorePropertiesARM, VkPhysicalDeviceShaderIntegerDotProductProperties, VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT, VkPhysicalDeviceShaderObjectPropertiesEXT, VkPhysicalDeviceShaderSMBuiltinsPropertiesNV, VkPhysicalDeviceShaderTileImagePropertiesEXT, VkPhysicalDeviceShadingRateImagePropertiesNV, VkPhysicalDeviceSubgroupProperties, VkPhysicalDeviceSubgroupSizeControlProperties, VkPhysicalDeviceSubpassShadingPropertiesHUAWEI, VkPhysicalDeviceTexelBufferAlignmentProperties, VkPhysicalDeviceTimelineSemaphoreProperties, VkPhysicalDeviceTransformFeedbackPropertiesEXT, VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, VkPhysicalDeviceVulkan11Properties, VkPhysicalDeviceVulkan12Properties, VkPhysicalDeviceVulkan13Properties", pProperties->pNext, allowed_structs_VkPhysicalDeviceProperties2.size(), allowed_structs_VkPhysicalDeviceProperties2.data(), GeneratedVulkanHeaderVersion, "VUID-VkPhysicalDeviceProperties2-pNext-pNext", "VUID-VkPhysicalDeviceProperties2-sType-unique", true, false);
+ skip |= ValidateStructPnext("vkGetPhysicalDeviceProperties2", "pProperties->pNext", "VkPhysicalDeviceAccelerationStructurePropertiesKHR, VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI, VkPhysicalDeviceConservativeRasterizationPropertiesEXT, VkPhysicalDeviceCooperativeMatrixPropertiesKHR, VkPhysicalDeviceCooperativeMatrixPropertiesNV, VkPhysicalDeviceCopyMemoryIndirectPropertiesNV, VkPhysicalDeviceCustomBorderColorPropertiesEXT, VkPhysicalDeviceDepthStencilResolveProperties, VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT, VkPhysicalDeviceDescriptorBufferPropertiesEXT, VkPhysicalDeviceDescriptorIndexingProperties, VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV, VkPhysicalDeviceDiscardRectanglePropertiesEXT, VkPhysicalDeviceDisplacementMicromapPropertiesNV, VkPhysicalDeviceDriverProperties, VkPhysicalDeviceDrmPropertiesEXT, VkPhysicalDeviceExtendedDynamicState3PropertiesEXT, VkPhysicalDeviceExternalMemoryHostPropertiesEXT, VkPhysicalDeviceFloatControlsProperties, VkPhysicalDeviceFragmentDensityMap2PropertiesEXT, VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM, VkPhysicalDeviceFragmentDensityMapPropertiesEXT, VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR, VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV, VkPhysicalDeviceFragmentShadingRatePropertiesKHR, VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT, VkPhysicalDeviceHostImageCopyPropertiesEXT, VkPhysicalDeviceIDProperties, VkPhysicalDeviceImageProcessingPropertiesQCOM, VkPhysicalDeviceInlineUniformBlockProperties, VkPhysicalDeviceLineRasterizationPropertiesEXT, VkPhysicalDeviceMaintenance3Properties, VkPhysicalDeviceMaintenance4Properties, VkPhysicalDeviceMemoryDecompressionPropertiesNV, VkPhysicalDeviceMeshShaderPropertiesEXT, VkPhysicalDeviceMeshShaderPropertiesNV, VkPhysicalDeviceMultiDrawPropertiesEXT, VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, VkPhysicalDeviceMultiviewProperties, VkPhysicalDeviceOpacityMicromapPropertiesEXT, VkPhysicalDeviceOpticalFlowPropertiesNV, VkPhysicalDevicePCIBusInfoPropertiesEXT, VkPhysicalDevicePerformanceQueryPropertiesKHR, VkPhysicalDevicePipelineRobustnessPropertiesEXT, VkPhysicalDevicePointClippingProperties, VkPhysicalDevicePortabilitySubsetPropertiesKHR, VkPhysicalDeviceProtectedMemoryProperties, VkPhysicalDeviceProvokingVertexPropertiesEXT, VkPhysicalDevicePushDescriptorPropertiesKHR, VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV, VkPhysicalDeviceRayTracingPipelinePropertiesKHR, VkPhysicalDeviceRayTracingPropertiesNV, VkPhysicalDeviceRobustness2PropertiesEXT, VkPhysicalDeviceSampleLocationsPropertiesEXT, VkPhysicalDeviceSamplerFilterMinmaxProperties, VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM, VkPhysicalDeviceShaderCoreProperties2AMD, VkPhysicalDeviceShaderCorePropertiesAMD, VkPhysicalDeviceShaderCorePropertiesARM, VkPhysicalDeviceShaderIntegerDotProductProperties, VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT, VkPhysicalDeviceShaderObjectPropertiesEXT, VkPhysicalDeviceShaderSMBuiltinsPropertiesNV, VkPhysicalDeviceShaderTileImagePropertiesEXT, VkPhysicalDeviceShadingRateImagePropertiesNV, VkPhysicalDeviceSubgroupProperties, VkPhysicalDeviceSubgroupSizeControlProperties, VkPhysicalDeviceSubpassShadingPropertiesHUAWEI, VkPhysicalDeviceTexelBufferAlignmentProperties, VkPhysicalDeviceTimelineSemaphoreProperties, VkPhysicalDeviceTransformFeedbackPropertiesEXT, VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, VkPhysicalDeviceVulkan11Properties, VkPhysicalDeviceVulkan12Properties, VkPhysicalDeviceVulkan13Properties", pProperties->pNext, allowed_structs_VkPhysicalDeviceProperties2.size(), allowed_structs_VkPhysicalDeviceProperties2.data(), GeneratedVulkanHeaderVersion, "VUID-VkPhysicalDeviceProperties2-pNext-pNext", "VUID-VkPhysicalDeviceProperties2-sType-unique", true, false);
}
return skip;
}
@@ -8870,9 +8902,9 @@ bool StatelessValidation::PreCallValidateGetPhysicalDeviceImageFormatProperties2
skip |= ValidateStructType("vkGetPhysicalDeviceImageFormatProperties2", "pImageFormatProperties", "VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2", pImageFormatProperties, VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2, true, "VUID-vkGetPhysicalDeviceImageFormatProperties2-pImageFormatProperties-parameter", "VUID-VkImageFormatProperties2-sType-sType");
if (pImageFormatProperties != nullptr)
{
- constexpr std::array allowed_structs_VkImageFormatProperties2 = { VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID, VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES, VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT, VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT, VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES, VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD };
+ constexpr std::array allowed_structs_VkImageFormatProperties2 = { VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID, VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES, VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT, VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT, VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT, VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES, VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD };
- skip |= ValidateStructPnext("vkGetPhysicalDeviceImageFormatProperties2", "pImageFormatProperties->pNext", "VkAndroidHardwareBufferUsageANDROID, VkExternalImageFormatProperties, VkFilterCubicImageViewImageFormatPropertiesEXT, VkImageCompressionPropertiesEXT, VkSamplerYcbcrConversionImageFormatProperties, VkTextureLODGatherFormatPropertiesAMD", pImageFormatProperties->pNext, allowed_structs_VkImageFormatProperties2.size(), allowed_structs_VkImageFormatProperties2.data(), GeneratedVulkanHeaderVersion, "VUID-VkImageFormatProperties2-pNext-pNext", "VUID-VkImageFormatProperties2-sType-unique", true, false);
+ skip |= ValidateStructPnext("vkGetPhysicalDeviceImageFormatProperties2", "pImageFormatProperties->pNext", "VkAndroidHardwareBufferUsageANDROID, VkExternalImageFormatProperties, VkFilterCubicImageViewImageFormatPropertiesEXT, VkHostImageCopyDevicePerformanceQueryEXT, VkImageCompressionPropertiesEXT, VkSamplerYcbcrConversionImageFormatProperties, VkTextureLODGatherFormatPropertiesAMD", pImageFormatProperties->pNext, allowed_structs_VkImageFormatProperties2.size(), allowed_structs_VkImageFormatProperties2.data(), GeneratedVulkanHeaderVersion, "VUID-VkImageFormatProperties2-pNext-pNext", "VUID-VkImageFormatProperties2-sType-unique", true, false);
}
if (!skip) skip |= manual_PreCallValidateGetPhysicalDeviceImageFormatProperties2(physicalDevice, pImageFormatInfo, pImageFormatProperties);
return skip;
@@ -11965,9 +11997,9 @@ bool StatelessValidation::PreCallValidateGetPhysicalDeviceProperties2KHR(
skip |= ValidateStructType("vkGetPhysicalDeviceProperties2KHR", "pProperties", "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2", pProperties, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2, true, "VUID-vkGetPhysicalDeviceProperties2-pProperties-parameter", "VUID-VkPhysicalDeviceProperties2-sType-sType");
if (pProperties != nullptr)
{
- 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_CULLING_SHADER_PROPERTIES_HUAWEI, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES, 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_PERFORMANCE_QUERY_PROPERTIES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES };
+ 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_CULLING_SHADER_PROPERTIES_HUAWEI, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES, 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_PERFORMANCE_QUERY_PROPERTIES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES };
- skip |= ValidateStructPnext("vkGetPhysicalDeviceProperties2KHR", "pProperties->pNext", "VkPhysicalDeviceAccelerationStructurePropertiesKHR, VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI, VkPhysicalDeviceConservativeRasterizationPropertiesEXT, VkPhysicalDeviceCooperativeMatrixPropertiesKHR, VkPhysicalDeviceCooperativeMatrixPropertiesNV, VkPhysicalDeviceCopyMemoryIndirectPropertiesNV, VkPhysicalDeviceCustomBorderColorPropertiesEXT, VkPhysicalDeviceDepthStencilResolveProperties, VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT, VkPhysicalDeviceDescriptorBufferPropertiesEXT, VkPhysicalDeviceDescriptorIndexingProperties, VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV, VkPhysicalDeviceDiscardRectanglePropertiesEXT, VkPhysicalDeviceDisplacementMicromapPropertiesNV, VkPhysicalDeviceDriverProperties, VkPhysicalDeviceDrmPropertiesEXT, VkPhysicalDeviceExtendedDynamicState3PropertiesEXT, VkPhysicalDeviceExternalMemoryHostPropertiesEXT, VkPhysicalDeviceFloatControlsProperties, VkPhysicalDeviceFragmentDensityMap2PropertiesEXT, VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM, VkPhysicalDeviceFragmentDensityMapPropertiesEXT, VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR, VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV, VkPhysicalDeviceFragmentShadingRatePropertiesKHR, VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT, VkPhysicalDeviceIDProperties, VkPhysicalDeviceImageProcessingPropertiesQCOM, VkPhysicalDeviceInlineUniformBlockProperties, VkPhysicalDeviceLineRasterizationPropertiesEXT, VkPhysicalDeviceMaintenance3Properties, VkPhysicalDeviceMaintenance4Properties, VkPhysicalDeviceMemoryDecompressionPropertiesNV, VkPhysicalDeviceMeshShaderPropertiesEXT, VkPhysicalDeviceMeshShaderPropertiesNV, VkPhysicalDeviceMultiDrawPropertiesEXT, VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, VkPhysicalDeviceMultiviewProperties, VkPhysicalDeviceOpacityMicromapPropertiesEXT, VkPhysicalDeviceOpticalFlowPropertiesNV, VkPhysicalDevicePCIBusInfoPropertiesEXT, VkPhysicalDevicePerformanceQueryPropertiesKHR, VkPhysicalDevicePipelineRobustnessPropertiesEXT, VkPhysicalDevicePointClippingProperties, VkPhysicalDevicePortabilitySubsetPropertiesKHR, VkPhysicalDeviceProtectedMemoryProperties, VkPhysicalDeviceProvokingVertexPropertiesEXT, VkPhysicalDevicePushDescriptorPropertiesKHR, VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV, VkPhysicalDeviceRayTracingPipelinePropertiesKHR, VkPhysicalDeviceRayTracingPropertiesNV, VkPhysicalDeviceRobustness2PropertiesEXT, VkPhysicalDeviceSampleLocationsPropertiesEXT, VkPhysicalDeviceSamplerFilterMinmaxProperties, VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM, VkPhysicalDeviceShaderCoreProperties2AMD, VkPhysicalDeviceShaderCorePropertiesAMD, VkPhysicalDeviceShaderCorePropertiesARM, VkPhysicalDeviceShaderIntegerDotProductProperties, VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT, VkPhysicalDeviceShaderObjectPropertiesEXT, VkPhysicalDeviceShaderSMBuiltinsPropertiesNV, VkPhysicalDeviceShaderTileImagePropertiesEXT, VkPhysicalDeviceShadingRateImagePropertiesNV, VkPhysicalDeviceSubgroupProperties, VkPhysicalDeviceSubgroupSizeControlProperties, VkPhysicalDeviceSubpassShadingPropertiesHUAWEI, VkPhysicalDeviceTexelBufferAlignmentProperties, VkPhysicalDeviceTimelineSemaphoreProperties, VkPhysicalDeviceTransformFeedbackPropertiesEXT, VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, VkPhysicalDeviceVulkan11Properties, VkPhysicalDeviceVulkan12Properties, VkPhysicalDeviceVulkan13Properties", pProperties->pNext, allowed_structs_VkPhysicalDeviceProperties2.size(), allowed_structs_VkPhysicalDeviceProperties2.data(), GeneratedVulkanHeaderVersion, "VUID-VkPhysicalDeviceProperties2-pNext-pNext", "VUID-VkPhysicalDeviceProperties2-sType-unique", true, false);
+ skip |= ValidateStructPnext("vkGetPhysicalDeviceProperties2KHR", "pProperties->pNext", "VkPhysicalDeviceAccelerationStructurePropertiesKHR, VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI, VkPhysicalDeviceConservativeRasterizationPropertiesEXT, VkPhysicalDeviceCooperativeMatrixPropertiesKHR, VkPhysicalDeviceCooperativeMatrixPropertiesNV, VkPhysicalDeviceCopyMemoryIndirectPropertiesNV, VkPhysicalDeviceCustomBorderColorPropertiesEXT, VkPhysicalDeviceDepthStencilResolveProperties, VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT, VkPhysicalDeviceDescriptorBufferPropertiesEXT, VkPhysicalDeviceDescriptorIndexingProperties, VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV, VkPhysicalDeviceDiscardRectanglePropertiesEXT, VkPhysicalDeviceDisplacementMicromapPropertiesNV, VkPhysicalDeviceDriverProperties, VkPhysicalDeviceDrmPropertiesEXT, VkPhysicalDeviceExtendedDynamicState3PropertiesEXT, VkPhysicalDeviceExternalMemoryHostPropertiesEXT, VkPhysicalDeviceFloatControlsProperties, VkPhysicalDeviceFragmentDensityMap2PropertiesEXT, VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM, VkPhysicalDeviceFragmentDensityMapPropertiesEXT, VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR, VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV, VkPhysicalDeviceFragmentShadingRatePropertiesKHR, VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT, VkPhysicalDeviceHostImageCopyPropertiesEXT, VkPhysicalDeviceIDProperties, VkPhysicalDeviceImageProcessingPropertiesQCOM, VkPhysicalDeviceInlineUniformBlockProperties, VkPhysicalDeviceLineRasterizationPropertiesEXT, VkPhysicalDeviceMaintenance3Properties, VkPhysicalDeviceMaintenance4Properties, VkPhysicalDeviceMemoryDecompressionPropertiesNV, VkPhysicalDeviceMeshShaderPropertiesEXT, VkPhysicalDeviceMeshShaderPropertiesNV, VkPhysicalDeviceMultiDrawPropertiesEXT, VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, VkPhysicalDeviceMultiviewProperties, VkPhysicalDeviceOpacityMicromapPropertiesEXT, VkPhysicalDeviceOpticalFlowPropertiesNV, VkPhysicalDevicePCIBusInfoPropertiesEXT, VkPhysicalDevicePerformanceQueryPropertiesKHR, VkPhysicalDevicePipelineRobustnessPropertiesEXT, VkPhysicalDevicePointClippingProperties, VkPhysicalDevicePortabilitySubsetPropertiesKHR, VkPhysicalDeviceProtectedMemoryProperties, VkPhysicalDeviceProvokingVertexPropertiesEXT, VkPhysicalDevicePushDescriptorPropertiesKHR, VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV, VkPhysicalDeviceRayTracingPipelinePropertiesKHR, VkPhysicalDeviceRayTracingPropertiesNV, VkPhysicalDeviceRobustness2PropertiesEXT, VkPhysicalDeviceSampleLocationsPropertiesEXT, VkPhysicalDeviceSamplerFilterMinmaxProperties, VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM, VkPhysicalDeviceShaderCoreProperties2AMD, VkPhysicalDeviceShaderCorePropertiesAMD, VkPhysicalDeviceShaderCorePropertiesARM, VkPhysicalDeviceShaderIntegerDotProductProperties, VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT, VkPhysicalDeviceShaderObjectPropertiesEXT, VkPhysicalDeviceShaderSMBuiltinsPropertiesNV, VkPhysicalDeviceShaderTileImagePropertiesEXT, VkPhysicalDeviceShadingRateImagePropertiesNV, VkPhysicalDeviceSubgroupProperties, VkPhysicalDeviceSubgroupSizeControlProperties, VkPhysicalDeviceSubpassShadingPropertiesHUAWEI, VkPhysicalDeviceTexelBufferAlignmentProperties, VkPhysicalDeviceTimelineSemaphoreProperties, VkPhysicalDeviceTransformFeedbackPropertiesEXT, VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, VkPhysicalDeviceVulkan11Properties, VkPhysicalDeviceVulkan12Properties, VkPhysicalDeviceVulkan13Properties", pProperties->pNext, allowed_structs_VkPhysicalDeviceProperties2.size(), allowed_structs_VkPhysicalDeviceProperties2.data(), GeneratedVulkanHeaderVersion, "VUID-VkPhysicalDeviceProperties2-pNext-pNext", "VUID-VkPhysicalDeviceProperties2-sType-unique", true, false);
}
return skip;
}
@@ -12015,9 +12047,9 @@ bool StatelessValidation::PreCallValidateGetPhysicalDeviceImageFormatProperties2
skip |= ValidateStructType("vkGetPhysicalDeviceImageFormatProperties2KHR", "pImageFormatProperties", "VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2", pImageFormatProperties, VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2, true, "VUID-vkGetPhysicalDeviceImageFormatProperties2-pImageFormatProperties-parameter", "VUID-VkImageFormatProperties2-sType-sType");
if (pImageFormatProperties != nullptr)
{
- constexpr std::array allowed_structs_VkImageFormatProperties2 = { VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID, VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES, VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT, VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT, VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES, VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD };
+ constexpr std::array allowed_structs_VkImageFormatProperties2 = { VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID, VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES, VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT, VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT, VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT, VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES, VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD };
- skip |= ValidateStructPnext("vkGetPhysicalDeviceImageFormatProperties2KHR", "pImageFormatProperties->pNext", "VkAndroidHardwareBufferUsageANDROID, VkExternalImageFormatProperties, VkFilterCubicImageViewImageFormatPropertiesEXT, VkImageCompressionPropertiesEXT, VkSamplerYcbcrConversionImageFormatProperties, VkTextureLODGatherFormatPropertiesAMD", pImageFormatProperties->pNext, allowed_structs_VkImageFormatProperties2.size(), allowed_structs_VkImageFormatProperties2.data(), GeneratedVulkanHeaderVersion, "VUID-VkImageFormatProperties2-pNext-pNext", "VUID-VkImageFormatProperties2-sType-unique", true, false);
+ skip |= ValidateStructPnext("vkGetPhysicalDeviceImageFormatProperties2KHR", "pImageFormatProperties->pNext", "VkAndroidHardwareBufferUsageANDROID, VkExternalImageFormatProperties, VkFilterCubicImageViewImageFormatPropertiesEXT, VkHostImageCopyDevicePerformanceQueryEXT, VkImageCompressionPropertiesEXT, VkSamplerYcbcrConversionImageFormatProperties, VkTextureLODGatherFormatPropertiesAMD", pImageFormatProperties->pNext, allowed_structs_VkImageFormatProperties2.size(), allowed_structs_VkImageFormatProperties2.data(), GeneratedVulkanHeaderVersion, "VUID-VkImageFormatProperties2-pNext-pNext", "VUID-VkImageFormatProperties2-sType-unique", true, false);
}
if (!skip) skip |= manual_PreCallValidateGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties);
return skip;
@@ -17058,6 +17090,173 @@ bool StatelessValidation::PreCallValidateCmdSetStencilOpEXT(
return skip;
}
+bool StatelessValidation::PreCallValidateCopyMemoryToImageEXT(
+ VkDevice device,
+ const VkCopyMemoryToImageInfoEXT* pCopyMemoryToImageInfo) const {
+ bool skip = false;
+ if (!IsExtEnabled(device_extensions.vk_ext_host_image_copy)) skip |= OutputExtensionError("vkCopyMemoryToImageEXT", "VK_EXT_host_image_copy");
+ skip |= ValidateStructType("vkCopyMemoryToImageEXT", "pCopyMemoryToImageInfo", "VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT", pCopyMemoryToImageInfo, VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT, true, kVUIDUndefined, kVUIDUndefined);
+ if (pCopyMemoryToImageInfo != nullptr)
+ {
+ skip |= ValidateStructPnext("vkCopyMemoryToImageEXT", "pCopyMemoryToImageInfo->pNext", nullptr, pCopyMemoryToImageInfo->pNext, 0, nullptr, GeneratedVulkanHeaderVersion, kVUIDUndefined, kVUIDUndefined, false, true);
+
+ skip |= ValidateFlags("vkCopyMemoryToImageEXT", "pCopyMemoryToImageInfo->flags", "VkHostImageCopyFlagBitsEXT", AllVkHostImageCopyFlagBitsEXT, pCopyMemoryToImageInfo->flags, kOptionalFlags, kVUIDUndefined);
+
+ skip |= ValidateRequiredHandle("vkCopyMemoryToImageEXT", "pCopyMemoryToImageInfo->dstImage", pCopyMemoryToImageInfo->dstImage);
+
+ skip |= ValidateRangedEnum("vkCopyMemoryToImageEXT", "pCopyMemoryToImageInfo->dstImageLayout", "VkImageLayout", pCopyMemoryToImageInfo->dstImageLayout, kVUIDUndefined);
+
+ skip |= ValidateStructTypeArray("vkCopyMemoryToImageEXT", "pCopyMemoryToImageInfo->regionCount", "pCopyMemoryToImageInfo->pRegions", "VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT", pCopyMemoryToImageInfo->regionCount, pCopyMemoryToImageInfo->pRegions, VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT, true, true, kVUIDUndefined, kVUIDUndefined, kVUIDUndefined);
+
+ if (pCopyMemoryToImageInfo->pRegions != nullptr)
+ {
+ for (uint32_t regionIndex = 0; regionIndex < pCopyMemoryToImageInfo->regionCount; ++regionIndex)
+ {
+ skip |= ValidateStructPnext("vkCopyMemoryToImageEXT", ParameterName("pCopyMemoryToImageInfo->pRegions[%i].pNext", ParameterName::IndexVector{ regionIndex }), nullptr, pCopyMemoryToImageInfo->pRegions[regionIndex].pNext, 0, nullptr, GeneratedVulkanHeaderVersion, kVUIDUndefined, kVUIDUndefined, false, true);
+
+ skip |= ValidateRequiredPointer("vkCopyMemoryToImageEXT", ParameterName("pCopyMemoryToImageInfo->pRegions[%i].pHostPointer", ParameterName::IndexVector{ regionIndex }), pCopyMemoryToImageInfo->pRegions[regionIndex].pHostPointer, kVUIDUndefined);
+
+ skip |= ValidateFlags("vkCopyMemoryToImageEXT", ParameterName("pCopyMemoryToImageInfo->pRegions[%i].imageSubresource.aspectMask", ParameterName::IndexVector{ regionIndex }), "VkImageAspectFlagBits", AllVkImageAspectFlagBits, pCopyMemoryToImageInfo->pRegions[regionIndex].imageSubresource.aspectMask, kRequiredFlags, "VUID-VkImageSubresourceLayers-aspectMask-parameter", "VUID-VkImageSubresourceLayers-aspectMask-requiredbitmask");
+
+ // No xml-driven validation
+
+ // No xml-driven validation
+ }
+ }
+ }
+ return skip;
+}
+
+bool StatelessValidation::PreCallValidateCopyImageToMemoryEXT(
+ VkDevice device,
+ const VkCopyImageToMemoryInfoEXT* pCopyImageToMemoryInfo) const {
+ bool skip = false;
+ if (!IsExtEnabled(device_extensions.vk_ext_host_image_copy)) skip |= OutputExtensionError("vkCopyImageToMemoryEXT", "VK_EXT_host_image_copy");
+ skip |= ValidateStructType("vkCopyImageToMemoryEXT", "pCopyImageToMemoryInfo", "VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT", pCopyImageToMemoryInfo, VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT, true, kVUIDUndefined, kVUIDUndefined);
+ if (pCopyImageToMemoryInfo != nullptr)
+ {
+ skip |= ValidateStructPnext("vkCopyImageToMemoryEXT", "pCopyImageToMemoryInfo->pNext", nullptr, pCopyImageToMemoryInfo->pNext, 0, nullptr, GeneratedVulkanHeaderVersion, kVUIDUndefined, kVUIDUndefined, false, true);
+
+ skip |= ValidateFlags("vkCopyImageToMemoryEXT", "pCopyImageToMemoryInfo->flags", "VkHostImageCopyFlagBitsEXT", AllVkHostImageCopyFlagBitsEXT, pCopyImageToMemoryInfo->flags, kOptionalFlags, kVUIDUndefined);
+
+ skip |= ValidateRequiredHandle("vkCopyImageToMemoryEXT", "pCopyImageToMemoryInfo->srcImage", pCopyImageToMemoryInfo->srcImage);
+
+ skip |= ValidateRangedEnum("vkCopyImageToMemoryEXT", "pCopyImageToMemoryInfo->srcImageLayout", "VkImageLayout", pCopyImageToMemoryInfo->srcImageLayout, kVUIDUndefined);
+
+ skip |= ValidateStructTypeArray("vkCopyImageToMemoryEXT", "pCopyImageToMemoryInfo->regionCount", "pCopyImageToMemoryInfo->pRegions", "VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT", pCopyImageToMemoryInfo->regionCount, pCopyImageToMemoryInfo->pRegions, VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT, true, true, kVUIDUndefined, kVUIDUndefined, kVUIDUndefined);
+
+ if (pCopyImageToMemoryInfo->pRegions != nullptr)
+ {
+ for (uint32_t regionIndex = 0; regionIndex < pCopyImageToMemoryInfo->regionCount; ++regionIndex)
+ {
+ skip |= ValidateStructPnext("vkCopyImageToMemoryEXT", ParameterName("pCopyImageToMemoryInfo->pRegions[%i].pNext", ParameterName::IndexVector{ regionIndex }), nullptr, pCopyImageToMemoryInfo->pRegions[regionIndex].pNext, 0, nullptr, GeneratedVulkanHeaderVersion, kVUIDUndefined, kVUIDUndefined, false, true);
+
+ skip |= ValidateRequiredPointer("vkCopyImageToMemoryEXT", ParameterName("pCopyImageToMemoryInfo->pRegions[%i].pHostPointer", ParameterName::IndexVector{ regionIndex }), pCopyImageToMemoryInfo->pRegions[regionIndex].pHostPointer, kVUIDUndefined);
+
+ skip |= ValidateFlags("vkCopyImageToMemoryEXT", ParameterName("pCopyImageToMemoryInfo->pRegions[%i].imageSubresource.aspectMask", ParameterName::IndexVector{ regionIndex }), "VkImageAspectFlagBits", AllVkImageAspectFlagBits, pCopyImageToMemoryInfo->pRegions[regionIndex].imageSubresource.aspectMask, kRequiredFlags, "VUID-VkImageSubresourceLayers-aspectMask-parameter", "VUID-VkImageSubresourceLayers-aspectMask-requiredbitmask");
+
+ // No xml-driven validation
+
+ // No xml-driven validation
+ }
+ }
+ }
+ return skip;
+}
+
+bool StatelessValidation::PreCallValidateCopyImageToImageEXT(
+ VkDevice device,
+ const VkCopyImageToImageInfoEXT* pCopyImageToImageInfo) const {
+ bool skip = false;
+ if (!IsExtEnabled(device_extensions.vk_ext_host_image_copy)) skip |= OutputExtensionError("vkCopyImageToImageEXT", "VK_EXT_host_image_copy");
+ skip |= ValidateStructType("vkCopyImageToImageEXT", "pCopyImageToImageInfo", "VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT", pCopyImageToImageInfo, VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT, true, kVUIDUndefined, kVUIDUndefined);
+ if (pCopyImageToImageInfo != nullptr)
+ {
+ skip |= ValidateStructPnext("vkCopyImageToImageEXT", "pCopyImageToImageInfo->pNext", nullptr, pCopyImageToImageInfo->pNext, 0, nullptr, GeneratedVulkanHeaderVersion, kVUIDUndefined, kVUIDUndefined, false, true);
+
+ skip |= ValidateFlags("vkCopyImageToImageEXT", "pCopyImageToImageInfo->flags", "VkHostImageCopyFlagBitsEXT", AllVkHostImageCopyFlagBitsEXT, pCopyImageToImageInfo->flags, kOptionalFlags, kVUIDUndefined);
+
+ skip |= ValidateRequiredHandle("vkCopyImageToImageEXT", "pCopyImageToImageInfo->srcImage", pCopyImageToImageInfo->srcImage);
+
+ skip |= ValidateRangedEnum("vkCopyImageToImageEXT", "pCopyImageToImageInfo->srcImageLayout", "VkImageLayout", pCopyImageToImageInfo->srcImageLayout, kVUIDUndefined);
+
+ skip |= ValidateRequiredHandle("vkCopyImageToImageEXT", "pCopyImageToImageInfo->dstImage", pCopyImageToImageInfo->dstImage);
+
+ skip |= ValidateRangedEnum("vkCopyImageToImageEXT", "pCopyImageToImageInfo->dstImageLayout", "VkImageLayout", pCopyImageToImageInfo->dstImageLayout, kVUIDUndefined);
+
+ skip |= ValidateStructTypeArray("vkCopyImageToImageEXT", "pCopyImageToImageInfo->regionCount", "pCopyImageToImageInfo->pRegions", "VK_STRUCTURE_TYPE_IMAGE_COPY_2", pCopyImageToImageInfo->regionCount, pCopyImageToImageInfo->pRegions, VK_STRUCTURE_TYPE_IMAGE_COPY_2, true, true, "VUID-VkImageCopy2-sType-sType", kVUIDUndefined, kVUIDUndefined);
+
+ if (pCopyImageToImageInfo->pRegions != nullptr)
+ {
+ for (uint32_t regionIndex = 0; regionIndex < pCopyImageToImageInfo->regionCount; ++regionIndex)
+ {
+ skip |= ValidateStructPnext("vkCopyImageToImageEXT", ParameterName("pCopyImageToImageInfo->pRegions[%i].pNext", ParameterName::IndexVector{ regionIndex }), nullptr, pCopyImageToImageInfo->pRegions[regionIndex].pNext, 0, nullptr, GeneratedVulkanHeaderVersion, "VUID-VkImageCopy2-pNext-pNext", kVUIDUndefined, false, true);
+
+ skip |= ValidateFlags("vkCopyImageToImageEXT", ParameterName("pCopyImageToImageInfo->pRegions[%i].srcSubresource.aspectMask", ParameterName::IndexVector{ regionIndex }), "VkImageAspectFlagBits", AllVkImageAspectFlagBits, pCopyImageToImageInfo->pRegions[regionIndex].srcSubresource.aspectMask, kRequiredFlags, "VUID-VkImageSubresourceLayers-aspectMask-parameter", "VUID-VkImageSubresourceLayers-aspectMask-requiredbitmask");
+
+ // No xml-driven validation
+
+ skip |= ValidateFlags("vkCopyImageToImageEXT", ParameterName("pCopyImageToImageInfo->pRegions[%i].dstSubresource.aspectMask", ParameterName::IndexVector{ regionIndex }), "VkImageAspectFlagBits", AllVkImageAspectFlagBits, pCopyImageToImageInfo->pRegions[regionIndex].dstSubresource.aspectMask, kRequiredFlags, "VUID-VkImageSubresourceLayers-aspectMask-parameter", "VUID-VkImageSubresourceLayers-aspectMask-requiredbitmask");
+
+ // No xml-driven validation
+
+ // No xml-driven validation
+ }
+ }
+ }
+ return skip;
+}
+
+bool StatelessValidation::PreCallValidateTransitionImageLayoutEXT(
+ VkDevice device,
+ uint32_t transitionCount,
+ const VkHostImageLayoutTransitionInfoEXT* pTransitions) const {
+ bool skip = false;
+ if (!IsExtEnabled(device_extensions.vk_ext_host_image_copy)) skip |= OutputExtensionError("vkTransitionImageLayoutEXT", "VK_EXT_host_image_copy");
+ skip |= ValidateStructTypeArray("vkTransitionImageLayoutEXT", "transitionCount", "pTransitions", "VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT", transitionCount, pTransitions, VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT, true, true, "VUID-VkHostImageLayoutTransitionInfoEXT-sType-sType", "VUID-vkTransitionImageLayoutEXT-pTransitions-parameter", "VUID-vkTransitionImageLayoutEXT-transitionCount-arraylength");
+ if (pTransitions != nullptr)
+ {
+ for (uint32_t transitionIndex = 0; transitionIndex < transitionCount; ++transitionIndex)
+ {
+ skip |= ValidateStructPnext("vkTransitionImageLayoutEXT", ParameterName("pTransitions[%i].pNext", ParameterName::IndexVector{ transitionIndex }), nullptr, pTransitions[transitionIndex].pNext, 0, nullptr, GeneratedVulkanHeaderVersion, "VUID-VkHostImageLayoutTransitionInfoEXT-pNext-pNext", kVUIDUndefined, false, true);
+
+ skip |= ValidateRequiredHandle("vkTransitionImageLayoutEXT", ParameterName("pTransitions[%i].image", ParameterName::IndexVector{ transitionIndex }), pTransitions[transitionIndex].image);
+
+ skip |= ValidateRangedEnum("vkTransitionImageLayoutEXT", ParameterName("pTransitions[%i].oldLayout", ParameterName::IndexVector{ transitionIndex }), "VkImageLayout", pTransitions[transitionIndex].oldLayout, "VUID-VkHostImageLayoutTransitionInfoEXT-oldLayout-parameter");
+
+ skip |= ValidateRangedEnum("vkTransitionImageLayoutEXT", ParameterName("pTransitions[%i].newLayout", ParameterName::IndexVector{ transitionIndex }), "VkImageLayout", pTransitions[transitionIndex].newLayout, "VUID-VkHostImageLayoutTransitionInfoEXT-newLayout-parameter");
+
+ skip |= ValidateFlags("vkTransitionImageLayoutEXT", ParameterName("pTransitions[%i].subresourceRange.aspectMask", ParameterName::IndexVector{ transitionIndex }), "VkImageAspectFlagBits", AllVkImageAspectFlagBits, pTransitions[transitionIndex].subresourceRange.aspectMask, kRequiredFlags, "VUID-VkImageSubresourceRange-aspectMask-parameter", "VUID-VkImageSubresourceRange-aspectMask-requiredbitmask");
+ }
+ }
+ return skip;
+}
+
+bool StatelessValidation::PreCallValidateGetImageSubresourceLayout2EXT(
+ VkDevice device,
+ VkImage image,
+ const VkImageSubresource2EXT* pSubresource,
+ VkSubresourceLayout2EXT* pLayout) const {
+ bool skip = false;
+ if (!(IsExtEnabled(device_extensions.vk_ext_host_image_copy) || IsExtEnabled(device_extensions.vk_ext_image_compression_control))) skip |= OutputExtensionError("vkGetImageSubresourceLayout2EXT", "VK_EXT_host_image_copy || VK_EXT_image_compression_control");
+ skip |= ValidateRequiredHandle("vkGetImageSubresourceLayout2EXT", "image", image);
+ skip |= ValidateStructType("vkGetImageSubresourceLayout2EXT", "pSubresource", "VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT", pSubresource, VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT, true, "VUID-vkGetImageSubresourceLayout2EXT-pSubresource-parameter", "VUID-VkImageSubresource2EXT-sType-sType");
+ if (pSubresource != nullptr)
+ {
+ skip |= ValidateStructPnext("vkGetImageSubresourceLayout2EXT", "pSubresource->pNext", nullptr, pSubresource->pNext, 0, nullptr, GeneratedVulkanHeaderVersion, "VUID-VkImageSubresource2EXT-pNext-pNext", kVUIDUndefined, false, true);
+
+ skip |= ValidateFlags("vkGetImageSubresourceLayout2EXT", "pSubresource->imageSubresource.aspectMask", "VkImageAspectFlagBits", AllVkImageAspectFlagBits, pSubresource->imageSubresource.aspectMask, kRequiredFlags, "VUID-VkImageSubresource-aspectMask-parameter", "VUID-VkImageSubresource-aspectMask-requiredbitmask");
+ }
+ skip |= ValidateStructType("vkGetImageSubresourceLayout2EXT", "pLayout", "VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT", pLayout, VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT, true, "VUID-vkGetImageSubresourceLayout2EXT-pLayout-parameter", "VUID-VkSubresourceLayout2EXT-sType-sType");
+ if (pLayout != nullptr)
+ {
+ constexpr std::array allowed_structs_VkSubresourceLayout2EXT = { VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT, VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT };
+
+ skip |= ValidateStructPnext("vkGetImageSubresourceLayout2EXT", "pLayout->pNext", "VkImageCompressionPropertiesEXT, VkSubresourceHostMemcpySizeEXT", pLayout->pNext, allowed_structs_VkSubresourceLayout2EXT.size(), allowed_structs_VkSubresourceLayout2EXT.data(), GeneratedVulkanHeaderVersion, "VUID-VkSubresourceLayout2EXT-pNext-pNext", "VUID-VkSubresourceLayout2EXT-sType-unique", false, false);
+ }
+ return skip;
+}
+
bool StatelessValidation::PreCallValidateReleaseSwapchainImagesEXT(
VkDevice device,
const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo) const {
@@ -17088,8 +17287,6 @@ bool StatelessValidation::PreCallValidateGetGeneratedCommandsMemoryRequirementsN
skip |= ValidateRangedEnum("vkGetGeneratedCommandsMemoryRequirementsNV", "pInfo->pipelineBindPoint", "VkPipelineBindPoint", pInfo->pipelineBindPoint, "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipelineBindPoint-parameter");
- skip |= ValidateRequiredHandle("vkGetGeneratedCommandsMemoryRequirementsNV", "pInfo->pipeline", pInfo->pipeline);
-
skip |= ValidateRequiredHandle("vkGetGeneratedCommandsMemoryRequirementsNV", "pInfo->indirectCommandsLayout", pInfo->indirectCommandsLayout);
}
skip |= ValidateStructType("vkGetGeneratedCommandsMemoryRequirementsNV", "pMemoryRequirements", "VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2", pMemoryRequirements, VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2, true, "VUID-vkGetGeneratedCommandsMemoryRequirementsNV-pMemoryRequirements-parameter", "VUID-VkMemoryRequirements2-sType-sType");
@@ -17598,31 +17795,6 @@ bool StatelessValidation::PreCallValidateCmdSetFragmentShadingRateEnumNV(
return skip;
}
-bool StatelessValidation::PreCallValidateGetImageSubresourceLayout2EXT(
- VkDevice device,
- VkImage image,
- const VkImageSubresource2EXT* pSubresource,
- VkSubresourceLayout2EXT* pLayout) const {
- bool skip = false;
- if (!IsExtEnabled(device_extensions.vk_ext_image_compression_control)) skip |= OutputExtensionError("vkGetImageSubresourceLayout2EXT", "VK_EXT_image_compression_control");
- skip |= ValidateRequiredHandle("vkGetImageSubresourceLayout2EXT", "image", image);
- skip |= ValidateStructType("vkGetImageSubresourceLayout2EXT", "pSubresource", "VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT", pSubresource, VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT, true, "VUID-vkGetImageSubresourceLayout2EXT-pSubresource-parameter", "VUID-VkImageSubresource2EXT-sType-sType");
- if (pSubresource != nullptr)
- {
- skip |= ValidateStructPnext("vkGetImageSubresourceLayout2EXT", "pSubresource->pNext", nullptr, pSubresource->pNext, 0, nullptr, GeneratedVulkanHeaderVersion, "VUID-VkImageSubresource2EXT-pNext-pNext", kVUIDUndefined, false, true);
-
- skip |= ValidateFlags("vkGetImageSubresourceLayout2EXT", "pSubresource->imageSubresource.aspectMask", "VkImageAspectFlagBits", AllVkImageAspectFlagBits, pSubresource->imageSubresource.aspectMask, kRequiredFlags, "VUID-VkImageSubresource-aspectMask-parameter", "VUID-VkImageSubresource-aspectMask-requiredbitmask");
- }
- skip |= ValidateStructType("vkGetImageSubresourceLayout2EXT", "pLayout", "VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT", pLayout, VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT, true, "VUID-vkGetImageSubresourceLayout2EXT-pLayout-parameter", "VUID-VkSubresourceLayout2EXT-sType-sType");
- if (pLayout != nullptr)
- {
- constexpr std::array allowed_structs_VkSubresourceLayout2EXT = { VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT };
-
- skip |= ValidateStructPnext("vkGetImageSubresourceLayout2EXT", "pLayout->pNext", "VkImageCompressionPropertiesEXT", pLayout->pNext, allowed_structs_VkSubresourceLayout2EXT.size(), allowed_structs_VkSubresourceLayout2EXT.data(), GeneratedVulkanHeaderVersion, "VUID-VkSubresourceLayout2EXT-pNext-pNext", "VUID-VkSubresourceLayout2EXT-sType-unique", false, false);
- }
- return skip;
-}
-
bool StatelessValidation::PreCallValidateGetDeviceFaultInfoEXT(
VkDevice device,
VkDeviceFaultCountsEXT* pFaultCounts,
@@ -18660,6 +18832,88 @@ bool StatelessValidation::PreCallValidateCmdDecompressMemoryIndirectCountNV(
return skip;
}
+bool StatelessValidation::PreCallValidateGetPipelineIndirectMemoryRequirementsNV(
+ VkDevice device,
+ const VkComputePipelineCreateInfo* pCreateInfo,
+ VkMemoryRequirements2* pMemoryRequirements) const {
+ bool skip = false;
+ if (!IsExtEnabled(device_extensions.vk_nv_device_generated_commands_compute)) skip |= OutputExtensionError("vkGetPipelineIndirectMemoryRequirementsNV", "VK_NV_device_generated_commands_compute");
+ skip |= ValidateStructType("vkGetPipelineIndirectMemoryRequirementsNV", "pCreateInfo", "VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO", pCreateInfo, VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO, true, kVUIDUndefined, "VUID-VkComputePipelineCreateInfo-sType-sType");
+ if (pCreateInfo != nullptr)
+ {
+ constexpr std::array allowed_structs_VkComputePipelineCreateInfo = { VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD, VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO, VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT, VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI };
+
+ skip |= ValidateStructPnext("vkGetPipelineIndirectMemoryRequirementsNV", "pCreateInfo->pNext", "VkPipelineCompilerControlCreateInfoAMD, VkPipelineCreationFeedbackCreateInfo, VkPipelineRobustnessCreateInfoEXT, VkSubpassShadingPipelineCreateInfoHUAWEI", pCreateInfo->pNext, allowed_structs_VkComputePipelineCreateInfo.size(), allowed_structs_VkComputePipelineCreateInfo.data(), GeneratedVulkanHeaderVersion, "VUID-VkComputePipelineCreateInfo-pNext-pNext", "VUID-VkComputePipelineCreateInfo-sType-unique", false, true);
+
+ skip |= ValidateFlags("vkGetPipelineIndirectMemoryRequirementsNV", "pCreateInfo->flags", "VkPipelineCreateFlagBits", AllVkPipelineCreateFlagBits, pCreateInfo->flags, kOptionalFlags, "VUID-VkComputePipelineCreateInfo-flags-parameter");
+
+ skip |= ValidateStructType("vkGetPipelineIndirectMemoryRequirementsNV", "pCreateInfo->stage", "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO", &(pCreateInfo->stage), VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO, false, kVUIDUndefined, "VUID-VkPipelineShaderStageCreateInfo-sType-sType");
+
+ constexpr std::array allowed_structs_VkPipelineShaderStageCreateInfo = { VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT, VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT, VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT, VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO, VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO, VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT };
+
+ skip |= ValidateStructPnext("vkGetPipelineIndirectMemoryRequirementsNV", "pCreateInfo->stage.pNext", "VkDebugUtilsObjectNameInfoEXT, VkPipelineRobustnessCreateInfoEXT, VkPipelineShaderStageModuleIdentifierCreateInfoEXT, VkPipelineShaderStageRequiredSubgroupSizeCreateInfo, VkShaderModuleCreateInfo, VkShaderModuleValidationCacheCreateInfoEXT", pCreateInfo->stage.pNext, allowed_structs_VkPipelineShaderStageCreateInfo.size(), allowed_structs_VkPipelineShaderStageCreateInfo.data(), GeneratedVulkanHeaderVersion, "VUID-VkPipelineShaderStageCreateInfo-pNext-pNext", "VUID-VkPipelineShaderStageCreateInfo-sType-unique", false, true);
+
+ skip |= ValidateFlags("vkGetPipelineIndirectMemoryRequirementsNV", "pCreateInfo->stage.flags", "VkPipelineShaderStageCreateFlagBits", AllVkPipelineShaderStageCreateFlagBits, pCreateInfo->stage.flags, kOptionalFlags, "VUID-VkPipelineShaderStageCreateInfo-flags-parameter");
+
+ skip |= ValidateFlags("vkGetPipelineIndirectMemoryRequirementsNV", "pCreateInfo->stage.stage", "VkShaderStageFlagBits", AllVkShaderStageFlagBits, pCreateInfo->stage.stage, kRequiredSingleBit, "VUID-VkPipelineShaderStageCreateInfo-stage-parameter", "VUID-VkPipelineShaderStageCreateInfo-stage-parameter");
+
+ skip |= ValidateRequiredPointer("vkGetPipelineIndirectMemoryRequirementsNV", "pCreateInfo->stage.pName", pCreateInfo->stage.pName, "VUID-VkPipelineShaderStageCreateInfo-pName-parameter");
+
+ if (pCreateInfo->stage.pSpecializationInfo != nullptr)
+ {
+ skip |= ValidateArray("vkGetPipelineIndirectMemoryRequirementsNV", "pCreateInfo->stage.pSpecializationInfo->mapEntryCount", "pCreateInfo->stage.pSpecializationInfo->pMapEntries", pCreateInfo->stage.pSpecializationInfo->mapEntryCount, &pCreateInfo->stage.pSpecializationInfo->pMapEntries, false, true, kVUIDUndefined, "VUID-VkSpecializationInfo-pMapEntries-parameter");
+
+ if (pCreateInfo->stage.pSpecializationInfo->pMapEntries != nullptr)
+ {
+ for (uint32_t mapEntryIndex = 0; mapEntryIndex < pCreateInfo->stage.pSpecializationInfo->mapEntryCount; ++mapEntryIndex)
+ {
+ // No xml-driven validation
+ }
+ }
+
+ skip |= ValidateArray("vkGetPipelineIndirectMemoryRequirementsNV", "pCreateInfo->stage.pSpecializationInfo->dataSize", "pCreateInfo->stage.pSpecializationInfo->pData", pCreateInfo->stage.pSpecializationInfo->dataSize, &pCreateInfo->stage.pSpecializationInfo->pData, false, true, kVUIDUndefined, "VUID-VkSpecializationInfo-pData-parameter");
+ }
+
+ skip |= ValidateRequiredHandle("vkGetPipelineIndirectMemoryRequirementsNV", "pCreateInfo->layout", pCreateInfo->layout);
+ }
+ skip |= ValidateStructType("vkGetPipelineIndirectMemoryRequirementsNV", "pMemoryRequirements", "VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2", pMemoryRequirements, VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2, true, kVUIDUndefined, "VUID-VkMemoryRequirements2-sType-sType");
+ if (pMemoryRequirements != nullptr)
+ {
+ constexpr std::array allowed_structs_VkMemoryRequirements2 = { VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS };
+
+ skip |= ValidateStructPnext("vkGetPipelineIndirectMemoryRequirementsNV", "pMemoryRequirements->pNext", "VkMemoryDedicatedRequirements", pMemoryRequirements->pNext, allowed_structs_VkMemoryRequirements2.size(), allowed_structs_VkMemoryRequirements2.data(), GeneratedVulkanHeaderVersion, "VUID-VkMemoryRequirements2-pNext-pNext", "VUID-VkMemoryRequirements2-sType-unique", false, false);
+ }
+ return skip;
+}
+
+bool StatelessValidation::PreCallValidateCmdUpdatePipelineIndirectBuffer(
+ VkCommandBuffer commandBuffer,
+ VkPipelineBindPoint pipelineBindPoint,
+ VkPipeline pipeline) const {
+ bool skip = false;
+ if (!IsExtEnabled(device_extensions.vk_nv_device_generated_commands_compute)) skip |= OutputExtensionError("vkCmdUpdatePipelineIndirectBuffer", "VK_NV_device_generated_commands_compute");
+ skip |= ValidateRangedEnum("vkCmdUpdatePipelineIndirectBuffer", "pipelineBindPoint", "VkPipelineBindPoint", pipelineBindPoint, "VUID-vkCmdUpdatePipelineIndirectBuffer-pipelineBindPoint-parameter");
+ skip |= ValidateRequiredHandle("vkCmdUpdatePipelineIndirectBuffer", "pipeline", pipeline);
+ return skip;
+}
+
+bool StatelessValidation::PreCallValidateGetPipelineIndirectDeviceAddressNV(
+ VkDevice device,
+ const VkPipelineIndirectDeviceAddressInfoNV* pInfo) const {
+ bool skip = false;
+ if (!IsExtEnabled(device_extensions.vk_nv_device_generated_commands_compute)) skip |= OutputExtensionError("vkGetPipelineIndirectDeviceAddressNV", "VK_NV_device_generated_commands_compute");
+ skip |= ValidateStructType("vkGetPipelineIndirectDeviceAddressNV", "pInfo", "VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV", pInfo, VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV, true, "VUID-vkGetPipelineIndirectDeviceAddressNV-pInfo-parameter", "VUID-VkPipelineIndirectDeviceAddressInfoNV-sType-sType");
+ if (pInfo != nullptr)
+ {
+ skip |= ValidateStructPnext("vkGetPipelineIndirectDeviceAddressNV", "pInfo->pNext", nullptr, pInfo->pNext, 0, nullptr, GeneratedVulkanHeaderVersion, "VUID-VkPipelineIndirectDeviceAddressInfoNV-pNext-pNext", kVUIDUndefined, false, true);
+
+ skip |= ValidateRangedEnum("vkGetPipelineIndirectDeviceAddressNV", "pInfo->pipelineBindPoint", "VkPipelineBindPoint", pInfo->pipelineBindPoint, "VUID-VkPipelineIndirectDeviceAddressInfoNV-pipelineBindPoint-parameter");
+
+ skip |= ValidateRequiredHandle("vkGetPipelineIndirectDeviceAddressNV", "pInfo->pipeline", pInfo->pipeline);
+ }
+ return skip;
+}
+
bool StatelessValidation::PreCallValidateCmdSetTessellationDomainOriginEXT(
VkCommandBuffer commandBuffer,
VkTessellationDomainOrigin domainOrigin) const {
diff --git a/layers/vulkan/generated/stateless_validation_helper.h b/layers/vulkan/generated/stateless_validation_helper.h
index 6cf0a6a88ea..70d46fc2169 100644
--- a/layers/vulkan/generated/stateless_validation_helper.h
+++ b/layers/vulkan/generated/stateless_validation_helper.h
@@ -2231,6 +2231,24 @@ bool PreCallValidateCmdSetStencilOpEXT(
VkStencilOp passOp,
VkStencilOp depthFailOp,
VkCompareOp compareOp) const override;
+bool PreCallValidateCopyMemoryToImageEXT(
+ VkDevice device,
+ const VkCopyMemoryToImageInfoEXT* pCopyMemoryToImageInfo) const override;
+bool PreCallValidateCopyImageToMemoryEXT(
+ VkDevice device,
+ const VkCopyImageToMemoryInfoEXT* pCopyImageToMemoryInfo) const override;
+bool PreCallValidateCopyImageToImageEXT(
+ VkDevice device,
+ const VkCopyImageToImageInfoEXT* pCopyImageToImageInfo) const override;
+bool PreCallValidateTransitionImageLayoutEXT(
+ VkDevice device,
+ uint32_t transitionCount,
+ const VkHostImageLayoutTransitionInfoEXT* pTransitions) const override;
+bool PreCallValidateGetImageSubresourceLayout2EXT(
+ VkDevice device,
+ VkImage image,
+ const VkImageSubresource2EXT* pSubresource,
+ VkSubresourceLayout2EXT* pLayout) const override;
bool PreCallValidateReleaseSwapchainImagesEXT(
VkDevice device,
const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo) const override;
@@ -2352,11 +2370,6 @@ bool PreCallValidateCmdSetFragmentShadingRateEnumNV(
VkCommandBuffer commandBuffer,
VkFragmentShadingRateNV shadingRate,
const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) const override;
-bool PreCallValidateGetImageSubresourceLayout2EXT(
- VkDevice device,
- VkImage image,
- const VkImageSubresource2EXT* pSubresource,
- VkSubresourceLayout2EXT* pLayout) const override;
bool PreCallValidateGetDeviceFaultInfoEXT(
VkDevice device,
VkDeviceFaultCountsEXT* pFaultCounts,
@@ -2617,6 +2630,17 @@ bool PreCallValidateCmdDecompressMemoryIndirectCountNV(
VkDeviceAddress indirectCommandsAddress,
VkDeviceAddress indirectCommandsCountAddress,
uint32_t stride) const override;
+bool PreCallValidateGetPipelineIndirectMemoryRequirementsNV(
+ VkDevice device,
+ const VkComputePipelineCreateInfo* pCreateInfo,
+ VkMemoryRequirements2* pMemoryRequirements) const override;
+bool PreCallValidateCmdUpdatePipelineIndirectBuffer(
+ VkCommandBuffer commandBuffer,
+ VkPipelineBindPoint pipelineBindPoint,
+ VkPipeline pipeline) const override;
+bool PreCallValidateGetPipelineIndirectDeviceAddressNV(
+ VkDevice device,
+ const VkPipelineIndirectDeviceAddressInfoNV* pInfo) const override;
bool PreCallValidateCmdSetTessellationDomainOriginEXT(
VkCommandBuffer commandBuffer,
VkTessellationDomainOrigin domainOrigin) const override;
diff --git a/layers/vulkan/generated/thread_safety.cpp b/layers/vulkan/generated/thread_safety.cpp
index a372ed78546..e484e574f0a 100644
--- a/layers/vulkan/generated/thread_safety.cpp
+++ b/layers/vulkan/generated/thread_safety.cpp
@@ -7415,6 +7415,78 @@ void ThreadSafety::PostCallRecordCmdSetStencilOpEXT(
// Host access to commandBuffer must be externally synchronized
}
+void ThreadSafety::PreCallRecordCopyMemoryToImageEXT(
+ VkDevice device,
+ const VkCopyMemoryToImageInfoEXT* pCopyMemoryToImageInfo) {
+ StartReadObjectParentInstance(device, "vkCopyMemoryToImageEXT");
+}
+
+void ThreadSafety::PostCallRecordCopyMemoryToImageEXT(
+ VkDevice device,
+ const VkCopyMemoryToImageInfoEXT* pCopyMemoryToImageInfo,
+ VkResult result) {
+ FinishReadObjectParentInstance(device, "vkCopyMemoryToImageEXT");
+}
+
+void ThreadSafety::PreCallRecordCopyImageToMemoryEXT(
+ VkDevice device,
+ const VkCopyImageToMemoryInfoEXT* pCopyImageToMemoryInfo) {
+ StartReadObjectParentInstance(device, "vkCopyImageToMemoryEXT");
+}
+
+void ThreadSafety::PostCallRecordCopyImageToMemoryEXT(
+ VkDevice device,
+ const VkCopyImageToMemoryInfoEXT* pCopyImageToMemoryInfo,
+ VkResult result) {
+ FinishReadObjectParentInstance(device, "vkCopyImageToMemoryEXT");
+}
+
+void ThreadSafety::PreCallRecordCopyImageToImageEXT(
+ VkDevice device,
+ const VkCopyImageToImageInfoEXT* pCopyImageToImageInfo) {
+ StartReadObjectParentInstance(device, "vkCopyImageToImageEXT");
+}
+
+void ThreadSafety::PostCallRecordCopyImageToImageEXT(
+ VkDevice device,
+ const VkCopyImageToImageInfoEXT* pCopyImageToImageInfo,
+ VkResult result) {
+ FinishReadObjectParentInstance(device, "vkCopyImageToImageEXT");
+}
+
+void ThreadSafety::PreCallRecordTransitionImageLayoutEXT(
+ VkDevice device,
+ uint32_t transitionCount,
+ const VkHostImageLayoutTransitionInfoEXT* pTransitions) {
+ StartReadObjectParentInstance(device, "vkTransitionImageLayoutEXT");
+}
+
+void ThreadSafety::PostCallRecordTransitionImageLayoutEXT(
+ VkDevice device,
+ uint32_t transitionCount,
+ const VkHostImageLayoutTransitionInfoEXT* pTransitions,
+ VkResult result) {
+ FinishReadObjectParentInstance(device, "vkTransitionImageLayoutEXT");
+}
+
+void ThreadSafety::PreCallRecordGetImageSubresourceLayout2EXT(
+ VkDevice device,
+ VkImage image,
+ const VkImageSubresource2EXT* pSubresource,
+ VkSubresourceLayout2EXT* pLayout) {
+ StartReadObjectParentInstance(device, "vkGetImageSubresourceLayout2EXT");
+ StartReadObject(image, "vkGetImageSubresourceLayout2EXT");
+}
+
+void ThreadSafety::PostCallRecordGetImageSubresourceLayout2EXT(
+ VkDevice device,
+ VkImage image,
+ const VkImageSubresource2EXT* pSubresource,
+ VkSubresourceLayout2EXT* pLayout) {
+ FinishReadObjectParentInstance(device, "vkGetImageSubresourceLayout2EXT");
+ FinishReadObject(image, "vkGetImageSubresourceLayout2EXT");
+}
+
void ThreadSafety::PreCallRecordReleaseSwapchainImagesEXT(
VkDevice device,
const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo) {
@@ -7857,24 +7929,6 @@ void ThreadSafety::PostCallRecordCmdSetFragmentShadingRateEnumNV(
// Host access to commandBuffer must be externally synchronized
}
-void ThreadSafety::PreCallRecordGetImageSubresourceLayout2EXT(
- VkDevice device,
- VkImage image,
- const VkImageSubresource2EXT* pSubresource,
- VkSubresourceLayout2EXT* pLayout) {
- StartReadObjectParentInstance(device, "vkGetImageSubresourceLayout2EXT");
- StartReadObject(image, "vkGetImageSubresourceLayout2EXT");
-}
-
-void ThreadSafety::PostCallRecordGetImageSubresourceLayout2EXT(
- VkDevice device,
- VkImage image,
- const VkImageSubresource2EXT* pSubresource,
- VkSubresourceLayout2EXT* pLayout) {
- FinishReadObjectParentInstance(device, "vkGetImageSubresourceLayout2EXT");
- FinishReadObject(image, "vkGetImageSubresourceLayout2EXT");
-}
-
void ThreadSafety::PreCallRecordGetDeviceFaultInfoEXT(
VkDevice device,
VkDeviceFaultCountsEXT* pFaultCounts,
@@ -8767,6 +8821,51 @@ void ThreadSafety::PostCallRecordCmdDecompressMemoryIndirectCountNV(
// Host access to commandBuffer must be externally synchronized
}
+void ThreadSafety::PreCallRecordGetPipelineIndirectMemoryRequirementsNV(
+ VkDevice device,
+ const VkComputePipelineCreateInfo* pCreateInfo,
+ VkMemoryRequirements2* pMemoryRequirements) {
+ StartReadObjectParentInstance(device, "vkGetPipelineIndirectMemoryRequirementsNV");
+}
+
+void ThreadSafety::PostCallRecordGetPipelineIndirectMemoryRequirementsNV(
+ VkDevice device,
+ const VkComputePipelineCreateInfo* pCreateInfo,
+ VkMemoryRequirements2* pMemoryRequirements) {
+ FinishReadObjectParentInstance(device, "vkGetPipelineIndirectMemoryRequirementsNV");
+}
+
+void ThreadSafety::PreCallRecordCmdUpdatePipelineIndirectBuffer(
+ VkCommandBuffer commandBuffer,
+ VkPipelineBindPoint pipelineBindPoint,
+ VkPipeline pipeline) {
+ StartWriteObject(commandBuffer, "vkCmdUpdatePipelineIndirectBuffer");
+ StartReadObject(pipeline, "vkCmdUpdatePipelineIndirectBuffer");
+ // Host access to commandBuffer must be externally synchronized
+}
+
+void ThreadSafety::PostCallRecordCmdUpdatePipelineIndirectBuffer(
+ VkCommandBuffer commandBuffer,
+ VkPipelineBindPoint pipelineBindPoint,
+ VkPipeline pipeline) {
+ FinishWriteObject(commandBuffer, "vkCmdUpdatePipelineIndirectBuffer");
+ FinishReadObject(pipeline, "vkCmdUpdatePipelineIndirectBuffer");
+ // Host access to commandBuffer must be externally synchronized
+}
+
+void ThreadSafety::PreCallRecordGetPipelineIndirectDeviceAddressNV(
+ VkDevice device,
+ const VkPipelineIndirectDeviceAddressInfoNV* pInfo) {
+ StartReadObjectParentInstance(device, "vkGetPipelineIndirectDeviceAddressNV");
+}
+
+void ThreadSafety::PostCallRecordGetPipelineIndirectDeviceAddressNV(
+ VkDevice device,
+ const VkPipelineIndirectDeviceAddressInfoNV* pInfo,
+ VkDeviceAddress result) {
+ FinishReadObjectParentInstance(device, "vkGetPipelineIndirectDeviceAddressNV");
+}
+
void ThreadSafety::PreCallRecordCmdSetTessellationDomainOriginEXT(
VkCommandBuffer commandBuffer,
VkTessellationDomainOrigin domainOrigin) {
diff --git a/layers/vulkan/generated/thread_safety_commands.h b/layers/vulkan/generated/thread_safety_commands.h
index 929873e2090..6ecc9f06bec 100644
--- a/layers/vulkan/generated/thread_safety_commands.h
+++ b/layers/vulkan/generated/thread_safety_commands.h
@@ -4895,6 +4895,56 @@ void PostCallRecordCmdSetStencilOpEXT(
VkStencilOp depthFailOp,
VkCompareOp compareOp) override;
+void PreCallRecordCopyMemoryToImageEXT(
+ VkDevice device,
+ const VkCopyMemoryToImageInfoEXT* pCopyMemoryToImageInfo) override;
+
+void PostCallRecordCopyMemoryToImageEXT(
+ VkDevice device,
+ const VkCopyMemoryToImageInfoEXT* pCopyMemoryToImageInfo,
+ VkResult result) override;
+
+void PreCallRecordCopyImageToMemoryEXT(
+ VkDevice device,
+ const VkCopyImageToMemoryInfoEXT* pCopyImageToMemoryInfo) override;
+
+void PostCallRecordCopyImageToMemoryEXT(
+ VkDevice device,
+ const VkCopyImageToMemoryInfoEXT* pCopyImageToMemoryInfo,
+ VkResult result) override;
+
+void PreCallRecordCopyImageToImageEXT(
+ VkDevice device,
+ const VkCopyImageToImageInfoEXT* pCopyImageToImageInfo) override;
+
+void PostCallRecordCopyImageToImageEXT(
+ VkDevice device,
+ const VkCopyImageToImageInfoEXT* pCopyImageToImageInfo,
+ VkResult result) override;
+
+void PreCallRecordTransitionImageLayoutEXT(
+ VkDevice device,
+ uint32_t transitionCount,
+ const VkHostImageLayoutTransitionInfoEXT* pTransitions) override;
+
+void PostCallRecordTransitionImageLayoutEXT(
+ VkDevice device,
+ uint32_t transitionCount,
+ const VkHostImageLayoutTransitionInfoEXT* pTransitions,
+ VkResult result) override;
+
+void PreCallRecordGetImageSubresourceLayout2EXT(
+ VkDevice device,
+ VkImage image,
+ const VkImageSubresource2EXT* pSubresource,
+ VkSubresourceLayout2EXT* pLayout) override;
+
+void PostCallRecordGetImageSubresourceLayout2EXT(
+ VkDevice device,
+ VkImage image,
+ const VkImageSubresource2EXT* pSubresource,
+ VkSubresourceLayout2EXT* pLayout) override;
+
void PreCallRecordReleaseSwapchainImagesEXT(
VkDevice device,
const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo) override;
@@ -5187,18 +5237,6 @@ void PostCallRecordCmdSetFragmentShadingRateEnumNV(
VkFragmentShadingRateNV shadingRate,
const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) override;
-void PreCallRecordGetImageSubresourceLayout2EXT(
- VkDevice device,
- VkImage image,
- const VkImageSubresource2EXT* pSubresource,
- VkSubresourceLayout2EXT* pLayout) override;
-
-void PostCallRecordGetImageSubresourceLayout2EXT(
- VkDevice device,
- VkImage image,
- const VkImageSubresource2EXT* pSubresource,
- VkSubresourceLayout2EXT* pLayout) override;
-
void PreCallRecordGetDeviceFaultInfoEXT(
VkDevice device,
VkDeviceFaultCountsEXT* pFaultCounts,
@@ -5780,6 +5818,35 @@ void PostCallRecordCmdDecompressMemoryIndirectCountNV(
VkDeviceAddress indirectCommandsCountAddress,
uint32_t stride) override;
+void PreCallRecordGetPipelineIndirectMemoryRequirementsNV(
+ VkDevice device,
+ const VkComputePipelineCreateInfo* pCreateInfo,
+ VkMemoryRequirements2* pMemoryRequirements) override;
+
+void PostCallRecordGetPipelineIndirectMemoryRequirementsNV(
+ VkDevice device,
+ const VkComputePipelineCreateInfo* pCreateInfo,
+ VkMemoryRequirements2* pMemoryRequirements) override;
+
+void PreCallRecordCmdUpdatePipelineIndirectBuffer(
+ VkCommandBuffer commandBuffer,
+ VkPipelineBindPoint pipelineBindPoint,
+ VkPipeline pipeline) override;
+
+void PostCallRecordCmdUpdatePipelineIndirectBuffer(
+ VkCommandBuffer commandBuffer,
+ VkPipelineBindPoint pipelineBindPoint,
+ VkPipeline pipeline) override;
+
+void PreCallRecordGetPipelineIndirectDeviceAddressNV(
+ VkDevice device,
+ const VkPipelineIndirectDeviceAddressInfoNV* pInfo) override;
+
+void PostCallRecordGetPipelineIndirectDeviceAddressNV(
+ VkDevice device,
+ const VkPipelineIndirectDeviceAddressInfoNV* pInfo,
+ VkDeviceAddress result) override;
+
void PreCallRecordCmdSetTessellationDomainOriginEXT(
VkCommandBuffer commandBuffer,
VkTessellationDomainOrigin domainOrigin) override;
diff --git a/layers/vulkan/generated/valid_enum_values.cpp b/layers/vulkan/generated/valid_enum_values.cpp
index 46be5245401..4b1d8a9e516 100644
--- a/layers/vulkan/generated/valid_enum_values.cpp
+++ b/layers/vulkan/generated/valid_enum_values.cpp
@@ -1432,6 +1432,7 @@ template<>
std::vector<VkIndirectCommandsTokenTypeNV> ValidationObject::ValidParamValues() const {
constexpr std::array CoreVkIndirectCommandsTokenTypeNVEnums = {VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV, VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV, VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV, VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV, VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV, VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV, VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV};
static const vvl::unordered_map<const ExtEnabled DeviceExtensions::*, std::vector<VkIndirectCommandsTokenTypeNV>> ExtendedVkIndirectCommandsTokenTypeNVEnums = {
+ { &DeviceExtensions::vk_nv_device_generated_commands_compute, { VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV, VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV } },
{ &DeviceExtensions::vk_ext_mesh_shader, { VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV } },
};
std::vector<VkIndirectCommandsTokenTypeNV> values(CoreVkIndirectCommandsTokenTypeNVEnums.cbegin(), CoreVkIndirectCommandsTokenTypeNVEnums.cend());
diff --git a/layers/vulkan/generated/vk_dispatch_table_helper.h b/layers/vulkan/generated/vk_dispatch_table_helper.h
index 1e9c3890b29..78503092734 100644
--- a/layers/vulkan/generated/vk_dispatch_table_helper.h
+++ b/layers/vulkan/generated/vk_dispatch_table_helper.h
@@ -446,6 +446,11 @@ static VKAPI_ATTR void VKAPI_CALL StubCmdSetDepthCompareOpEXT(VkCommandBuffer co
static VKAPI_ATTR void VKAPI_CALL StubCmdSetDepthBoundsTestEnableEXT(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable) { }
static VKAPI_ATTR void VKAPI_CALL StubCmdSetStencilTestEnableEXT(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable) { }
static VKAPI_ATTR void VKAPI_CALL StubCmdSetStencilOpEXT(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp) { }
+static VKAPI_ATTR VkResult VKAPI_CALL StubCopyMemoryToImageEXT(VkDevice device, const VkCopyMemoryToImageInfoEXT* pCopyMemoryToImageInfo) { return VK_SUCCESS; }
+static VKAPI_ATTR VkResult VKAPI_CALL StubCopyImageToMemoryEXT(VkDevice device, const VkCopyImageToMemoryInfoEXT* pCopyImageToMemoryInfo) { return VK_SUCCESS; }
+static VKAPI_ATTR VkResult VKAPI_CALL StubCopyImageToImageEXT(VkDevice device, const VkCopyImageToImageInfoEXT* pCopyImageToImageInfo) { return VK_SUCCESS; }
+static VKAPI_ATTR VkResult VKAPI_CALL StubTransitionImageLayoutEXT(VkDevice device, uint32_t transitionCount, const VkHostImageLayoutTransitionInfoEXT* pTransitions) { return VK_SUCCESS; }
+static VKAPI_ATTR void VKAPI_CALL StubGetImageSubresourceLayout2EXT(VkDevice device, VkImage image, const VkImageSubresource2EXT* pSubresource, VkSubresourceLayout2EXT* pLayout) { }
static VKAPI_ATTR VkResult VKAPI_CALL StubReleaseSwapchainImagesEXT(VkDevice device, const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo) { return VK_SUCCESS; }
static VKAPI_ATTR void VKAPI_CALL StubGetGeneratedCommandsMemoryRequirementsNV(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements) { }
static VKAPI_ATTR void VKAPI_CALL StubCmdPreprocessGeneratedCommandsNV(VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo) { }
@@ -475,7 +480,6 @@ static VKAPI_ATTR VkResult VKAPI_CALL StubGetImageViewOpaqueCaptureDescriptorDat
static VKAPI_ATTR VkResult VKAPI_CALL StubGetSamplerOpaqueCaptureDescriptorDataEXT(VkDevice device, const VkSamplerCaptureDescriptorDataInfoEXT* pInfo, void* pData) { return VK_SUCCESS; }
static VKAPI_ATTR VkResult VKAPI_CALL StubGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(VkDevice device, const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo, void* pData) { return VK_SUCCESS; }
static VKAPI_ATTR void VKAPI_CALL StubCmdSetFragmentShadingRateEnumNV(VkCommandBuffer commandBuffer, VkFragmentShadingRateNV shadingRate, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) { }
-static VKAPI_ATTR void VKAPI_CALL StubGetImageSubresourceLayout2EXT(VkDevice device, VkImage image, const VkImageSubresource2EXT* pSubresource, VkSubresourceLayout2EXT* pLayout) { }
static VKAPI_ATTR VkResult VKAPI_CALL StubGetDeviceFaultInfoEXT(VkDevice device, VkDeviceFaultCountsEXT* pFaultCounts, VkDeviceFaultInfoEXT* pFaultInfo) { return VK_SUCCESS; }
#ifdef VK_USE_PLATFORM_WIN32_KHR
static VKAPI_ATTR VkResult VKAPI_CALL StubAcquireWinrtDisplayNV(VkPhysicalDevice physicalDevice, VkDisplayKHR display) { return VK_SUCCESS; }
@@ -559,6 +563,9 @@ static VKAPI_ATTR void VKAPI_CALL StubCmdCopyMemoryIndirectNV(VkCommandBuffer co
static VKAPI_ATTR void VKAPI_CALL StubCmdCopyMemoryToImageIndirectNV(VkCommandBuffer commandBuffer, VkDeviceAddress copyBufferAddress, uint32_t copyCount, uint32_t stride, VkImage dstImage, VkImageLayout dstImageLayout, const VkImageSubresourceLayers* pImageSubresources) { }
static VKAPI_ATTR void VKAPI_CALL StubCmdDecompressMemoryNV(VkCommandBuffer commandBuffer, uint32_t decompressRegionCount, const VkDecompressMemoryRegionNV* pDecompressMemoryRegions) { }
static VKAPI_ATTR void VKAPI_CALL StubCmdDecompressMemoryIndirectCountNV(VkCommandBuffer commandBuffer, VkDeviceAddress indirectCommandsAddress, VkDeviceAddress indirectCommandsCountAddress, uint32_t stride) { }
+static VKAPI_ATTR void VKAPI_CALL StubGetPipelineIndirectMemoryRequirementsNV(VkDevice device, const VkComputePipelineCreateInfo* pCreateInfo, VkMemoryRequirements2* pMemoryRequirements) { }
+static VKAPI_ATTR void VKAPI_CALL StubCmdUpdatePipelineIndirectBuffer(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline) { }
+static VKAPI_ATTR VkDeviceAddress VKAPI_CALL StubGetPipelineIndirectDeviceAddressNV(VkDevice device, const VkPipelineIndirectDeviceAddressInfoNV* pInfo) { return 0; }
static VKAPI_ATTR void VKAPI_CALL StubCmdSetTessellationDomainOriginEXT(VkCommandBuffer commandBuffer, VkTessellationDomainOrigin domainOrigin) { }
static VKAPI_ATTR void VKAPI_CALL StubCmdSetDepthClampEnableEXT(VkCommandBuffer commandBuffer, VkBool32 depthClampEnable) { }
static VKAPI_ATTR void VKAPI_CALL StubCmdSetPolygonModeEXT(VkCommandBuffer commandBuffer, VkPolygonMode polygonMode) { }
@@ -902,6 +909,11 @@ const vvl::unordered_map<std::string, small_vector<std::string, 2, size_t>> api_
{ "vkCmdSetDepthBoundsTestEnableEXT", { "VK_EXT_extended_dynamic_state", "VK_EXT_shader_object" } },
{ "vkCmdSetStencilTestEnableEXT", { "VK_EXT_extended_dynamic_state", "VK_EXT_shader_object" } },
{ "vkCmdSetStencilOpEXT", { "VK_EXT_extended_dynamic_state", "VK_EXT_shader_object" } },
+ { "vkCopyMemoryToImageEXT", { "VK_EXT_host_image_copy" } },
+ { "vkCopyImageToMemoryEXT", { "VK_EXT_host_image_copy" } },
+ { "vkCopyImageToImageEXT", { "VK_EXT_host_image_copy" } },
+ { "vkTransitionImageLayoutEXT", { "VK_EXT_host_image_copy" } },
+ { "vkGetImageSubresourceLayout2EXT", { "VK_EXT_host_image_copy", "VK_EXT_image_compression_control" } },
{ "vkReleaseSwapchainImagesEXT", { "VK_EXT_swapchain_maintenance1" } },
{ "vkGetGeneratedCommandsMemoryRequirementsNV", { "VK_NV_device_generated_commands" } },
{ "vkCmdPreprocessGeneratedCommandsNV", { "VK_NV_device_generated_commands" } },
@@ -927,7 +939,6 @@ const vvl::unordered_map<std::string, small_vector<std::string, 2, size_t>> api_
{ "vkGetSamplerOpaqueCaptureDescriptorDataEXT", { "VK_EXT_descriptor_buffer" } },
{ "vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT", { "VK_EXT_descriptor_buffer" } },
{ "vkCmdSetFragmentShadingRateEnumNV", { "VK_NV_fragment_shading_rate_enums" } },
- { "vkGetImageSubresourceLayout2EXT", { "VK_EXT_image_compression_control" } },
{ "vkGetDeviceFaultInfoEXT", { "VK_EXT_device_fault" } },
{ "vkCmdSetVertexInputEXT", { "VK_EXT_vertex_input_dynamic_state", "VK_EXT_shader_object" } },
{ "vkGetMemoryZirconHandleFUCHSIA", { "VK_FUCHSIA_external_memory" } },
@@ -975,6 +986,9 @@ const vvl::unordered_map<std::string, small_vector<std::string, 2, size_t>> api_
{ "vkCmdCopyMemoryToImageIndirectNV", { "VK_NV_copy_memory_indirect" } },
{ "vkCmdDecompressMemoryNV", { "VK_NV_memory_decompression" } },
{ "vkCmdDecompressMemoryIndirectCountNV", { "VK_NV_memory_decompression" } },
+ { "vkGetPipelineIndirectMemoryRequirementsNV", { "VK_NV_device_generated_commands_compute" } },
+ { "vkCmdUpdatePipelineIndirectBuffer", { "VK_NV_device_generated_commands_compute" } },
+ { "vkGetPipelineIndirectDeviceAddressNV", { "VK_NV_device_generated_commands_compute" } },
{ "vkCmdSetTessellationDomainOriginEXT", { "VK_EXT_extended_dynamic_state3", "VK_EXT_shader_object" } },
{ "vkCmdSetDepthClampEnableEXT", { "VK_EXT_extended_dynamic_state3", "VK_EXT_shader_object" } },
{ "vkCmdSetPolygonModeEXT", { "VK_EXT_extended_dynamic_state3", "VK_EXT_shader_object" } },
@@ -1765,6 +1779,16 @@ static inline void layer_init_device_dispatch_table(VkDevice device, VkLayerDisp
if (table->CmdSetStencilTestEnableEXT == nullptr) { table->CmdSetStencilTestEnableEXT = (PFN_vkCmdSetStencilTestEnableEXT)StubCmdSetStencilTestEnableEXT; }
table->CmdSetStencilOpEXT = (PFN_vkCmdSetStencilOpEXT) gpa(device, "vkCmdSetStencilOpEXT");
if (table->CmdSetStencilOpEXT == nullptr) { table->CmdSetStencilOpEXT = (PFN_vkCmdSetStencilOpEXT)StubCmdSetStencilOpEXT; }
+ table->CopyMemoryToImageEXT = (PFN_vkCopyMemoryToImageEXT) gpa(device, "vkCopyMemoryToImageEXT");
+ if (table->CopyMemoryToImageEXT == nullptr) { table->CopyMemoryToImageEXT = (PFN_vkCopyMemoryToImageEXT)StubCopyMemoryToImageEXT; }
+ table->CopyImageToMemoryEXT = (PFN_vkCopyImageToMemoryEXT) gpa(device, "vkCopyImageToMemoryEXT");
+ if (table->CopyImageToMemoryEXT == nullptr) { table->CopyImageToMemoryEXT = (PFN_vkCopyImageToMemoryEXT)StubCopyImageToMemoryEXT; }
+ table->CopyImageToImageEXT = (PFN_vkCopyImageToImageEXT) gpa(device, "vkCopyImageToImageEXT");
+ if (table->CopyImageToImageEXT == nullptr) { table->CopyImageToImageEXT = (PFN_vkCopyImageToImageEXT)StubCopyImageToImageEXT; }
+ table->TransitionImageLayoutEXT = (PFN_vkTransitionImageLayoutEXT) gpa(device, "vkTransitionImageLayoutEXT");
+ if (table->TransitionImageLayoutEXT == nullptr) { table->TransitionImageLayoutEXT = (PFN_vkTransitionImageLayoutEXT)StubTransitionImageLayoutEXT; }
+ table->GetImageSubresourceLayout2EXT = (PFN_vkGetImageSubresourceLayout2EXT) gpa(device, "vkGetImageSubresourceLayout2EXT");
+ if (table->GetImageSubresourceLayout2EXT == nullptr) { table->GetImageSubresourceLayout2EXT = (PFN_vkGetImageSubresourceLayout2EXT)StubGetImageSubresourceLayout2EXT; }
table->ReleaseSwapchainImagesEXT = (PFN_vkReleaseSwapchainImagesEXT) gpa(device, "vkReleaseSwapchainImagesEXT");
if (table->ReleaseSwapchainImagesEXT == nullptr) { table->ReleaseSwapchainImagesEXT = (PFN_vkReleaseSwapchainImagesEXT)StubReleaseSwapchainImagesEXT; }
table->GetGeneratedCommandsMemoryRequirementsNV = (PFN_vkGetGeneratedCommandsMemoryRequirementsNV) gpa(device, "vkGetGeneratedCommandsMemoryRequirementsNV");
@@ -1817,8 +1841,6 @@ static inline void layer_init_device_dispatch_table(VkDevice device, VkLayerDisp
if (table->GetAccelerationStructureOpaqueCaptureDescriptorDataEXT == nullptr) { table->GetAccelerationStructureOpaqueCaptureDescriptorDataEXT = (PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT)StubGetAccelerationStructureOpaqueCaptureDescriptorDataEXT; }
table->CmdSetFragmentShadingRateEnumNV = (PFN_vkCmdSetFragmentShadingRateEnumNV) gpa(device, "vkCmdSetFragmentShadingRateEnumNV");
if (table->CmdSetFragmentShadingRateEnumNV == nullptr) { table->CmdSetFragmentShadingRateEnumNV = (PFN_vkCmdSetFragmentShadingRateEnumNV)StubCmdSetFragmentShadingRateEnumNV; }
- table->GetImageSubresourceLayout2EXT = (PFN_vkGetImageSubresourceLayout2EXT) gpa(device, "vkGetImageSubresourceLayout2EXT");
- if (table->GetImageSubresourceLayout2EXT == nullptr) { table->GetImageSubresourceLayout2EXT = (PFN_vkGetImageSubresourceLayout2EXT)StubGetImageSubresourceLayout2EXT; }
table->GetDeviceFaultInfoEXT = (PFN_vkGetDeviceFaultInfoEXT) gpa(device, "vkGetDeviceFaultInfoEXT");
if (table->GetDeviceFaultInfoEXT == nullptr) { table->GetDeviceFaultInfoEXT = (PFN_vkGetDeviceFaultInfoEXT)StubGetDeviceFaultInfoEXT; }
table->CmdSetVertexInputEXT = (PFN_vkCmdSetVertexInputEXT) gpa(device, "vkCmdSetVertexInputEXT");
@@ -1931,6 +1953,12 @@ static inline void layer_init_device_dispatch_table(VkDevice device, VkLayerDisp
if (table->CmdDecompressMemoryNV == nullptr) { table->CmdDecompressMemoryNV = (PFN_vkCmdDecompressMemoryNV)StubCmdDecompressMemoryNV; }
table->CmdDecompressMemoryIndirectCountNV = (PFN_vkCmdDecompressMemoryIndirectCountNV) gpa(device, "vkCmdDecompressMemoryIndirectCountNV");
if (table->CmdDecompressMemoryIndirectCountNV == nullptr) { table->CmdDecompressMemoryIndirectCountNV = (PFN_vkCmdDecompressMemoryIndirectCountNV)StubCmdDecompressMemoryIndirectCountNV; }
+ table->GetPipelineIndirectMemoryRequirementsNV = (PFN_vkGetPipelineIndirectMemoryRequirementsNV) gpa(device, "vkGetPipelineIndirectMemoryRequirementsNV");
+ if (table->GetPipelineIndirectMemoryRequirementsNV == nullptr) { table->GetPipelineIndirectMemoryRequirementsNV = (PFN_vkGetPipelineIndirectMemoryRequirementsNV)StubGetPipelineIndirectMemoryRequirementsNV; }
+ table->CmdUpdatePipelineIndirectBuffer = (PFN_vkCmdUpdatePipelineIndirectBuffer) gpa(device, "vkCmdUpdatePipelineIndirectBuffer");
+ if (table->CmdUpdatePipelineIndirectBuffer == nullptr) { table->CmdUpdatePipelineIndirectBuffer = (PFN_vkCmdUpdatePipelineIndirectBuffer)StubCmdUpdatePipelineIndirectBuffer; }
+ table->GetPipelineIndirectDeviceAddressNV = (PFN_vkGetPipelineIndirectDeviceAddressNV) gpa(device, "vkGetPipelineIndirectDeviceAddressNV");
+ if (table->GetPipelineIndirectDeviceAddressNV == nullptr) { table->GetPipelineIndirectDeviceAddressNV = (PFN_vkGetPipelineIndirectDeviceAddressNV)StubGetPipelineIndirectDeviceAddressNV; }
table->CmdSetTessellationDomainOriginEXT = (PFN_vkCmdSetTessellationDomainOriginEXT) gpa(device, "vkCmdSetTessellationDomainOriginEXT");
if (table->CmdSetTessellationDomainOriginEXT == nullptr) { table->CmdSetTessellationDomainOriginEXT = (PFN_vkCmdSetTessellationDomainOriginEXT)StubCmdSetTessellationDomainOriginEXT; }
table->CmdSetDepthClampEnableEXT = (PFN_vkCmdSetDepthClampEnableEXT) gpa(device, "vkCmdSetDepthClampEnableEXT");
diff --git a/layers/vulkan/generated/vk_enum_string_helper.h b/layers/vulkan/generated/vk_enum_string_helper.h
index a5ee5f4ca76..5d8650d6e25 100644
--- a/layers/vulkan/generated/vk_enum_string_helper.h
+++ b/layers/vulkan/generated/vk_enum_string_helper.h
@@ -1289,6 +1289,26 @@ static inline const char* string_VkStructureType(VkStructureType input_value) {
return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR";
case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR:
return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR";
+ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT:
+ return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT";
+ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT:
+ return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT";
+ case VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT:
+ return "VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT";
+ case VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT:
+ return "VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT";
+ case VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT:
+ return "VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT";
+ case VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT:
+ return "VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT";
+ case VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT:
+ return "VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT";
+ case VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT:
+ return "VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT";
+ case VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT:
+ return "VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT";
+ case VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT:
+ return "VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT";
case VK_STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR:
return "VK_STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR";
case VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR:
@@ -1709,6 +1729,12 @@ static inline const char* string_VkStructureType(VkStructureType input_value) {
return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV";
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV:
return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV";
+ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV:
+ return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV";
+ case VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV:
+ return "VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV";
+ case VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV:
+ return "VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV";
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV:
return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV";
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT:
@@ -4231,6 +4257,10 @@ static inline const char* string_VkIndirectCommandsTokenTypeNV(VkIndirectCommand
return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV";
case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV:
return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV";
+ case VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV:
+ return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV";
+ case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV:
+ return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV";
default:
return "Unhandled VkIndirectCommandsTokenTypeNV";
}
@@ -4907,6 +4937,8 @@ static inline const char* string_VkImageUsageFlagBits(VkImageUsageFlagBits input
return "VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT";
case VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR:
return "VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR";
+ case VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT:
+ return "VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT";
#ifdef VK_ENABLE_BETA_EXTENSIONS
case VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR:
return "VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR";
@@ -5865,6 +5897,8 @@ static inline const char* string_VkDescriptorSetLayoutCreateFlagBits(VkDescripto
return "VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT";
case VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT:
return "VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT";
+ case VK_DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV:
+ return "VK_DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV";
case VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT:
return "VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT";
default:
@@ -6980,6 +7014,8 @@ static inline const char* string_VkFormatFeatureFlagBits2(uint64_t input_value)
return "VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT";
case VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR:
return "VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR";
+ case VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT:
+ return "VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT";
#ifdef VK_ENABLE_BETA_EXTENSIONS
case VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR:
return "VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR";
@@ -8235,6 +8271,29 @@ static inline std::string string_VkBuildAccelerationStructureFlagsKHR(VkBuildAcc
if (ret.empty()) ret.append("VkBuildAccelerationStructureFlagsKHR(0)");
return ret;
}
+static inline const char* string_VkHostImageCopyFlagBitsEXT(VkHostImageCopyFlagBitsEXT input_value) {
+ switch (input_value) {
+ case VK_HOST_IMAGE_COPY_MEMCPY_EXT:
+ return "VK_HOST_IMAGE_COPY_MEMCPY_EXT";
+ default:
+ return "Unhandled VkHostImageCopyFlagBitsEXT";
+ }
+}
+
+static inline std::string string_VkHostImageCopyFlagsEXT(VkHostImageCopyFlagsEXT input_value) {
+ std::string ret;
+ int index = 0;
+ while(input_value) {
+ if (input_value & 1) {
+ if( !ret.empty()) ret.append("|");
+ ret.append(string_VkHostImageCopyFlagBitsEXT(static_cast<VkHostImageCopyFlagBitsEXT>(1U << index)));
+ }
+ ++index;
+ input_value >>= 1;
+ }
+ if (ret.empty()) ret.append("VkHostImageCopyFlagsEXT(0)");
+ return ret;
+}
static inline const char* string_VkPresentScalingFlagBitsEXT(VkPresentScalingFlagBitsEXT input_value) {
switch (input_value) {
case VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT:
diff --git a/layers/vulkan/generated/vk_extension_helper.h b/layers/vulkan/generated/vk_extension_helper.h
index 18e2975c925..5f55ba309df 100644
--- a/layers/vulkan/generated/vk_extension_helper.h
+++ b/layers/vulkan/generated/vk_extension_helper.h
@@ -605,6 +605,7 @@ struct DeviceExtensions : public InstanceExtensions {
ExtEnabled vk_ext_host_query_reset{kNotEnabled};
ExtEnabled vk_ext_index_type_uint8{kNotEnabled};
ExtEnabled vk_ext_extended_dynamic_state{kNotEnabled};
+ ExtEnabled vk_ext_host_image_copy{kNotEnabled};
ExtEnabled vk_ext_shader_atomic_float2{kNotEnabled};
ExtEnabled vk_ext_swapchain_maintenance1{kNotEnabled};
ExtEnabled vk_ext_shader_demote_to_helper_invocation{kNotEnabled};
@@ -676,6 +677,7 @@ struct DeviceExtensions : public InstanceExtensions {
ExtEnabled vk_qcom_fragment_density_map_offset{kNotEnabled};
ExtEnabled vk_nv_copy_memory_indirect{kNotEnabled};
ExtEnabled vk_nv_memory_decompression{kNotEnabled};
+ ExtEnabled vk_nv_device_generated_commands_compute{kNotEnabled};
ExtEnabled vk_nv_linear_color_attachment{kNotEnabled};
ExtEnabled vk_ext_image_compression_control_swapchain{kNotEnabled};
ExtEnabled vk_qcom_image_processing{kNotEnabled};
@@ -1118,6 +1120,10 @@ struct DeviceExtensions : public InstanceExtensions {
{&DeviceExtensions::vk_khr_get_physical_device_properties2, VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME}}})},
{VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME, DeviceInfo(&DeviceExtensions::vk_ext_extended_dynamic_state, {{
{&DeviceExtensions::vk_khr_get_physical_device_properties2, VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME}}})},
+ {VK_EXT_HOST_IMAGE_COPY_EXTENSION_NAME, DeviceInfo(&DeviceExtensions::vk_ext_host_image_copy, {{
+ {&DeviceExtensions::vk_khr_get_physical_device_properties2, VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME},
+ {&DeviceExtensions::vk_khr_copy_commands2, VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME},
+ {&DeviceExtensions::vk_khr_format_feature_flags2, VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME}}})},
{VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME, DeviceInfo(&DeviceExtensions::vk_ext_shader_atomic_float2, {{
{&DeviceExtensions::vk_ext_shader_atomic_float, VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME}}})},
{VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME, DeviceInfo(&DeviceExtensions::vk_ext_swapchain_maintenance1, {{
@@ -1293,6 +1299,8 @@ struct DeviceExtensions : public InstanceExtensions {
{VK_NV_MEMORY_DECOMPRESSION_EXTENSION_NAME, DeviceInfo(&DeviceExtensions::vk_nv_memory_decompression, {{
{&DeviceExtensions::vk_khr_get_physical_device_properties2, VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME},
{&DeviceExtensions::vk_khr_buffer_device_address, VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME}}})},
+ {VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME, DeviceInfo(&DeviceExtensions::vk_nv_device_generated_commands_compute, {{
+ {&DeviceExtensions::vk_nv_device_generated_commands, VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME}}})},
{VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME, DeviceInfo(&DeviceExtensions::vk_nv_linear_color_attachment, {{
{&DeviceExtensions::vk_khr_get_physical_device_properties2, VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME}}})},
{VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME, DeviceInfo(&DeviceExtensions::vk_ext_image_compression_control_swapchain, {{
@@ -1744,6 +1752,7 @@ static const std::set<std::string> kDeviceExtensionNames = {
VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME,
VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME,
VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME,
+ VK_EXT_HOST_IMAGE_COPY_EXTENSION_NAME,
VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME,
VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME,
VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME,
@@ -1827,6 +1836,7 @@ static const std::set<std::string> kDeviceExtensionNames = {
VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME,
VK_NV_COPY_MEMORY_INDIRECT_EXTENSION_NAME,
VK_NV_MEMORY_DECOMPRESSION_EXTENSION_NAME,
+ VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME,
VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME,
VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME,
VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME,
diff --git a/layers/vulkan/generated/vk_function_pointers.cpp b/layers/vulkan/generated/vk_function_pointers.cpp
index 2902d1ead69..5d38dc24110 100644
--- a/layers/vulkan/generated/vk_function_pointers.cpp
+++ b/layers/vulkan/generated/vk_function_pointers.cpp
@@ -629,6 +629,11 @@ PFN_vkCmdSetDepthCompareOpEXT CmdSetDepthCompareOpEXT;
PFN_vkCmdSetDepthBoundsTestEnableEXT CmdSetDepthBoundsTestEnableEXT;
PFN_vkCmdSetStencilTestEnableEXT CmdSetStencilTestEnableEXT;
PFN_vkCmdSetStencilOpEXT CmdSetStencilOpEXT;
+PFN_vkCopyMemoryToImageEXT CopyMemoryToImageEXT;
+PFN_vkCopyImageToMemoryEXT CopyImageToMemoryEXT;
+PFN_vkCopyImageToImageEXT CopyImageToImageEXT;
+PFN_vkTransitionImageLayoutEXT TransitionImageLayoutEXT;
+PFN_vkGetImageSubresourceLayout2EXT GetImageSubresourceLayout2EXT;
PFN_vkReleaseSwapchainImagesEXT ReleaseSwapchainImagesEXT;
PFN_vkGetGeneratedCommandsMemoryRequirementsNV GetGeneratedCommandsMemoryRequirementsNV;
PFN_vkCmdPreprocessGeneratedCommandsNV CmdPreprocessGeneratedCommandsNV;
@@ -658,7 +663,6 @@ PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT GetImageViewOpaqueCaptureDescri
PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT GetSamplerOpaqueCaptureDescriptorDataEXT;
PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT GetAccelerationStructureOpaqueCaptureDescriptorDataEXT;
PFN_vkCmdSetFragmentShadingRateEnumNV CmdSetFragmentShadingRateEnumNV;
-PFN_vkGetImageSubresourceLayout2EXT GetImageSubresourceLayout2EXT;
PFN_vkGetDeviceFaultInfoEXT GetDeviceFaultInfoEXT;
#ifdef VK_USE_PLATFORM_WIN32_KHR
PFN_vkAcquireWinrtDisplayNV AcquireWinrtDisplayNV;
@@ -742,6 +746,9 @@ PFN_vkCmdCopyMemoryIndirectNV CmdCopyMemoryIndirectNV;
PFN_vkCmdCopyMemoryToImageIndirectNV CmdCopyMemoryToImageIndirectNV;
PFN_vkCmdDecompressMemoryNV CmdDecompressMemoryNV;
PFN_vkCmdDecompressMemoryIndirectCountNV CmdDecompressMemoryIndirectCountNV;
+PFN_vkGetPipelineIndirectMemoryRequirementsNV GetPipelineIndirectMemoryRequirementsNV;
+PFN_vkCmdUpdatePipelineIndirectBuffer CmdUpdatePipelineIndirectBuffer;
+PFN_vkGetPipelineIndirectDeviceAddressNV GetPipelineIndirectDeviceAddressNV;
PFN_vkCmdSetTessellationDomainOriginEXT CmdSetTessellationDomainOriginEXT;
PFN_vkCmdSetDepthClampEnableEXT CmdSetDepthClampEnableEXT;
PFN_vkCmdSetPolygonModeEXT CmdSetPolygonModeEXT;
@@ -1794,6 +1801,15 @@ void InitDeviceExtension(VkInstance instance, VkDevice device, const char* exten
CmdSetStencilOpEXT = reinterpret_cast<PFN_vkCmdSetStencilOpEXT>(GetDeviceProcAddr(device, "vkCmdSetStencilOpEXT"));
}
},
+ {
+ "VK_EXT_host_image_copy", [](VkInstance , VkDevice device) {
+ CopyMemoryToImageEXT = reinterpret_cast<PFN_vkCopyMemoryToImageEXT>(GetDeviceProcAddr(device, "vkCopyMemoryToImageEXT"));
+ CopyImageToMemoryEXT = reinterpret_cast<PFN_vkCopyImageToMemoryEXT>(GetDeviceProcAddr(device, "vkCopyImageToMemoryEXT"));
+ CopyImageToImageEXT = reinterpret_cast<PFN_vkCopyImageToImageEXT>(GetDeviceProcAddr(device, "vkCopyImageToImageEXT"));
+ TransitionImageLayoutEXT = reinterpret_cast<PFN_vkTransitionImageLayoutEXT>(GetDeviceProcAddr(device, "vkTransitionImageLayoutEXT"));
+ GetImageSubresourceLayout2EXT = reinterpret_cast<PFN_vkGetImageSubresourceLayout2EXT>(GetDeviceProcAddr(device, "vkGetImageSubresourceLayout2EXT"));
+ }
+ },
{
"VK_EXT_swapchain_maintenance1", [](VkInstance , VkDevice device) {
ReleaseSwapchainImagesEXT = reinterpret_cast<PFN_vkReleaseSwapchainImagesEXT>(GetDeviceProcAddr(device, "vkReleaseSwapchainImagesEXT"));
@@ -1987,6 +2003,13 @@ void InitDeviceExtension(VkInstance instance, VkDevice device, const char* exten
CmdDecompressMemoryIndirectCountNV = reinterpret_cast<PFN_vkCmdDecompressMemoryIndirectCountNV>(GetDeviceProcAddr(device, "vkCmdDecompressMemoryIndirectCountNV"));
}
},
+ {
+ "VK_NV_device_generated_commands_compute", [](VkInstance , VkDevice device) {
+ GetPipelineIndirectMemoryRequirementsNV = reinterpret_cast<PFN_vkGetPipelineIndirectMemoryRequirementsNV>(GetDeviceProcAddr(device, "vkGetPipelineIndirectMemoryRequirementsNV"));
+ CmdUpdatePipelineIndirectBuffer = reinterpret_cast<PFN_vkCmdUpdatePipelineIndirectBuffer>(GetDeviceProcAddr(device, "vkCmdUpdatePipelineIndirectBuffer"));
+ GetPipelineIndirectDeviceAddressNV = reinterpret_cast<PFN_vkGetPipelineIndirectDeviceAddressNV>(GetDeviceProcAddr(device, "vkGetPipelineIndirectDeviceAddressNV"));
+ }
+ },
{
"VK_EXT_extended_dynamic_state3", [](VkInstance , VkDevice device) {
CmdSetTessellationDomainOriginEXT = reinterpret_cast<PFN_vkCmdSetTessellationDomainOriginEXT>(GetDeviceProcAddr(device, "vkCmdSetTessellationDomainOriginEXT"));
@@ -2496,6 +2519,11 @@ void ResetAllExtensions() {
CmdSetDepthBoundsTestEnableEXT = nullptr;
CmdSetStencilTestEnableEXT = nullptr;
CmdSetStencilOpEXT = nullptr;
+ CopyMemoryToImageEXT = nullptr;
+ CopyImageToMemoryEXT = nullptr;
+ CopyImageToImageEXT = nullptr;
+ TransitionImageLayoutEXT = nullptr;
+ GetImageSubresourceLayout2EXT = nullptr;
ReleaseSwapchainImagesEXT = nullptr;
GetGeneratedCommandsMemoryRequirementsNV = nullptr;
CmdPreprocessGeneratedCommandsNV = nullptr;
@@ -2525,7 +2553,6 @@ void ResetAllExtensions() {
GetSamplerOpaqueCaptureDescriptorDataEXT = nullptr;
GetAccelerationStructureOpaqueCaptureDescriptorDataEXT = nullptr;
CmdSetFragmentShadingRateEnumNV = nullptr;
- GetImageSubresourceLayout2EXT = nullptr;
GetDeviceFaultInfoEXT = nullptr;
#ifdef VK_USE_PLATFORM_WIN32_KHR
AcquireWinrtDisplayNV = nullptr;
@@ -2609,6 +2636,9 @@ void ResetAllExtensions() {
CmdCopyMemoryToImageIndirectNV = nullptr;
CmdDecompressMemoryNV = nullptr;
CmdDecompressMemoryIndirectCountNV = nullptr;
+ GetPipelineIndirectMemoryRequirementsNV = nullptr;
+ CmdUpdatePipelineIndirectBuffer = nullptr;
+ GetPipelineIndirectDeviceAddressNV = nullptr;
CmdSetTessellationDomainOriginEXT = nullptr;
CmdSetDepthClampEnableEXT = nullptr;
CmdSetPolygonModeEXT = nullptr;
diff --git a/layers/vulkan/generated/vk_function_pointers.h b/layers/vulkan/generated/vk_function_pointers.h
index 16994a687dc..732f169f9c4 100644
--- a/layers/vulkan/generated/vk_function_pointers.h
+++ b/layers/vulkan/generated/vk_function_pointers.h
@@ -592,6 +592,11 @@ extern PFN_vkCmdSetDepthCompareOpEXT CmdSetDepthCompareOpEXT;
extern PFN_vkCmdSetDepthBoundsTestEnableEXT CmdSetDepthBoundsTestEnableEXT;
extern PFN_vkCmdSetStencilTestEnableEXT CmdSetStencilTestEnableEXT;
extern PFN_vkCmdSetStencilOpEXT CmdSetStencilOpEXT;
+extern PFN_vkCopyMemoryToImageEXT CopyMemoryToImageEXT;
+extern PFN_vkCopyImageToMemoryEXT CopyImageToMemoryEXT;
+extern PFN_vkCopyImageToImageEXT CopyImageToImageEXT;
+extern PFN_vkTransitionImageLayoutEXT TransitionImageLayoutEXT;
+extern PFN_vkGetImageSubresourceLayout2EXT GetImageSubresourceLayout2EXT;
extern PFN_vkReleaseSwapchainImagesEXT ReleaseSwapchainImagesEXT;
extern PFN_vkGetGeneratedCommandsMemoryRequirementsNV GetGeneratedCommandsMemoryRequirementsNV;
extern PFN_vkCmdPreprocessGeneratedCommandsNV CmdPreprocessGeneratedCommandsNV;
@@ -621,7 +626,6 @@ extern PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT GetImageViewOpaqueCaptur
extern PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT GetSamplerOpaqueCaptureDescriptorDataEXT;
extern PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT GetAccelerationStructureOpaqueCaptureDescriptorDataEXT;
extern PFN_vkCmdSetFragmentShadingRateEnumNV CmdSetFragmentShadingRateEnumNV;
-extern PFN_vkGetImageSubresourceLayout2EXT GetImageSubresourceLayout2EXT;
extern PFN_vkGetDeviceFaultInfoEXT GetDeviceFaultInfoEXT;
#ifdef VK_USE_PLATFORM_WIN32_KHR
extern PFN_vkAcquireWinrtDisplayNV AcquireWinrtDisplayNV;
@@ -705,6 +709,9 @@ extern PFN_vkCmdCopyMemoryIndirectNV CmdCopyMemoryIndirectNV;
extern PFN_vkCmdCopyMemoryToImageIndirectNV CmdCopyMemoryToImageIndirectNV;
extern PFN_vkCmdDecompressMemoryNV CmdDecompressMemoryNV;
extern PFN_vkCmdDecompressMemoryIndirectCountNV CmdDecompressMemoryIndirectCountNV;
+extern PFN_vkGetPipelineIndirectMemoryRequirementsNV GetPipelineIndirectMemoryRequirementsNV;
+extern PFN_vkCmdUpdatePipelineIndirectBuffer CmdUpdatePipelineIndirectBuffer;
+extern PFN_vkGetPipelineIndirectDeviceAddressNV GetPipelineIndirectDeviceAddressNV;
extern PFN_vkCmdSetTessellationDomainOriginEXT CmdSetTessellationDomainOriginEXT;
extern PFN_vkCmdSetDepthClampEnableEXT CmdSetDepthClampEnableEXT;
extern PFN_vkCmdSetPolygonModeEXT CmdSetPolygonModeEXT;
diff --git a/layers/vulkan/generated/vk_layer_dispatch_table.h b/layers/vulkan/generated/vk_layer_dispatch_table.h
index 357f524c9e9..8b4830c7aab 100644
--- a/layers/vulkan/generated/vk_layer_dispatch_table.h
+++ b/layers/vulkan/generated/vk_layer_dispatch_table.h
@@ -608,6 +608,11 @@ typedef struct VkLayerDispatchTable_ {
PFN_vkCmdSetDepthBoundsTestEnableEXT CmdSetDepthBoundsTestEnableEXT;
PFN_vkCmdSetStencilTestEnableEXT CmdSetStencilTestEnableEXT;
PFN_vkCmdSetStencilOpEXT CmdSetStencilOpEXT;
+ PFN_vkCopyMemoryToImageEXT CopyMemoryToImageEXT;
+ PFN_vkCopyImageToMemoryEXT CopyImageToMemoryEXT;
+ PFN_vkCopyImageToImageEXT CopyImageToImageEXT;
+ PFN_vkTransitionImageLayoutEXT TransitionImageLayoutEXT;
+ PFN_vkGetImageSubresourceLayout2EXT GetImageSubresourceLayout2EXT;
PFN_vkReleaseSwapchainImagesEXT ReleaseSwapchainImagesEXT;
PFN_vkGetGeneratedCommandsMemoryRequirementsNV GetGeneratedCommandsMemoryRequirementsNV;
PFN_vkCmdPreprocessGeneratedCommandsNV CmdPreprocessGeneratedCommandsNV;
@@ -635,7 +640,6 @@ typedef struct VkLayerDispatchTable_ {
PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT GetSamplerOpaqueCaptureDescriptorDataEXT;
PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT GetAccelerationStructureOpaqueCaptureDescriptorDataEXT;
PFN_vkCmdSetFragmentShadingRateEnumNV CmdSetFragmentShadingRateEnumNV;
- PFN_vkGetImageSubresourceLayout2EXT GetImageSubresourceLayout2EXT;
PFN_vkGetDeviceFaultInfoEXT GetDeviceFaultInfoEXT;
PFN_vkCmdSetVertexInputEXT CmdSetVertexInputEXT;
#ifdef VK_USE_PLATFORM_FUCHSIA
@@ -701,6 +705,9 @@ typedef struct VkLayerDispatchTable_ {
PFN_vkCmdCopyMemoryToImageIndirectNV CmdCopyMemoryToImageIndirectNV;
PFN_vkCmdDecompressMemoryNV CmdDecompressMemoryNV;
PFN_vkCmdDecompressMemoryIndirectCountNV CmdDecompressMemoryIndirectCountNV;
+ PFN_vkGetPipelineIndirectMemoryRequirementsNV GetPipelineIndirectMemoryRequirementsNV;
+ PFN_vkCmdUpdatePipelineIndirectBuffer CmdUpdatePipelineIndirectBuffer;
+ PFN_vkGetPipelineIndirectDeviceAddressNV GetPipelineIndirectDeviceAddressNV;
PFN_vkCmdSetTessellationDomainOriginEXT CmdSetTessellationDomainOriginEXT;
PFN_vkCmdSetDepthClampEnableEXT CmdSetDepthClampEnableEXT;
PFN_vkCmdSetPolygonModeEXT CmdSetPolygonModeEXT;
diff --git a/layers/vulkan/generated/vk_safe_struct.h b/layers/vulkan/generated/vk_safe_struct.h
index fb875536d67..e8bf16d6af6 100644
--- a/layers/vulkan/generated/vk_safe_struct.h
+++ b/layers/vulkan/generated/vk_safe_struct.h
@@ -9994,6 +9994,219 @@ struct safe_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT {
VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *ptr() { return reinterpret_cast<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *>(this); }
VkPhysicalDeviceExtendedDynamicStateFeaturesEXT const *ptr() const { return reinterpret_cast<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT const *>(this); }
};
+struct safe_VkPhysicalDeviceHostImageCopyFeaturesEXT {
+ VkStructureType sType;
+ void* pNext{};
+ VkBool32 hostImageCopy;
+
+ safe_VkPhysicalDeviceHostImageCopyFeaturesEXT(const VkPhysicalDeviceHostImageCopyFeaturesEXT* in_struct, PNextCopyState* copy_state = {});
+ safe_VkPhysicalDeviceHostImageCopyFeaturesEXT(const safe_VkPhysicalDeviceHostImageCopyFeaturesEXT& copy_src);
+ safe_VkPhysicalDeviceHostImageCopyFeaturesEXT& operator=(const safe_VkPhysicalDeviceHostImageCopyFeaturesEXT& copy_src);
+ safe_VkPhysicalDeviceHostImageCopyFeaturesEXT();
+ ~safe_VkPhysicalDeviceHostImageCopyFeaturesEXT();
+ void initialize(const VkPhysicalDeviceHostImageCopyFeaturesEXT* in_struct, PNextCopyState* copy_state = {});
+ void initialize(const safe_VkPhysicalDeviceHostImageCopyFeaturesEXT* copy_src, PNextCopyState* copy_state = {});
+ VkPhysicalDeviceHostImageCopyFeaturesEXT *ptr() { return reinterpret_cast<VkPhysicalDeviceHostImageCopyFeaturesEXT *>(this); }
+ VkPhysicalDeviceHostImageCopyFeaturesEXT const *ptr() const { return reinterpret_cast<VkPhysicalDeviceHostImageCopyFeaturesEXT const *>(this); }
+};
+struct safe_VkPhysicalDeviceHostImageCopyPropertiesEXT {
+ VkStructureType sType;
+ void* pNext{};
+ uint32_t copySrcLayoutCount;
+ VkImageLayout* pCopySrcLayouts{};
+ uint32_t copyDstLayoutCount;
+ VkImageLayout* pCopyDstLayouts{};
+ uint8_t optimalTilingLayoutUUID[VK_UUID_SIZE];
+ VkBool32 identicalMemoryTypeRequirements;
+
+ safe_VkPhysicalDeviceHostImageCopyPropertiesEXT(const VkPhysicalDeviceHostImageCopyPropertiesEXT* in_struct, PNextCopyState* copy_state = {});
+ safe_VkPhysicalDeviceHostImageCopyPropertiesEXT(const safe_VkPhysicalDeviceHostImageCopyPropertiesEXT& copy_src);
+ safe_VkPhysicalDeviceHostImageCopyPropertiesEXT& operator=(const safe_VkPhysicalDeviceHostImageCopyPropertiesEXT& copy_src);
+ safe_VkPhysicalDeviceHostImageCopyPropertiesEXT();
+ ~safe_VkPhysicalDeviceHostImageCopyPropertiesEXT();
+ void initialize(const VkPhysicalDeviceHostImageCopyPropertiesEXT* in_struct, PNextCopyState* copy_state = {});
+ void initialize(const safe_VkPhysicalDeviceHostImageCopyPropertiesEXT* copy_src, PNextCopyState* copy_state = {});
+ VkPhysicalDeviceHostImageCopyPropertiesEXT *ptr() { return reinterpret_cast<VkPhysicalDeviceHostImageCopyPropertiesEXT *>(this); }
+ VkPhysicalDeviceHostImageCopyPropertiesEXT const *ptr() const { return reinterpret_cast<VkPhysicalDeviceHostImageCopyPropertiesEXT const *>(this); }
+};
+struct safe_VkMemoryToImageCopyEXT {
+ VkStructureType sType;
+ const void* pNext{};
+ const void* pHostPointer{};
+ uint32_t memoryRowLength;
+ uint32_t memoryImageHeight;
+ VkImageSubresourceLayers imageSubresource;
+ VkOffset3D imageOffset;
+ VkExtent3D imageExtent;
+
+ safe_VkMemoryToImageCopyEXT(const VkMemoryToImageCopyEXT* in_struct, PNextCopyState* copy_state = {});
+ safe_VkMemoryToImageCopyEXT(const safe_VkMemoryToImageCopyEXT& copy_src);
+ safe_VkMemoryToImageCopyEXT& operator=(const safe_VkMemoryToImageCopyEXT& copy_src);
+ safe_VkMemoryToImageCopyEXT();
+ ~safe_VkMemoryToImageCopyEXT();
+ void initialize(const VkMemoryToImageCopyEXT* in_struct, PNextCopyState* copy_state = {});
+ void initialize(const safe_VkMemoryToImageCopyEXT* copy_src, PNextCopyState* copy_state = {});
+ VkMemoryToImageCopyEXT *ptr() { return reinterpret_cast<VkMemoryToImageCopyEXT *>(this); }
+ VkMemoryToImageCopyEXT const *ptr() const { return reinterpret_cast<VkMemoryToImageCopyEXT const *>(this); }
+};
+struct safe_VkImageToMemoryCopyEXT {
+ VkStructureType sType;
+ const void* pNext{};
+ void* pHostPointer{};
+ uint32_t memoryRowLength;
+ uint32_t memoryImageHeight;
+ VkImageSubresourceLayers imageSubresource;
+ VkOffset3D imageOffset;
+ VkExtent3D imageExtent;
+
+ safe_VkImageToMemoryCopyEXT(const VkImageToMemoryCopyEXT* in_struct, PNextCopyState* copy_state = {});
+ safe_VkImageToMemoryCopyEXT(const safe_VkImageToMemoryCopyEXT& copy_src);
+ safe_VkImageToMemoryCopyEXT& operator=(const safe_VkImageToMemoryCopyEXT& copy_src);
+ safe_VkImageToMemoryCopyEXT();
+ ~safe_VkImageToMemoryCopyEXT();
+ void initialize(const VkImageToMemoryCopyEXT* in_struct, PNextCopyState* copy_state = {});
+ void initialize(const safe_VkImageToMemoryCopyEXT* copy_src, PNextCopyState* copy_state = {});
+ VkImageToMemoryCopyEXT *ptr() { return reinterpret_cast<VkImageToMemoryCopyEXT *>(this); }
+ VkImageToMemoryCopyEXT const *ptr() const { return reinterpret_cast<VkImageToMemoryCopyEXT const *>(this); }
+};
+struct safe_VkCopyMemoryToImageInfoEXT {
+ VkStructureType sType;
+ const void* pNext{};
+ VkHostImageCopyFlagsEXT flags;
+ VkImage dstImage;
+ VkImageLayout dstImageLayout;
+ uint32_t regionCount;
+ safe_VkMemoryToImageCopyEXT* pRegions{};
+
+ safe_VkCopyMemoryToImageInfoEXT(const VkCopyMemoryToImageInfoEXT* in_struct, PNextCopyState* copy_state = {});
+ safe_VkCopyMemoryToImageInfoEXT(const safe_VkCopyMemoryToImageInfoEXT& copy_src);
+ safe_VkCopyMemoryToImageInfoEXT& operator=(const safe_VkCopyMemoryToImageInfoEXT& copy_src);
+ safe_VkCopyMemoryToImageInfoEXT();
+ ~safe_VkCopyMemoryToImageInfoEXT();
+ void initialize(const VkCopyMemoryToImageInfoEXT* in_struct, PNextCopyState* copy_state = {});
+ void initialize(const safe_VkCopyMemoryToImageInfoEXT* copy_src, PNextCopyState* copy_state = {});
+ VkCopyMemoryToImageInfoEXT *ptr() { return reinterpret_cast<VkCopyMemoryToImageInfoEXT *>(this); }
+ VkCopyMemoryToImageInfoEXT const *ptr() const { return reinterpret_cast<VkCopyMemoryToImageInfoEXT const *>(this); }
+};
+struct safe_VkCopyImageToMemoryInfoEXT {
+ VkStructureType sType;
+ const void* pNext{};
+ VkHostImageCopyFlagsEXT flags;
+ VkImage srcImage;
+ VkImageLayout srcImageLayout;
+ uint32_t regionCount;
+ safe_VkImageToMemoryCopyEXT* pRegions{};
+
+ safe_VkCopyImageToMemoryInfoEXT(const VkCopyImageToMemoryInfoEXT* in_struct, PNextCopyState* copy_state = {});
+ safe_VkCopyImageToMemoryInfoEXT(const safe_VkCopyImageToMemoryInfoEXT& copy_src);
+ safe_VkCopyImageToMemoryInfoEXT& operator=(const safe_VkCopyImageToMemoryInfoEXT& copy_src);
+ safe_VkCopyImageToMemoryInfoEXT();
+ ~safe_VkCopyImageToMemoryInfoEXT();
+ void initialize(const VkCopyImageToMemoryInfoEXT* in_struct, PNextCopyState* copy_state = {});
+ void initialize(const safe_VkCopyImageToMemoryInfoEXT* copy_src, PNextCopyState* copy_state = {});
+ VkCopyImageToMemoryInfoEXT *ptr() { return reinterpret_cast<VkCopyImageToMemoryInfoEXT *>(this); }
+ VkCopyImageToMemoryInfoEXT const *ptr() const { return reinterpret_cast<VkCopyImageToMemoryInfoEXT const *>(this); }
+};
+struct safe_VkCopyImageToImageInfoEXT {
+ VkStructureType sType;
+ const void* pNext{};
+ VkHostImageCopyFlagsEXT flags;
+ VkImage srcImage;
+ VkImageLayout srcImageLayout;
+ VkImage dstImage;
+ VkImageLayout dstImageLayout;
+ uint32_t regionCount;
+ safe_VkImageCopy2* pRegions{};
+
+ safe_VkCopyImageToImageInfoEXT(const VkCopyImageToImageInfoEXT* in_struct, PNextCopyState* copy_state = {});
+ safe_VkCopyImageToImageInfoEXT(const safe_VkCopyImageToImageInfoEXT& copy_src);
+ safe_VkCopyImageToImageInfoEXT& operator=(const safe_VkCopyImageToImageInfoEXT& copy_src);
+ safe_VkCopyImageToImageInfoEXT();
+ ~safe_VkCopyImageToImageInfoEXT();
+ void initialize(const VkCopyImageToImageInfoEXT* in_struct, PNextCopyState* copy_state = {});
+ void initialize(const safe_VkCopyImageToImageInfoEXT* copy_src, PNextCopyState* copy_state = {});
+ VkCopyImageToImageInfoEXT *ptr() { return reinterpret_cast<VkCopyImageToImageInfoEXT *>(this); }
+ VkCopyImageToImageInfoEXT const *ptr() const { return reinterpret_cast<VkCopyImageToImageInfoEXT const *>(this); }
+};
+struct safe_VkHostImageLayoutTransitionInfoEXT {
+ VkStructureType sType;
+ const void* pNext{};
+ VkImage image;
+ VkImageLayout oldLayout;
+ VkImageLayout newLayout;
+ VkImageSubresourceRange subresourceRange;
+
+ safe_VkHostImageLayoutTransitionInfoEXT(const VkHostImageLayoutTransitionInfoEXT* in_struct, PNextCopyState* copy_state = {});
+ safe_VkHostImageLayoutTransitionInfoEXT(const safe_VkHostImageLayoutTransitionInfoEXT& copy_src);
+ safe_VkHostImageLayoutTransitionInfoEXT& operator=(const safe_VkHostImageLayoutTransitionInfoEXT& copy_src);
+ safe_VkHostImageLayoutTransitionInfoEXT();
+ ~safe_VkHostImageLayoutTransitionInfoEXT();
+ void initialize(const VkHostImageLayoutTransitionInfoEXT* in_struct, PNextCopyState* copy_state = {});
+ void initialize(const safe_VkHostImageLayoutTransitionInfoEXT* copy_src, PNextCopyState* copy_state = {});
+ VkHostImageLayoutTransitionInfoEXT *ptr() { return reinterpret_cast<VkHostImageLayoutTransitionInfoEXT *>(this); }
+ VkHostImageLayoutTransitionInfoEXT const *ptr() const { return reinterpret_cast<VkHostImageLayoutTransitionInfoEXT const *>(this); }
+};
+struct safe_VkSubresourceHostMemcpySizeEXT {
+ VkStructureType sType;
+ void* pNext{};
+ VkDeviceSize size;
+
+ safe_VkSubresourceHostMemcpySizeEXT(const VkSubresourceHostMemcpySizeEXT* in_struct, PNextCopyState* copy_state = {});
+ safe_VkSubresourceHostMemcpySizeEXT(const safe_VkSubresourceHostMemcpySizeEXT& copy_src);
+ safe_VkSubresourceHostMemcpySizeEXT& operator=(const safe_VkSubresourceHostMemcpySizeEXT& copy_src);
+ safe_VkSubresourceHostMemcpySizeEXT();
+ ~safe_VkSubresourceHostMemcpySizeEXT();
+ void initialize(const VkSubresourceHostMemcpySizeEXT* in_struct, PNextCopyState* copy_state = {});
+ void initialize(const safe_VkSubresourceHostMemcpySizeEXT* copy_src, PNextCopyState* copy_state = {});
+ VkSubresourceHostMemcpySizeEXT *ptr() { return reinterpret_cast<VkSubresourceHostMemcpySizeEXT *>(this); }
+ VkSubresourceHostMemcpySizeEXT const *ptr() const { return reinterpret_cast<VkSubresourceHostMemcpySizeEXT const *>(this); }
+};
+struct safe_VkHostImageCopyDevicePerformanceQueryEXT {
+ VkStructureType sType;
+ void* pNext{};
+ VkBool32 optimalDeviceAccess;
+ VkBool32 identicalMemoryLayout;
+
+ safe_VkHostImageCopyDevicePerformanceQueryEXT(const VkHostImageCopyDevicePerformanceQueryEXT* in_struct, PNextCopyState* copy_state = {});
+ safe_VkHostImageCopyDevicePerformanceQueryEXT(const safe_VkHostImageCopyDevicePerformanceQueryEXT& copy_src);
+ safe_VkHostImageCopyDevicePerformanceQueryEXT& operator=(const safe_VkHostImageCopyDevicePerformanceQueryEXT& copy_src);
+ safe_VkHostImageCopyDevicePerformanceQueryEXT();
+ ~safe_VkHostImageCopyDevicePerformanceQueryEXT();
+ void initialize(const VkHostImageCopyDevicePerformanceQueryEXT* in_struct, PNextCopyState* copy_state = {});
+ void initialize(const safe_VkHostImageCopyDevicePerformanceQueryEXT* copy_src, PNextCopyState* copy_state = {});
+ VkHostImageCopyDevicePerformanceQueryEXT *ptr() { return reinterpret_cast<VkHostImageCopyDevicePerformanceQueryEXT *>(this); }
+ VkHostImageCopyDevicePerformanceQueryEXT const *ptr() const { return reinterpret_cast<VkHostImageCopyDevicePerformanceQueryEXT const *>(this); }
+};
+struct safe_VkSubresourceLayout2EXT {
+ VkStructureType sType;
+ void* pNext{};
+ VkSubresourceLayout subresourceLayout;
+
+ safe_VkSubresourceLayout2EXT(const VkSubresourceLayout2EXT* in_struct, PNextCopyState* copy_state = {});
+ safe_VkSubresourceLayout2EXT(const safe_VkSubresourceLayout2EXT& copy_src);
+ safe_VkSubresourceLayout2EXT& operator=(const safe_VkSubresourceLayout2EXT& copy_src);
+ safe_VkSubresourceLayout2EXT();
+ ~safe_VkSubresourceLayout2EXT();
+ void initialize(const VkSubresourceLayout2EXT* in_struct, PNextCopyState* copy_state = {});
+ void initialize(const safe_VkSubresourceLayout2EXT* copy_src, PNextCopyState* copy_state = {});
+ VkSubresourceLayout2EXT *ptr() { return reinterpret_cast<VkSubresourceLayout2EXT *>(this); }
+ VkSubresourceLayout2EXT const *ptr() const { return reinterpret_cast<VkSubresourceLayout2EXT const *>(this); }
+};
+struct safe_VkImageSubresource2EXT {
+ VkStructureType sType;
+ void* pNext{};
+ VkImageSubresource imageSubresource;
+
+ safe_VkImageSubresource2EXT(const VkImageSubresource2EXT* in_struct, PNextCopyState* copy_state = {});
+ safe_VkImageSubresource2EXT(const safe_VkImageSubresource2EXT& copy_src);
+ safe_VkImageSubresource2EXT& operator=(const safe_VkImageSubresource2EXT& copy_src);
+ safe_VkImageSubresource2EXT();
+ ~safe_VkImageSubresource2EXT();
+ void initialize(const VkImageSubresource2EXT* in_struct, PNextCopyState* copy_state = {});
+ void initialize(const safe_VkImageSubresource2EXT* copy_src, PNextCopyState* copy_state = {});
+ VkImageSubresource2EXT *ptr() { return reinterpret_cast<VkImageSubresource2EXT *>(this); }
+ VkImageSubresource2EXT const *ptr() const { return reinterpret_cast<VkImageSubresource2EXT const *>(this); }
+};
struct safe_VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT {
VkStructureType sType;
void* pNext{};
@@ -11421,36 +11634,6 @@ struct safe_VkImageCompressionControlEXT {
VkImageCompressionControlEXT *ptr() { return reinterpret_cast<VkImageCompressionControlEXT *>(this); }
VkImageCompressionControlEXT const *ptr() const { return reinterpret_cast<VkImageCompressionControlEXT const *>(this); }
};
-struct safe_VkSubresourceLayout2EXT {
- VkStructureType sType;
- void* pNext{};
- VkSubresourceLayout subresourceLayout;
-
- safe_VkSubresourceLayout2EXT(const VkSubresourceLayout2EXT* in_struct, PNextCopyState* copy_state = {});
- safe_VkSubresourceLayout2EXT(const safe_VkSubresourceLayout2EXT& copy_src);
- safe_VkSubresourceLayout2EXT& operator=(const safe_VkSubresourceLayout2EXT& copy_src);
- safe_VkSubresourceLayout2EXT();
- ~safe_VkSubresourceLayout2EXT();
- void initialize(const VkSubresourceLayout2EXT* in_struct, PNextCopyState* copy_state = {});
- void initialize(const safe_VkSubresourceLayout2EXT* copy_src, PNextCopyState* copy_state = {});
- VkSubresourceLayout2EXT *ptr() { return reinterpret_cast<VkSubresourceLayout2EXT *>(this); }
- VkSubresourceLayout2EXT const *ptr() const { return reinterpret_cast<VkSubresourceLayout2EXT const *>(this); }
-};
-struct safe_VkImageSubresource2EXT {
- VkStructureType sType;
- void* pNext{};
- VkImageSubresource imageSubresource;
-
- safe_VkImageSubresource2EXT(const VkImageSubresource2EXT* in_struct, PNextCopyState* copy_state = {});
- safe_VkImageSubresource2EXT(const safe_VkImageSubresource2EXT& copy_src);
- safe_VkImageSubresource2EXT& operator=(const safe_VkImageSubresource2EXT& copy_src);
- safe_VkImageSubresource2EXT();
- ~safe_VkImageSubresource2EXT();
- void initialize(const VkImageSubresource2EXT* in_struct, PNextCopyState* copy_state = {});
- void initialize(const safe_VkImageSubresource2EXT* copy_src, PNextCopyState* copy_state = {});
- VkImageSubresource2EXT *ptr() { return reinterpret_cast<VkImageSubresource2EXT *>(this); }
- VkImageSubresource2EXT const *ptr() const { return reinterpret_cast<VkImageSubresource2EXT const *>(this); }
-};
struct safe_VkImageCompressionPropertiesEXT {
VkStructureType sType;
void* pNext{};
@@ -13021,6 +13204,56 @@ struct safe_VkPhysicalDeviceMemoryDecompressionPropertiesNV {
VkPhysicalDeviceMemoryDecompressionPropertiesNV *ptr() { return reinterpret_cast<VkPhysicalDeviceMemoryDecompressionPropertiesNV *>(this); }
VkPhysicalDeviceMemoryDecompressionPropertiesNV const *ptr() const { return reinterpret_cast<VkPhysicalDeviceMemoryDecompressionPropertiesNV const *>(this); }
};
+struct safe_VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV {
+ VkStructureType sType;
+ void* pNext{};
+ VkBool32 deviceGeneratedCompute;
+ VkBool32 deviceGeneratedComputePipelines;
+ VkBool32 deviceGeneratedComputeCaptureReplay;
+
+ safe_VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV(const VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV* in_struct, PNextCopyState* copy_state = {});
+ safe_VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV(const safe_VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV& copy_src);
+ safe_VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV& operator=(const safe_VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV& copy_src);
+ safe_VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV();
+ ~safe_VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV();
+ void initialize(const VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV* in_struct, PNextCopyState* copy_state = {});
+ void initialize(const safe_VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV* copy_src, PNextCopyState* copy_state = {});
+ VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV *ptr() { return reinterpret_cast<VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV *>(this); }
+ VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV const *ptr() const { return reinterpret_cast<VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV const *>(this); }
+};
+struct safe_VkComputePipelineIndirectBufferInfoNV {
+ VkStructureType sType;
+ const void* pNext{};
+ VkDeviceAddress deviceAddress;
+ VkDeviceSize size;
+ VkDeviceAddress pipelineDeviceAddressCaptureReplay;
+
+ safe_VkComputePipelineIndirectBufferInfoNV(const VkComputePipelineIndirectBufferInfoNV* in_struct, PNextCopyState* copy_state = {});
+ safe_VkComputePipelineIndirectBufferInfoNV(const safe_VkComputePipelineIndirectBufferInfoNV& copy_src);
+ safe_VkComputePipelineIndirectBufferInfoNV& operator=(const safe_VkComputePipelineIndirectBufferInfoNV& copy_src);
+ safe_VkComputePipelineIndirectBufferInfoNV();
+ ~safe_VkComputePipelineIndirectBufferInfoNV();
+ void initialize(const VkComputePipelineIndirectBufferInfoNV* in_struct, PNextCopyState* copy_state = {});
+ void initialize(const safe_VkComputePipelineIndirectBufferInfoNV* copy_src, PNextCopyState* copy_state = {});
+ VkComputePipelineIndirectBufferInfoNV *ptr() { return reinterpret_cast<VkComputePipelineIndirectBufferInfoNV *>(this); }
+ VkComputePipelineIndirectBufferInfoNV const *ptr() const { return reinterpret_cast<VkComputePipelineIndirectBufferInfoNV const *>(this); }
+};
+struct safe_VkPipelineIndirectDeviceAddressInfoNV {
+ VkStructureType sType;
+ const void* pNext{};
+ VkPipelineBindPoint pipelineBindPoint;
+ VkPipeline pipeline;
+
+ safe_VkPipelineIndirectDeviceAddressInfoNV(const VkPipelineIndirectDeviceAddressInfoNV* in_struct, PNextCopyState* copy_state = {});
+ safe_VkPipelineIndirectDeviceAddressInfoNV(const safe_VkPipelineIndirectDeviceAddressInfoNV& copy_src);
+ safe_VkPipelineIndirectDeviceAddressInfoNV& operator=(const safe_VkPipelineIndirectDeviceAddressInfoNV& copy_src);
+ safe_VkPipelineIndirectDeviceAddressInfoNV();
+ ~safe_VkPipelineIndirectDeviceAddressInfoNV();
+ void initialize(const VkPipelineIndirectDeviceAddressInfoNV* in_struct, PNextCopyState* copy_state = {});
+ void initialize(const safe_VkPipelineIndirectDeviceAddressInfoNV* copy_src, PNextCopyState* copy_state = {});
+ VkPipelineIndirectDeviceAddressInfoNV *ptr() { return reinterpret_cast<VkPipelineIndirectDeviceAddressInfoNV *>(this); }
+ VkPipelineIndirectDeviceAddressInfoNV const *ptr() const { return reinterpret_cast<VkPipelineIndirectDeviceAddressInfoNV const *>(this); }
+};
struct safe_VkPhysicalDeviceLinearColorAttachmentFeaturesNV {
VkStructureType sType;
void* pNext{};
diff --git a/layers/vulkan/generated/vk_safe_struct_ext.cpp b/layers/vulkan/generated/vk_safe_struct_ext.cpp
index b4eee67e140..e7742683179 100644
--- a/layers/vulkan/generated/vk_safe_struct_ext.cpp
+++ b/layers/vulkan/generated/vk_safe_struct_ext.cpp
@@ -8803,6 +8803,1045 @@ void safe_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT::initialize(const safe
pNext = SafePnextCopy(copy_src->pNext);
}
+safe_VkPhysicalDeviceHostImageCopyFeaturesEXT::safe_VkPhysicalDeviceHostImageCopyFeaturesEXT(const VkPhysicalDeviceHostImageCopyFeaturesEXT* in_struct, [[maybe_unused]] PNextCopyState* copy_state) :
+ sType(in_struct->sType),
+ hostImageCopy(in_struct->hostImageCopy)
+{
+ pNext = SafePnextCopy(in_struct->pNext, copy_state);
+}
+
+safe_VkPhysicalDeviceHostImageCopyFeaturesEXT::safe_VkPhysicalDeviceHostImageCopyFeaturesEXT() :
+ sType(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT),
+ pNext(nullptr),
+ hostImageCopy()
+{}
+
+safe_VkPhysicalDeviceHostImageCopyFeaturesEXT::safe_VkPhysicalDeviceHostImageCopyFeaturesEXT(const safe_VkPhysicalDeviceHostImageCopyFeaturesEXT& copy_src)
+{
+ sType = copy_src.sType;
+ hostImageCopy = copy_src.hostImageCopy;
+ pNext = SafePnextCopy(copy_src.pNext);
+}
+
+safe_VkPhysicalDeviceHostImageCopyFeaturesEXT& safe_VkPhysicalDeviceHostImageCopyFeaturesEXT::operator=(const safe_VkPhysicalDeviceHostImageCopyFeaturesEXT& copy_src)
+{
+ if (©_src == this) return *this;
+
+ if (pNext)
+ FreePnextChain(pNext);
+
+ sType = copy_src.sType;
+ hostImageCopy = copy_src.hostImageCopy;
+ pNext = SafePnextCopy(copy_src.pNext);
+
+ return *this;
+}
+
+safe_VkPhysicalDeviceHostImageCopyFeaturesEXT::~safe_VkPhysicalDeviceHostImageCopyFeaturesEXT()
+{
+ if (pNext)
+ FreePnextChain(pNext);
+}
+
+void safe_VkPhysicalDeviceHostImageCopyFeaturesEXT::initialize(const VkPhysicalDeviceHostImageCopyFeaturesEXT* in_struct, [[maybe_unused]] PNextCopyState* copy_state)
+{
+ if (pNext)
+ FreePnextChain(pNext);
+ sType = in_struct->sType;
+ hostImageCopy = in_struct->hostImageCopy;
+ pNext = SafePnextCopy(in_struct->pNext, copy_state);
+}
+
+void safe_VkPhysicalDeviceHostImageCopyFeaturesEXT::initialize(const safe_VkPhysicalDeviceHostImageCopyFeaturesEXT* copy_src, [[maybe_unused]] PNextCopyState* copy_state)
+{
+ sType = copy_src->sType;
+ hostImageCopy = copy_src->hostImageCopy;
+ pNext = SafePnextCopy(copy_src->pNext);
+}
+
+safe_VkPhysicalDeviceHostImageCopyPropertiesEXT::safe_VkPhysicalDeviceHostImageCopyPropertiesEXT(const VkPhysicalDeviceHostImageCopyPropertiesEXT* in_struct, [[maybe_unused]] PNextCopyState* copy_state) :
+ sType(in_struct->sType),
+ copySrcLayoutCount(in_struct->copySrcLayoutCount),
+ pCopySrcLayouts(nullptr),
+ copyDstLayoutCount(in_struct->copyDstLayoutCount),
+ pCopyDstLayouts(nullptr),
+ identicalMemoryTypeRequirements(in_struct->identicalMemoryTypeRequirements)
+{
+ pNext = SafePnextCopy(in_struct->pNext, copy_state);
+ if (in_struct->pCopySrcLayouts) {
+ pCopySrcLayouts = new VkImageLayout[in_struct->copySrcLayoutCount];
+ memcpy ((void *)pCopySrcLayouts, (void *)in_struct->pCopySrcLayouts, sizeof(VkImageLayout)*in_struct->copySrcLayoutCount);
+ }
+ if (in_struct->pCopyDstLayouts) {
+ pCopyDstLayouts = new VkImageLayout[in_struct->copyDstLayoutCount];
+ memcpy ((void *)pCopyDstLayouts, (void *)in_struct->pCopyDstLayouts, sizeof(VkImageLayout)*in_struct->copyDstLayoutCount);
+ }
+ for (uint32_t i = 0; i < VK_UUID_SIZE; ++i) {
+ optimalTilingLayoutUUID[i] = in_struct->optimalTilingLayoutUUID[i];
+ }
+}
+
+safe_VkPhysicalDeviceHostImageCopyPropertiesEXT::safe_VkPhysicalDeviceHostImageCopyPropertiesEXT() :
+ sType(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT),
+ pNext(nullptr),
+ copySrcLayoutCount(),
+ pCopySrcLayouts(nullptr),
+ copyDstLayoutCount(),
+ pCopyDstLayouts(nullptr),
+ identicalMemoryTypeRequirements()
+{}
+
+safe_VkPhysicalDeviceHostImageCopyPropertiesEXT::safe_VkPhysicalDeviceHostImageCopyPropertiesEXT(const safe_VkPhysicalDeviceHostImageCopyPropertiesEXT& copy_src)
+{
+ sType = copy_src.sType;
+ copySrcLayoutCount = copy_src.copySrcLayoutCount;
+ pCopySrcLayouts = nullptr;
+ copyDstLayoutCount = copy_src.copyDstLayoutCount;
+ pCopyDstLayouts = nullptr;
+ identicalMemoryTypeRequirements = copy_src.identicalMemoryTypeRequirements;
+ pNext = SafePnextCopy(copy_src.pNext);
+ if (copy_src.pCopySrcLayouts) {
+ pCopySrcLayouts = new VkImageLayout[copy_src.copySrcLayoutCount];
+ memcpy ((void *)pCopySrcLayouts, (void *)copy_src.pCopySrcLayouts, sizeof(VkImageLayout)*copy_src.copySrcLayoutCount);
+ }
+ if (copy_src.pCopyDstLayouts) {
+ pCopyDstLayouts = new VkImageLayout[copy_src.copyDstLayoutCount];
+ memcpy ((void *)pCopyDstLayouts, (void *)copy_src.pCopyDstLayouts, sizeof(VkImageLayout)*copy_src.copyDstLayoutCount);
+ }
+ for (uint32_t i = 0; i < VK_UUID_SIZE; ++i) {
+ optimalTilingLayoutUUID[i] = copy_src.optimalTilingLayoutUUID[i];
+ }
+}
+
+safe_VkPhysicalDeviceHostImageCopyPropertiesEXT& safe_VkPhysicalDeviceHostImageCopyPropertiesEXT::operator=(const safe_VkPhysicalDeviceHostImageCopyPropertiesEXT& copy_src)
+{
+ if (©_src == this) return *this;
+
+ if (pCopySrcLayouts)
+ delete[] pCopySrcLayouts;
+ if (pCopyDstLayouts)
+ delete[] pCopyDstLayouts;
+ if (pNext)
+ FreePnextChain(pNext);
+
+ sType = copy_src.sType;
+ copySrcLayoutCount = copy_src.copySrcLayoutCount;
+ pCopySrcLayouts = nullptr;
+ copyDstLayoutCount = copy_src.copyDstLayoutCount;
+ pCopyDstLayouts = nullptr;
+ identicalMemoryTypeRequirements = copy_src.identicalMemoryTypeRequirements;
+ pNext = SafePnextCopy(copy_src.pNext);
+ if (copy_src.pCopySrcLayouts) {
+ pCopySrcLayouts = new VkImageLayout[copy_src.copySrcLayoutCount];
+ memcpy ((void *)pCopySrcLayouts, (void *)copy_src.pCopySrcLayouts, sizeof(VkImageLayout)*copy_src.copySrcLayoutCount);
+ }
+ if (copy_src.pCopyDstLayouts) {
+ pCopyDstLayouts = new VkImageLayout[copy_src.copyDstLayoutCount];
+ memcpy ((void *)pCopyDstLayouts, (void *)copy_src.pCopyDstLayouts, sizeof(VkImageLayout)*copy_src.copyDstLayoutCount);
+ }
+ for (uint32_t i = 0; i < VK_UUID_SIZE; ++i) {
+ optimalTilingLayoutUUID[i] = copy_src.optimalTilingLayoutUUID[i];
+ }
+
+ return *this;
+}
+
+safe_VkPhysicalDeviceHostImageCopyPropertiesEXT::~safe_VkPhysicalDeviceHostImageCopyPropertiesEXT()
+{
+ if (pCopySrcLayouts)
+ delete[] pCopySrcLayouts;
+ if (pCopyDstLayouts)
+ delete[] pCopyDstLayouts;
+ if (pNext)
+ FreePnextChain(pNext);
+}
+
+void safe_VkPhysicalDeviceHostImageCopyPropertiesEXT::initialize(const VkPhysicalDeviceHostImageCopyPropertiesEXT* in_struct, [[maybe_unused]] PNextCopyState* copy_state)
+{
+ if (pCopySrcLayouts)
+ delete[] pCopySrcLayouts;
+ if (pCopyDstLayouts)
+ delete[] pCopyDstLayouts;
+ if (pNext)
+ FreePnextChain(pNext);
+ sType = in_struct->sType;
+ copySrcLayoutCount = in_struct->copySrcLayoutCount;
+ pCopySrcLayouts = nullptr;
+ copyDstLayoutCount = in_struct->copyDstLayoutCount;
+ pCopyDstLayouts = nullptr;
+ identicalMemoryTypeRequirements = in_struct->identicalMemoryTypeRequirements;
+ pNext = SafePnextCopy(in_struct->pNext, copy_state);
+ if (in_struct->pCopySrcLayouts) {
+ pCopySrcLayouts = new VkImageLayout[in_struct->copySrcLayoutCount];
+ memcpy ((void *)pCopySrcLayouts, (void *)in_struct->pCopySrcLayouts, sizeof(VkImageLayout)*in_struct->copySrcLayoutCount);
+ }
+ if (in_struct->pCopyDstLayouts) {
+ pCopyDstLayouts = new VkImageLayout[in_struct->copyDstLayoutCount];
+ memcpy ((void *)pCopyDstLayouts, (void *)in_struct->pCopyDstLayouts, sizeof(VkImageLayout)*in_struct->copyDstLayoutCount);
+ }
+ for (uint32_t i = 0; i < VK_UUID_SIZE; ++i) {
+ optimalTilingLayoutUUID[i] = in_struct->optimalTilingLayoutUUID[i];
+ }
+}
+
+void safe_VkPhysicalDeviceHostImageCopyPropertiesEXT::initialize(const safe_VkPhysicalDeviceHostImageCopyPropertiesEXT* copy_src, [[maybe_unused]] PNextCopyState* copy_state)
+{
+ sType = copy_src->sType;
+ copySrcLayoutCount = copy_src->copySrcLayoutCount;
+ pCopySrcLayouts = nullptr;
+ copyDstLayoutCount = copy_src->copyDstLayoutCount;
+ pCopyDstLayouts = nullptr;
+ identicalMemoryTypeRequirements = copy_src->identicalMemoryTypeRequirements;
+ pNext = SafePnextCopy(copy_src->pNext);
+ if (copy_src->pCopySrcLayouts) {
+ pCopySrcLayouts = new VkImageLayout[copy_src->copySrcLayoutCount];
+ memcpy ((void *)pCopySrcLayouts, (void *)copy_src->pCopySrcLayouts, sizeof(VkImageLayout)*copy_src->copySrcLayoutCount);
+ }
+ if (copy_src->pCopyDstLayouts) {
+ pCopyDstLayouts = new VkImageLayout[copy_src->copyDstLayoutCount];
+ memcpy ((void *)pCopyDstLayouts, (void *)copy_src->pCopyDstLayouts, sizeof(VkImageLayout)*copy_src->copyDstLayoutCount);
+ }
+ for (uint32_t i = 0; i < VK_UUID_SIZE; ++i) {
+ optimalTilingLayoutUUID[i] = copy_src->optimalTilingLayoutUUID[i];
+ }
+}
+
+safe_VkMemoryToImageCopyEXT::safe_VkMemoryToImageCopyEXT(const VkMemoryToImageCopyEXT* in_struct, [[maybe_unused]] PNextCopyState* copy_state) :
+ sType(in_struct->sType),
+ pHostPointer(in_struct->pHostPointer),
+ memoryRowLength(in_struct->memoryRowLength),
+ memoryImageHeight(in_struct->memoryImageHeight),
+ imageSubresource(in_struct->imageSubresource),
+ imageOffset(in_struct->imageOffset),
+ imageExtent(in_struct->imageExtent)
+{
+ pNext = SafePnextCopy(in_struct->pNext, copy_state);
+}
+
+safe_VkMemoryToImageCopyEXT::safe_VkMemoryToImageCopyEXT() :
+ sType(VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT),
+ pNext(nullptr),
+ pHostPointer(nullptr),
+ memoryRowLength(),
+ memoryImageHeight(),
+ imageSubresource(),
+ imageOffset(),
+ imageExtent()
+{}
+
+safe_VkMemoryToImageCopyEXT::safe_VkMemoryToImageCopyEXT(const safe_VkMemoryToImageCopyEXT& copy_src)
+{
+ sType = copy_src.sType;
+ pHostPointer = copy_src.pHostPointer;
+ memoryRowLength = copy_src.memoryRowLength;
+ memoryImageHeight = copy_src.memoryImageHeight;
+ imageSubresource = copy_src.imageSubresource;
+ imageOffset = copy_src.imageOffset;
+ imageExtent = copy_src.imageExtent;
+ pNext = SafePnextCopy(copy_src.pNext);
+}
+
+safe_VkMemoryToImageCopyEXT& safe_VkMemoryToImageCopyEXT::operator=(const safe_VkMemoryToImageCopyEXT& copy_src)
+{
+ if (©_src == this) return *this;
+
+ if (pNext)
+ FreePnextChain(pNext);
+
+ sType = copy_src.sType;
+ pHostPointer = copy_src.pHostPointer;
+ memoryRowLength = copy_src.memoryRowLength;
+ memoryImageHeight = copy_src.memoryImageHeight;
+ imageSubresource = copy_src.imageSubresource;
+ imageOffset = copy_src.imageOffset;
+ imageExtent = copy_src.imageExtent;
+ pNext = SafePnextCopy(copy_src.pNext);
+
+ return *this;
+}
+
+safe_VkMemoryToImageCopyEXT::~safe_VkMemoryToImageCopyEXT()
+{
+ if (pNext)
+ FreePnextChain(pNext);
+}
+
+void safe_VkMemoryToImageCopyEXT::initialize(const VkMemoryToImageCopyEXT* in_struct, [[maybe_unused]] PNextCopyState* copy_state)
+{
+ if (pNext)
+ FreePnextChain(pNext);
+ sType = in_struct->sType;
+ pHostPointer = in_struct->pHostPointer;
+ memoryRowLength = in_struct->memoryRowLength;
+ memoryImageHeight = in_struct->memoryImageHeight;
+ imageSubresource = in_struct->imageSubresource;
+ imageOffset = in_struct->imageOffset;
+ imageExtent = in_struct->imageExtent;
+ pNext = SafePnextCopy(in_struct->pNext, copy_state);
+}
+
+void safe_VkMemoryToImageCopyEXT::initialize(const safe_VkMemoryToImageCopyEXT* copy_src, [[maybe_unused]] PNextCopyState* copy_state)
+{
+ sType = copy_src->sType;
+ pHostPointer = copy_src->pHostPointer;
+ memoryRowLength = copy_src->memoryRowLength;
+ memoryImageHeight = copy_src->memoryImageHeight;
+ imageSubresource = copy_src->imageSubresource;
+ imageOffset = copy_src->imageOffset;
+ imageExtent = copy_src->imageExtent;
+ pNext = SafePnextCopy(copy_src->pNext);
+}
+
+safe_VkImageToMemoryCopyEXT::safe_VkImageToMemoryCopyEXT(const VkImageToMemoryCopyEXT* in_struct, [[maybe_unused]] PNextCopyState* copy_state) :
+ sType(in_struct->sType),
+ pHostPointer(in_struct->pHostPointer),
+ memoryRowLength(in_struct->memoryRowLength),
+ memoryImageHeight(in_struct->memoryImageHeight),
+ imageSubresource(in_struct->imageSubresource),
+ imageOffset(in_struct->imageOffset),
+ imageExtent(in_struct->imageExtent)
+{
+ pNext = SafePnextCopy(in_struct->pNext, copy_state);
+}
+
+safe_VkImageToMemoryCopyEXT::safe_VkImageToMemoryCopyEXT() :
+ sType(VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT),
+ pNext(nullptr),
+ pHostPointer(nullptr),
+ memoryRowLength(),
+ memoryImageHeight(),
+ imageSubresource(),
+ imageOffset(),
+ imageExtent()
+{}
+
+safe_VkImageToMemoryCopyEXT::safe_VkImageToMemoryCopyEXT(const safe_VkImageToMemoryCopyEXT& copy_src)
+{
+ sType = copy_src.sType;
+ pHostPointer = copy_src.pHostPointer;
+ memoryRowLength = copy_src.memoryRowLength;
+ memoryImageHeight = copy_src.memoryImageHeight;
+ imageSubresource = copy_src.imageSubresource;
+ imageOffset = copy_src.imageOffset;
+ imageExtent = copy_src.imageExtent;
+ pNext = SafePnextCopy(copy_src.pNext);
+}
+
+safe_VkImageToMemoryCopyEXT& safe_VkImageToMemoryCopyEXT::operator=(const safe_VkImageToMemoryCopyEXT& copy_src)
+{
+ if (©_src == this) return *this;
+
+ if (pNext)
+ FreePnextChain(pNext);
+
+ sType = copy_src.sType;
+ pHostPointer = copy_src.pHostPointer;
+ memoryRowLength = copy_src.memoryRowLength;
+ memoryImageHeight = copy_src.memoryImageHeight;
+ imageSubresource = copy_src.imageSubresource;
+ imageOffset = copy_src.imageOffset;
+ imageExtent = copy_src.imageExtent;
+ pNext = SafePnextCopy(copy_src.pNext);
+
+ return *this;
+}
+
+safe_VkImageToMemoryCopyEXT::~safe_VkImageToMemoryCopyEXT()
+{
+ if (pNext)
+ FreePnextChain(pNext);
+}
+
+void safe_VkImageToMemoryCopyEXT::initialize(const VkImageToMemoryCopyEXT* in_struct, [[maybe_unused]] PNextCopyState* copy_state)
+{
+ if (pNext)
+ FreePnextChain(pNext);
+ sType = in_struct->sType;
+ pHostPointer = in_struct->pHostPointer;
+ memoryRowLength = in_struct->memoryRowLength;
+ memoryImageHeight = in_struct->memoryImageHeight;
+ imageSubresource = in_struct->imageSubresource;
+ imageOffset = in_struct->imageOffset;
+ imageExtent = in_struct->imageExtent;
+ pNext = SafePnextCopy(in_struct->pNext, copy_state);
+}
+
+void safe_VkImageToMemoryCopyEXT::initialize(const safe_VkImageToMemoryCopyEXT* copy_src, [[maybe_unused]] PNextCopyState* copy_state)
+{
+ sType = copy_src->sType;
+ pHostPointer = copy_src->pHostPointer;
+ memoryRowLength = copy_src->memoryRowLength;
+ memoryImageHeight = copy_src->memoryImageHeight;
+ imageSubresource = copy_src->imageSubresource;
+ imageOffset = copy_src->imageOffset;
+ imageExtent = copy_src->imageExtent;
+ pNext = SafePnextCopy(copy_src->pNext);
+}
+
+safe_VkCopyMemoryToImageInfoEXT::safe_VkCopyMemoryToImageInfoEXT(const VkCopyMemoryToImageInfoEXT* in_struct, [[maybe_unused]] PNextCopyState* copy_state) :
+ sType(in_struct->sType),
+ flags(in_struct->flags),
+ dstImage(in_struct->dstImage),
+ dstImageLayout(in_struct->dstImageLayout),
+ regionCount(in_struct->regionCount),
+ pRegions(nullptr)
+{
+ pNext = SafePnextCopy(in_struct->pNext, copy_state);
+ if (regionCount && in_struct->pRegions) {
+ pRegions = new safe_VkMemoryToImageCopyEXT[regionCount];
+ for (uint32_t i = 0; i < regionCount; ++i) {
+ pRegions[i].initialize(&in_struct->pRegions[i]);
+ }
+ }
+}
+
+safe_VkCopyMemoryToImageInfoEXT::safe_VkCopyMemoryToImageInfoEXT() :
+ sType(VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT),
+ pNext(nullptr),
+ flags(),
+ dstImage(),
+ dstImageLayout(),
+ regionCount(),
+ pRegions(nullptr)
+{}
+
+safe_VkCopyMemoryToImageInfoEXT::safe_VkCopyMemoryToImageInfoEXT(const safe_VkCopyMemoryToImageInfoEXT& copy_src)
+{
+ sType = copy_src.sType;
+ flags = copy_src.flags;
+ dstImage = copy_src.dstImage;
+ dstImageLayout = copy_src.dstImageLayout;
+ regionCount = copy_src.regionCount;
+ pRegions = nullptr;
+ pNext = SafePnextCopy(copy_src.pNext);
+ if (regionCount && copy_src.pRegions) {
+ pRegions = new safe_VkMemoryToImageCopyEXT[regionCount];
+ for (uint32_t i = 0; i < regionCount; ++i) {
+ pRegions[i].initialize(©_src.pRegions[i]);
+ }
+ }
+}
+
+safe_VkCopyMemoryToImageInfoEXT& safe_VkCopyMemoryToImageInfoEXT::operator=(const safe_VkCopyMemoryToImageInfoEXT& copy_src)
+{
+ if (©_src == this) return *this;
+
+ if (pRegions)
+ delete[] pRegions;
+ if (pNext)
+ FreePnextChain(pNext);
+
+ sType = copy_src.sType;
+ flags = copy_src.flags;
+ dstImage = copy_src.dstImage;
+ dstImageLayout = copy_src.dstImageLayout;
+ regionCount = copy_src.regionCount;
+ pRegions = nullptr;
+ pNext = SafePnextCopy(copy_src.pNext);
+ if (regionCount && copy_src.pRegions) {
+ pRegions = new safe_VkMemoryToImageCopyEXT[regionCount];
+ for (uint32_t i = 0; i < regionCount; ++i) {
+ pRegions[i].initialize(©_src.pRegions[i]);
+ }
+ }
+
+ return *this;
+}
+
+safe_VkCopyMemoryToImageInfoEXT::~safe_VkCopyMemoryToImageInfoEXT()
+{
+ if (pRegions)
+ delete[] pRegions;
+ if (pNext)
+ FreePnextChain(pNext);
+}
+
+void safe_VkCopyMemoryToImageInfoEXT::initialize(const VkCopyMemoryToImageInfoEXT* in_struct, [[maybe_unused]] PNextCopyState* copy_state)
+{
+ if (pRegions)
+ delete[] pRegions;
+ if (pNext)
+ FreePnextChain(pNext);
+ sType = in_struct->sType;
+ flags = in_struct->flags;
+ dstImage = in_struct->dstImage;
+ dstImageLayout = in_struct->dstImageLayout;
+ regionCount = in_struct->regionCount;
+ pRegions = nullptr;
+ pNext = SafePnextCopy(in_struct->pNext, copy_state);
+ if (regionCount && in_struct->pRegions) {
+ pRegions = new safe_VkMemoryToImageCopyEXT[regionCount];
+ for (uint32_t i = 0; i < regionCount; ++i) {
+ pRegions[i].initialize(&in_struct->pRegions[i]);
+ }
+ }
+}
+
+void safe_VkCopyMemoryToImageInfoEXT::initialize(const safe_VkCopyMemoryToImageInfoEXT* copy_src, [[maybe_unused]] PNextCopyState* copy_state)
+{
+ sType = copy_src->sType;
+ flags = copy_src->flags;
+ dstImage = copy_src->dstImage;
+ dstImageLayout = copy_src->dstImageLayout;
+ regionCount = copy_src->regionCount;
+ pRegions = nullptr;
+ pNext = SafePnextCopy(copy_src->pNext);
+ if (regionCount && copy_src->pRegions) {
+ pRegions = new safe_VkMemoryToImageCopyEXT[regionCount];
+ for (uint32_t i = 0; i < regionCount; ++i) {
+ pRegions[i].initialize(©_src->pRegions[i]);
+ }
+ }
+}
+
+safe_VkCopyImageToMemoryInfoEXT::safe_VkCopyImageToMemoryInfoEXT(const VkCopyImageToMemoryInfoEXT* in_struct, [[maybe_unused]] PNextCopyState* copy_state) :
+ sType(in_struct->sType),
+ flags(in_struct->flags),
+ srcImage(in_struct->srcImage),
+ srcImageLayout(in_struct->srcImageLayout),
+ regionCount(in_struct->regionCount),
+ pRegions(nullptr)
+{
+ pNext = SafePnextCopy(in_struct->pNext, copy_state);
+ if (regionCount && in_struct->pRegions) {
+ pRegions = new safe_VkImageToMemoryCopyEXT[regionCount];
+ for (uint32_t i = 0; i < regionCount; ++i) {
+ pRegions[i].initialize(&in_struct->pRegions[i]);
+ }
+ }
+}
+
+safe_VkCopyImageToMemoryInfoEXT::safe_VkCopyImageToMemoryInfoEXT() :
+ sType(VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT),
+ pNext(nullptr),
+ flags(),
+ srcImage(),
+ srcImageLayout(),
+ regionCount(),
+ pRegions(nullptr)
+{}
+
+safe_VkCopyImageToMemoryInfoEXT::safe_VkCopyImageToMemoryInfoEXT(const safe_VkCopyImageToMemoryInfoEXT& copy_src)
+{
+ sType = copy_src.sType;
+ flags = copy_src.flags;
+ srcImage = copy_src.srcImage;
+ srcImageLayout = copy_src.srcImageLayout;
+ regionCount = copy_src.regionCount;
+ pRegions = nullptr;
+ pNext = SafePnextCopy(copy_src.pNext);
+ if (regionCount && copy_src.pRegions) {
+ pRegions = new safe_VkImageToMemoryCopyEXT[regionCount];
+ for (uint32_t i = 0; i < regionCount; ++i) {
+ pRegions[i].initialize(©_src.pRegions[i]);
+ }
+ }
+}
+
+safe_VkCopyImageToMemoryInfoEXT& safe_VkCopyImageToMemoryInfoEXT::operator=(const safe_VkCopyImageToMemoryInfoEXT& copy_src)
+{
+ if (©_src == this) return *this;
+
+ if (pRegions)
+ delete[] pRegions;
+ if (pNext)
+ FreePnextChain(pNext);
+
+ sType = copy_src.sType;
+ flags = copy_src.flags;
+ srcImage = copy_src.srcImage;
+ srcImageLayout = copy_src.srcImageLayout;
+ regionCount = copy_src.regionCount;
+ pRegions = nullptr;
+ pNext = SafePnextCopy(copy_src.pNext);
+ if (regionCount && copy_src.pRegions) {
+ pRegions = new safe_VkImageToMemoryCopyEXT[regionCount];
+ for (uint32_t i = 0; i < regionCount; ++i) {
+ pRegions[i].initialize(©_src.pRegions[i]);
+ }
+ }
+
+ return *this;
+}
+
+safe_VkCopyImageToMemoryInfoEXT::~safe_VkCopyImageToMemoryInfoEXT()
+{
+ if (pRegions)
+ delete[] pRegions;
+ if (pNext)
+ FreePnextChain(pNext);
+}
+
+void safe_VkCopyImageToMemoryInfoEXT::initialize(const VkCopyImageToMemoryInfoEXT* in_struct, [[maybe_unused]] PNextCopyState* copy_state)
+{
+ if (pRegions)
+ delete[] pRegions;
+ if (pNext)
+ FreePnextChain(pNext);
+ sType = in_struct->sType;
+ flags = in_struct->flags;
+ srcImage = in_struct->srcImage;
+ srcImageLayout = in_struct->srcImageLayout;
+ regionCount = in_struct->regionCount;
+ pRegions = nullptr;
+ pNext = SafePnextCopy(in_struct->pNext, copy_state);
+ if (regionCount && in_struct->pRegions) {
+ pRegions = new safe_VkImageToMemoryCopyEXT[regionCount];
+ for (uint32_t i = 0; i < regionCount; ++i) {
+ pRegions[i].initialize(&in_struct->pRegions[i]);
+ }
+ }
+}
+
+void safe_VkCopyImageToMemoryInfoEXT::initialize(const safe_VkCopyImageToMemoryInfoEXT* copy_src, [[maybe_unused]] PNextCopyState* copy_state)
+{
+ sType = copy_src->sType;
+ flags = copy_src->flags;
+ srcImage = copy_src->srcImage;
+ srcImageLayout = copy_src->srcImageLayout;
+ regionCount = copy_src->regionCount;
+ pRegions = nullptr;
+ pNext = SafePnextCopy(copy_src->pNext);
+ if (regionCount && copy_src->pRegions) {
+ pRegions = new safe_VkImageToMemoryCopyEXT[regionCount];
+ for (uint32_t i = 0; i < regionCount; ++i) {
+ pRegions[i].initialize(©_src->pRegions[i]);
+ }
+ }
+}
+
+safe_VkCopyImageToImageInfoEXT::safe_VkCopyImageToImageInfoEXT(const VkCopyImageToImageInfoEXT* in_struct, [[maybe_unused]] PNextCopyState* copy_state) :
+ sType(in_struct->sType),
+ flags(in_struct->flags),
+ srcImage(in_struct->srcImage),
+ srcImageLayout(in_struct->srcImageLayout),
+ dstImage(in_struct->dstImage),
+ dstImageLayout(in_struct->dstImageLayout),
+ regionCount(in_struct->regionCount),
+ pRegions(nullptr)
+{
+ pNext = SafePnextCopy(in_struct->pNext, copy_state);
+ if (regionCount && in_struct->pRegions) {
+ pRegions = new safe_VkImageCopy2[regionCount];
+ for (uint32_t i = 0; i < regionCount; ++i) {
+ pRegions[i].initialize(&in_struct->pRegions[i]);
+ }
+ }
+}
+
+safe_VkCopyImageToImageInfoEXT::safe_VkCopyImageToImageInfoEXT() :
+ sType(VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT),
+ pNext(nullptr),
+ flags(),
+ srcImage(),
+ srcImageLayout(),
+ dstImage(),
+ dstImageLayout(),
+ regionCount(),
+ pRegions(nullptr)
+{}
+
+safe_VkCopyImageToImageInfoEXT::safe_VkCopyImageToImageInfoEXT(const safe_VkCopyImageToImageInfoEXT& copy_src)
+{
+ sType = copy_src.sType;
+ flags = copy_src.flags;
+ srcImage = copy_src.srcImage;
+ srcImageLayout = copy_src.srcImageLayout;
+ dstImage = copy_src.dstImage;
+ dstImageLayout = copy_src.dstImageLayout;
+ regionCount = copy_src.regionCount;
+ pRegions = nullptr;
+ pNext = SafePnextCopy(copy_src.pNext);
+ if (regionCount && copy_src.pRegions) {
+ pRegions = new safe_VkImageCopy2[regionCount];
+ for (uint32_t i = 0; i < regionCount; ++i) {
+ pRegions[i].initialize(©_src.pRegions[i]);
+ }
+ }
+}
+
+safe_VkCopyImageToImageInfoEXT& safe_VkCopyImageToImageInfoEXT::operator=(const safe_VkCopyImageToImageInfoEXT& copy_src)
+{
+ if (©_src == this) return *this;
+
+ if (pRegions)
+ delete[] pRegions;
+ if (pNext)
+ FreePnextChain(pNext);
+
+ sType = copy_src.sType;
+ flags = copy_src.flags;
+ srcImage = copy_src.srcImage;
+ srcImageLayout = copy_src.srcImageLayout;
+ dstImage = copy_src.dstImage;
+ dstImageLayout = copy_src.dstImageLayout;
+ regionCount = copy_src.regionCount;
+ pRegions = nullptr;
+ pNext = SafePnextCopy(copy_src.pNext);
+ if (regionCount && copy_src.pRegions) {
+ pRegions = new safe_VkImageCopy2[regionCount];
+ for (uint32_t i = 0; i < regionCount; ++i) {
+ pRegions[i].initialize(©_src.pRegions[i]);
+ }
+ }
+
+ return *this;
+}
+
+safe_VkCopyImageToImageInfoEXT::~safe_VkCopyImageToImageInfoEXT()
+{
+ if (pRegions)
+ delete[] pRegions;
+ if (pNext)
+ FreePnextChain(pNext);
+}
+
+void safe_VkCopyImageToImageInfoEXT::initialize(const VkCopyImageToImageInfoEXT* in_struct, [[maybe_unused]] PNextCopyState* copy_state)
+{
+ if (pRegions)
+ delete[] pRegions;
+ if (pNext)
+ FreePnextChain(pNext);
+ sType = in_struct->sType;
+ flags = in_struct->flags;
+ srcImage = in_struct->srcImage;
+ srcImageLayout = in_struct->srcImageLayout;
+ dstImage = in_struct->dstImage;
+ dstImageLayout = in_struct->dstImageLayout;
+ regionCount = in_struct->regionCount;
+ pRegions = nullptr;
+ pNext = SafePnextCopy(in_struct->pNext, copy_state);
+ if (regionCount && in_struct->pRegions) {
+ pRegions = new safe_VkImageCopy2[regionCount];
+ for (uint32_t i = 0; i < regionCount; ++i) {
+ pRegions[i].initialize(&in_struct->pRegions[i]);
+ }
+ }
+}
+
+void safe_VkCopyImageToImageInfoEXT::initialize(const safe_VkCopyImageToImageInfoEXT* copy_src, [[maybe_unused]] PNextCopyState* copy_state)
+{
+ sType = copy_src->sType;
+ flags = copy_src->flags;
+ srcImage = copy_src->srcImage;
+ srcImageLayout = copy_src->srcImageLayout;
+ dstImage = copy_src->dstImage;
+ dstImageLayout = copy_src->dstImageLayout;
+ regionCount = copy_src->regionCount;
+ pRegions = nullptr;
+ pNext = SafePnextCopy(copy_src->pNext);
+ if (regionCount && copy_src->pRegions) {
+ pRegions = new safe_VkImageCopy2[regionCount];
+ for (uint32_t i = 0; i < regionCount; ++i) {
+ pRegions[i].initialize(©_src->pRegions[i]);
+ }
+ }
+}
+
+safe_VkHostImageLayoutTransitionInfoEXT::safe_VkHostImageLayoutTransitionInfoEXT(const VkHostImageLayoutTransitionInfoEXT* in_struct, [[maybe_unused]] PNextCopyState* copy_state) :
+ sType(in_struct->sType),
+ image(in_struct->image),
+ oldLayout(in_struct->oldLayout),
+ newLayout(in_struct->newLayout),
+ subresourceRange(in_struct->subresourceRange)
+{
+ pNext = SafePnextCopy(in_struct->pNext, copy_state);
+}
+
+safe_VkHostImageLayoutTransitionInfoEXT::safe_VkHostImageLayoutTransitionInfoEXT() :
+ sType(VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT),
+ pNext(nullptr),
+ image(),
+ oldLayout(),
+ newLayout(),
+ subresourceRange()
+{}
+
+safe_VkHostImageLayoutTransitionInfoEXT::safe_VkHostImageLayoutTransitionInfoEXT(const safe_VkHostImageLayoutTransitionInfoEXT& copy_src)
+{
+ sType = copy_src.sType;
+ image = copy_src.image;
+ oldLayout = copy_src.oldLayout;
+ newLayout = copy_src.newLayout;
+ subresourceRange = copy_src.subresourceRange;
+ pNext = SafePnextCopy(copy_src.pNext);
+}
+
+safe_VkHostImageLayoutTransitionInfoEXT& safe_VkHostImageLayoutTransitionInfoEXT::operator=(const safe_VkHostImageLayoutTransitionInfoEXT& copy_src)
+{
+ if (©_src == this) return *this;
+
+ if (pNext)
+ FreePnextChain(pNext);
+
+ sType = copy_src.sType;
+ image = copy_src.image;
+ oldLayout = copy_src.oldLayout;
+ newLayout = copy_src.newLayout;
+ subresourceRange = copy_src.subresourceRange;
+ pNext = SafePnextCopy(copy_src.pNext);
+
+ return *this;
+}
+
+safe_VkHostImageLayoutTransitionInfoEXT::~safe_VkHostImageLayoutTransitionInfoEXT()
+{
+ if (pNext)
+ FreePnextChain(pNext);
+}
+
+void safe_VkHostImageLayoutTransitionInfoEXT::initialize(const VkHostImageLayoutTransitionInfoEXT* in_struct, [[maybe_unused]] PNextCopyState* copy_state)
+{
+ if (pNext)
+ FreePnextChain(pNext);
+ sType = in_struct->sType;
+ image = in_struct->image;
+ oldLayout = in_struct->oldLayout;
+ newLayout = in_struct->newLayout;
+ subresourceRange = in_struct->subresourceRange;
+ pNext = SafePnextCopy(in_struct->pNext, copy_state);
+}
+
+void safe_VkHostImageLayoutTransitionInfoEXT::initialize(const safe_VkHostImageLayoutTransitionInfoEXT* copy_src, [[maybe_unused]] PNextCopyState* copy_state)
+{
+ sType = copy_src->sType;
+ image = copy_src->image;
+ oldLayout = copy_src->oldLayout;
+ newLayout = copy_src->newLayout;
+ subresourceRange = copy_src->subresourceRange;
+ pNext = SafePnextCopy(copy_src->pNext);
+}
+
+safe_VkSubresourceHostMemcpySizeEXT::safe_VkSubresourceHostMemcpySizeEXT(const VkSubresourceHostMemcpySizeEXT* in_struct, [[maybe_unused]] PNextCopyState* copy_state) :
+ sType(in_struct->sType),
+ size(in_struct->size)
+{
+ pNext = SafePnextCopy(in_struct->pNext, copy_state);
+}
+
+safe_VkSubresourceHostMemcpySizeEXT::safe_VkSubresourceHostMemcpySizeEXT() :
+ sType(VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT),
+ pNext(nullptr),
+ size()
+{}
+
+safe_VkSubresourceHostMemcpySizeEXT::safe_VkSubresourceHostMemcpySizeEXT(const safe_VkSubresourceHostMemcpySizeEXT& copy_src)
+{
+ sType = copy_src.sType;
+ size = copy_src.size;
+ pNext = SafePnextCopy(copy_src.pNext);
+}
+
+safe_VkSubresourceHostMemcpySizeEXT& safe_VkSubresourceHostMemcpySizeEXT::operator=(const safe_VkSubresourceHostMemcpySizeEXT& copy_src)
+{
+ if (©_src == this) return *this;
+
+ if (pNext)
+ FreePnextChain(pNext);
+
+ sType = copy_src.sType;
+ size = copy_src.size;
+ pNext = SafePnextCopy(copy_src.pNext);
+
+ return *this;
+}
+
+safe_VkSubresourceHostMemcpySizeEXT::~safe_VkSubresourceHostMemcpySizeEXT()
+{
+ if (pNext)
+ FreePnextChain(pNext);
+}
+
+void safe_VkSubresourceHostMemcpySizeEXT::initialize(const VkSubresourceHostMemcpySizeEXT* in_struct, [[maybe_unused]] PNextCopyState* copy_state)
+{
+ if (pNext)
+ FreePnextChain(pNext);
+ sType = in_struct->sType;
+ size = in_struct->size;
+ pNext = SafePnextCopy(in_struct->pNext, copy_state);
+}
+
+void safe_VkSubresourceHostMemcpySizeEXT::initialize(const safe_VkSubresourceHostMemcpySizeEXT* copy_src, [[maybe_unused]] PNextCopyState* copy_state)
+{
+ sType = copy_src->sType;
+ size = copy_src->size;
+ pNext = SafePnextCopy(copy_src->pNext);
+}
+
+safe_VkHostImageCopyDevicePerformanceQueryEXT::safe_VkHostImageCopyDevicePerformanceQueryEXT(const VkHostImageCopyDevicePerformanceQueryEXT* in_struct, [[maybe_unused]] PNextCopyState* copy_state) :
+ sType(in_struct->sType),
+ optimalDeviceAccess(in_struct->optimalDeviceAccess),
+ identicalMemoryLayout(in_struct->identicalMemoryLayout)
+{
+ pNext = SafePnextCopy(in_struct->pNext, copy_state);
+}
+
+safe_VkHostImageCopyDevicePerformanceQueryEXT::safe_VkHostImageCopyDevicePerformanceQueryEXT() :
+ sType(VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT),
+ pNext(nullptr),
+ optimalDeviceAccess(),
+ identicalMemoryLayout()
+{}
+
+safe_VkHostImageCopyDevicePerformanceQueryEXT::safe_VkHostImageCopyDevicePerformanceQueryEXT(const safe_VkHostImageCopyDevicePerformanceQueryEXT& copy_src)
+{
+ sType = copy_src.sType;
+ optimalDeviceAccess = copy_src.optimalDeviceAccess;
+ identicalMemoryLayout = copy_src.identicalMemoryLayout;
+ pNext = SafePnextCopy(copy_src.pNext);
+}
+
+safe_VkHostImageCopyDevicePerformanceQueryEXT& safe_VkHostImageCopyDevicePerformanceQueryEXT::operator=(const safe_VkHostImageCopyDevicePerformanceQueryEXT& copy_src)
+{
+ if (©_src == this) return *this;
+
+ if (pNext)
+ FreePnextChain(pNext);
+
+ sType = copy_src.sType;
+ optimalDeviceAccess = copy_src.optimalDeviceAccess;
+ identicalMemoryLayout = copy_src.identicalMemoryLayout;
+ pNext = SafePnextCopy(copy_src.pNext);
+
+ return *this;
+}
+
+safe_VkHostImageCopyDevicePerformanceQueryEXT::~safe_VkHostImageCopyDevicePerformanceQueryEXT()
+{
+ if (pNext)
+ FreePnextChain(pNext);
+}
+
+void safe_VkHostImageCopyDevicePerformanceQueryEXT::initialize(const VkHostImageCopyDevicePerformanceQueryEXT* in_struct, [[maybe_unused]] PNextCopyState* copy_state)
+{
+ if (pNext)
+ FreePnextChain(pNext);
+ sType = in_struct->sType;
+ optimalDeviceAccess = in_struct->optimalDeviceAccess;
+ identicalMemoryLayout = in_struct->identicalMemoryLayout;
+ pNext = SafePnextCopy(in_struct->pNext, copy_state);
+}
+
+void safe_VkHostImageCopyDevicePerformanceQueryEXT::initialize(const safe_VkHostImageCopyDevicePerformanceQueryEXT* copy_src, [[maybe_unused]] PNextCopyState* copy_state)
+{
+ sType = copy_src->sType;
+ optimalDeviceAccess = copy_src->optimalDeviceAccess;
+ identicalMemoryLayout = copy_src->identicalMemoryLayout;
+ pNext = SafePnextCopy(copy_src->pNext);
+}
+
+safe_VkSubresourceLayout2EXT::safe_VkSubresourceLayout2EXT(const VkSubresourceLayout2EXT* in_struct, [[maybe_unused]] PNextCopyState* copy_state) :
+ sType(in_struct->sType),
+ subresourceLayout(in_struct->subresourceLayout)
+{
+ pNext = SafePnextCopy(in_struct->pNext, copy_state);
+}
+
+safe_VkSubresourceLayout2EXT::safe_VkSubresourceLayout2EXT() :
+ sType(VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT),
+ pNext(nullptr),
+ subresourceLayout()
+{}
+
+safe_VkSubresourceLayout2EXT::safe_VkSubresourceLayout2EXT(const safe_VkSubresourceLayout2EXT& copy_src)
+{
+ sType = copy_src.sType;
+ subresourceLayout = copy_src.subresourceLayout;
+ pNext = SafePnextCopy(copy_src.pNext);
+}
+
+safe_VkSubresourceLayout2EXT& safe_VkSubresourceLayout2EXT::operator=(const safe_VkSubresourceLayout2EXT& copy_src)
+{
+ if (©_src == this) return *this;
+
+ if (pNext)
+ FreePnextChain(pNext);
+
+ sType = copy_src.sType;
+ subresourceLayout = copy_src.subresourceLayout;
+ pNext = SafePnextCopy(copy_src.pNext);
+
+ return *this;
+}
+
+safe_VkSubresourceLayout2EXT::~safe_VkSubresourceLayout2EXT()
+{
+ if (pNext)
+ FreePnextChain(pNext);
+}
+
+void safe_VkSubresourceLayout2EXT::initialize(const VkSubresourceLayout2EXT* in_struct, [[maybe_unused]] PNextCopyState* copy_state)
+{
+ if (pNext)
+ FreePnextChain(pNext);
+ sType = in_struct->sType;
+ subresourceLayout = in_struct->subresourceLayout;
+ pNext = SafePnextCopy(in_struct->pNext, copy_state);
+}
+
+void safe_VkSubresourceLayout2EXT::initialize(const safe_VkSubresourceLayout2EXT* copy_src, [[maybe_unused]] PNextCopyState* copy_state)
+{
+ sType = copy_src->sType;
+ subresourceLayout = copy_src->subresourceLayout;
+ pNext = SafePnextCopy(copy_src->pNext);
+}
+
+safe_VkImageSubresource2EXT::safe_VkImageSubresource2EXT(const VkImageSubresource2EXT* in_struct, [[maybe_unused]] PNextCopyState* copy_state) :
+ sType(in_struct->sType),
+ imageSubresource(in_struct->imageSubresource)
+{
+ pNext = SafePnextCopy(in_struct->pNext, copy_state);
+}
+
+safe_VkImageSubresource2EXT::safe_VkImageSubresource2EXT() :
+ sType(VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT),
+ pNext(nullptr),
+ imageSubresource()
+{}
+
+safe_VkImageSubresource2EXT::safe_VkImageSubresource2EXT(const safe_VkImageSubresource2EXT& copy_src)
+{
+ sType = copy_src.sType;
+ imageSubresource = copy_src.imageSubresource;
+ pNext = SafePnextCopy(copy_src.pNext);
+}
+
+safe_VkImageSubresource2EXT& safe_VkImageSubresource2EXT::operator=(const safe_VkImageSubresource2EXT& copy_src)
+{
+ if (©_src == this) return *this;
+
+ if (pNext)
+ FreePnextChain(pNext);
+
+ sType = copy_src.sType;
+ imageSubresource = copy_src.imageSubresource;
+ pNext = SafePnextCopy(copy_src.pNext);
+
+ return *this;
+}
+
+safe_VkImageSubresource2EXT::~safe_VkImageSubresource2EXT()
+{
+ if (pNext)
+ FreePnextChain(pNext);
+}
+
+void safe_VkImageSubresource2EXT::initialize(const VkImageSubresource2EXT* in_struct, [[maybe_unused]] PNextCopyState* copy_state)
+{
+ if (pNext)
+ FreePnextChain(pNext);
+ sType = in_struct->sType;
+ imageSubresource = in_struct->imageSubresource;
+ pNext = SafePnextCopy(in_struct->pNext, copy_state);
+}
+
+void safe_VkImageSubresource2EXT::initialize(const safe_VkImageSubresource2EXT* copy_src, [[maybe_unused]] PNextCopyState* copy_state)
+{
+ sType = copy_src->sType;
+ imageSubresource = copy_src->imageSubresource;
+ pNext = SafePnextCopy(copy_src->pNext);
+}
+
safe_VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT::safe_VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT* in_struct, [[maybe_unused]] PNextCopyState* copy_state) :
sType(in_struct->sType),
shaderBufferFloat16Atomics(in_struct->shaderBufferFloat16Atomics),
@@ -12911,118 +13950,6 @@ void safe_VkImageCompressionControlEXT::initialize(const safe_VkImageCompression
}
}
-safe_VkSubresourceLayout2EXT::safe_VkSubresourceLayout2EXT(const VkSubresourceLayout2EXT* in_struct, [[maybe_unused]] PNextCopyState* copy_state) :
- sType(in_struct->sType),
- subresourceLayout(in_struct->subresourceLayout)
-{
- pNext = SafePnextCopy(in_struct->pNext, copy_state);
-}
-
-safe_VkSubresourceLayout2EXT::safe_VkSubresourceLayout2EXT() :
- sType(VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT),
- pNext(nullptr),
- subresourceLayout()
-{}
-
-safe_VkSubresourceLayout2EXT::safe_VkSubresourceLayout2EXT(const safe_VkSubresourceLayout2EXT& copy_src)
-{
- sType = copy_src.sType;
- subresourceLayout = copy_src.subresourceLayout;
- pNext = SafePnextCopy(copy_src.pNext);
-}
-
-safe_VkSubresourceLayout2EXT& safe_VkSubresourceLayout2EXT::operator=(const safe_VkSubresourceLayout2EXT& copy_src)
-{
- if (©_src == this) return *this;
-
- if (pNext)
- FreePnextChain(pNext);
-
- sType = copy_src.sType;
- subresourceLayout = copy_src.subresourceLayout;
- pNext = SafePnextCopy(copy_src.pNext);
-
- return *this;
-}
-
-safe_VkSubresourceLayout2EXT::~safe_VkSubresourceLayout2EXT()
-{
- if (pNext)
- FreePnextChain(pNext);
-}
-
-void safe_VkSubresourceLayout2EXT::initialize(const VkSubresourceLayout2EXT* in_struct, [[maybe_unused]] PNextCopyState* copy_state)
-{
- if (pNext)
- FreePnextChain(pNext);
- sType = in_struct->sType;
- subresourceLayout = in_struct->subresourceLayout;
- pNext = SafePnextCopy(in_struct->pNext, copy_state);
-}
-
-void safe_VkSubresourceLayout2EXT::initialize(const safe_VkSubresourceLayout2EXT* copy_src, [[maybe_unused]] PNextCopyState* copy_state)
-{
- sType = copy_src->sType;
- subresourceLayout = copy_src->subresourceLayout;
- pNext = SafePnextCopy(copy_src->pNext);
-}
-
-safe_VkImageSubresource2EXT::safe_VkImageSubresource2EXT(const VkImageSubresource2EXT* in_struct, [[maybe_unused]] PNextCopyState* copy_state) :
- sType(in_struct->sType),
- imageSubresource(in_struct->imageSubresource)
-{
- pNext = SafePnextCopy(in_struct->pNext, copy_state);
-}
-
-safe_VkImageSubresource2EXT::safe_VkImageSubresource2EXT() :
- sType(VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT),
- pNext(nullptr),
- imageSubresource()
-{}
-
-safe_VkImageSubresource2EXT::safe_VkImageSubresource2EXT(const safe_VkImageSubresource2EXT& copy_src)
-{
- sType = copy_src.sType;
- imageSubresource = copy_src.imageSubresource;
- pNext = SafePnextCopy(copy_src.pNext);
-}
-
-safe_VkImageSubresource2EXT& safe_VkImageSubresource2EXT::operator=(const safe_VkImageSubresource2EXT& copy_src)
-{
- if (©_src == this) return *this;
-
- if (pNext)
- FreePnextChain(pNext);
-
- sType = copy_src.sType;
- imageSubresource = copy_src.imageSubresource;
- pNext = SafePnextCopy(copy_src.pNext);
-
- return *this;
-}
-
-safe_VkImageSubresource2EXT::~safe_VkImageSubresource2EXT()
-{
- if (pNext)
- FreePnextChain(pNext);
-}
-
-void safe_VkImageSubresource2EXT::initialize(const VkImageSubresource2EXT* in_struct, [[maybe_unused]] PNextCopyState* copy_state)
-{
- if (pNext)
- FreePnextChain(pNext);
- sType = in_struct->sType;
- imageSubresource = in_struct->imageSubresource;
- pNext = SafePnextCopy(in_struct->pNext, copy_state);
-}
-
-void safe_VkImageSubresource2EXT::initialize(const safe_VkImageSubresource2EXT* copy_src, [[maybe_unused]] PNextCopyState* copy_state)
-{
- sType = copy_src->sType;
- imageSubresource = copy_src->imageSubresource;
- pNext = SafePnextCopy(copy_src->pNext);
-}
-
safe_VkImageCompressionPropertiesEXT::safe_VkImageCompressionPropertiesEXT(const VkImageCompressionPropertiesEXT* in_struct, [[maybe_unused]] PNextCopyState* copy_state) :
sType(in_struct->sType),
imageCompressionFlags(in_struct->imageCompressionFlags),
diff --git a/layers/vulkan/generated/vk_safe_struct_utils.cpp b/layers/vulkan/generated/vk_safe_struct_utils.cpp
index 21fd393ab08..35d17bb114f 100644
--- a/layers/vulkan/generated/vk_safe_struct_utils.cpp
+++ b/layers/vulkan/generated/vk_safe_struct_utils.cpp
@@ -1136,6 +1136,18 @@ void *SafePnextCopy(const void *pNext, PNextCopyState* copy_state) {
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:
safe_pNext = new safe_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(reinterpret_cast<const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *>(pNext), copy_state);
break;
+ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT:
+ safe_pNext = new safe_VkPhysicalDeviceHostImageCopyFeaturesEXT(reinterpret_cast<const VkPhysicalDeviceHostImageCopyFeaturesEXT *>(pNext), copy_state);
+ break;
+ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT:
+ safe_pNext = new safe_VkPhysicalDeviceHostImageCopyPropertiesEXT(reinterpret_cast<const VkPhysicalDeviceHostImageCopyPropertiesEXT *>(pNext), copy_state);
+ break;
+ case VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT:
+ safe_pNext = new safe_VkSubresourceHostMemcpySizeEXT(reinterpret_cast<const VkSubresourceHostMemcpySizeEXT *>(pNext), copy_state);
+ break;
+ case VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT:
+ safe_pNext = new safe_VkHostImageCopyDevicePerformanceQueryEXT(reinterpret_cast<const VkHostImageCopyDevicePerformanceQueryEXT *>(pNext), copy_state);
+ break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT:
safe_pNext = new safe_VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(reinterpret_cast<const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT *>(pNext), copy_state);
break;
@@ -1553,6 +1565,9 @@ void *SafePnextCopy(const void *pNext, PNextCopyState* copy_state) {
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV:
safe_pNext = new safe_VkPhysicalDeviceMemoryDecompressionPropertiesNV(reinterpret_cast<const VkPhysicalDeviceMemoryDecompressionPropertiesNV *>(pNext), copy_state);
break;
+ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV:
+ safe_pNext = new safe_VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV(reinterpret_cast<const VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV *>(pNext), copy_state);
+ break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV:
safe_pNext = new safe_VkPhysicalDeviceLinearColorAttachmentFeaturesNV(reinterpret_cast<const VkPhysicalDeviceLinearColorAttachmentFeaturesNV *>(pNext), copy_state);
break;
@@ -2821,6 +2836,18 @@ void FreePnextChain(const void *pNext) {
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:
delete reinterpret_cast<const safe_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *>(header);
break;
+ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT:
+ delete reinterpret_cast<const safe_VkPhysicalDeviceHostImageCopyFeaturesEXT *>(header);
+ break;
+ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT:
+ delete reinterpret_cast<const safe_VkPhysicalDeviceHostImageCopyPropertiesEXT *>(header);
+ break;
+ case VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT:
+ delete reinterpret_cast<const safe_VkSubresourceHostMemcpySizeEXT *>(header);
+ break;
+ case VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT:
+ delete reinterpret_cast<const safe_VkHostImageCopyDevicePerformanceQueryEXT *>(header);
+ break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT:
delete reinterpret_cast<const safe_VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT *>(header);
break;
@@ -3238,6 +3265,9 @@ void FreePnextChain(const void *pNext) {
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV:
delete reinterpret_cast<const safe_VkPhysicalDeviceMemoryDecompressionPropertiesNV *>(header);
break;
+ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV:
+ delete reinterpret_cast<const safe_VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV *>(header);
+ break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV:
delete reinterpret_cast<const safe_VkPhysicalDeviceLinearColorAttachmentFeaturesNV *>(header);
break;
diff --git a/layers/vulkan/generated/vk_safe_struct_vendor.cpp b/layers/vulkan/generated/vk_safe_struct_vendor.cpp
index df8db6239fe..4279e725dc6 100644
--- a/layers/vulkan/generated/vk_safe_struct_vendor.cpp
+++ b/layers/vulkan/generated/vk_safe_struct_vendor.cpp
@@ -11455,6 +11455,204 @@ void safe_VkPhysicalDeviceMemoryDecompressionPropertiesNV::initialize(const safe
pNext = SafePnextCopy(copy_src->pNext);
}
+safe_VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::safe_VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV(const VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV* in_struct, [[maybe_unused]] PNextCopyState* copy_state) :
+ sType(in_struct->sType),
+ deviceGeneratedCompute(in_struct->deviceGeneratedCompute),
+ deviceGeneratedComputePipelines(in_struct->deviceGeneratedComputePipelines),
+ deviceGeneratedComputeCaptureReplay(in_struct->deviceGeneratedComputeCaptureReplay)
+{
+ pNext = SafePnextCopy(in_struct->pNext, copy_state);
+}
+
+safe_VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::safe_VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV() :
+ sType(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV),
+ pNext(nullptr),
+ deviceGeneratedCompute(),
+ deviceGeneratedComputePipelines(),
+ deviceGeneratedComputeCaptureReplay()
+{}
+
+safe_VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::safe_VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV(const safe_VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV& copy_src)
+{
+ sType = copy_src.sType;
+ deviceGeneratedCompute = copy_src.deviceGeneratedCompute;
+ deviceGeneratedComputePipelines = copy_src.deviceGeneratedComputePipelines;
+ deviceGeneratedComputeCaptureReplay = copy_src.deviceGeneratedComputeCaptureReplay;
+ pNext = SafePnextCopy(copy_src.pNext);
+}
+
+safe_VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV& safe_VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::operator=(const safe_VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV& copy_src)
+{
+ if (©_src == this) return *this;
+
+ if (pNext)
+ FreePnextChain(pNext);
+
+ sType = copy_src.sType;
+ deviceGeneratedCompute = copy_src.deviceGeneratedCompute;
+ deviceGeneratedComputePipelines = copy_src.deviceGeneratedComputePipelines;
+ deviceGeneratedComputeCaptureReplay = copy_src.deviceGeneratedComputeCaptureReplay;
+ pNext = SafePnextCopy(copy_src.pNext);
+
+ return *this;
+}
+
+safe_VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::~safe_VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV()
+{
+ if (pNext)
+ FreePnextChain(pNext);
+}
+
+void safe_VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::initialize(const VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV* in_struct, [[maybe_unused]] PNextCopyState* copy_state)
+{
+ if (pNext)
+ FreePnextChain(pNext);
+ sType = in_struct->sType;
+ deviceGeneratedCompute = in_struct->deviceGeneratedCompute;
+ deviceGeneratedComputePipelines = in_struct->deviceGeneratedComputePipelines;
+ deviceGeneratedComputeCaptureReplay = in_struct->deviceGeneratedComputeCaptureReplay;
+ pNext = SafePnextCopy(in_struct->pNext, copy_state);
+}
+
+void safe_VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::initialize(const safe_VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV* copy_src, [[maybe_unused]] PNextCopyState* copy_state)
+{
+ sType = copy_src->sType;
+ deviceGeneratedCompute = copy_src->deviceGeneratedCompute;
+ deviceGeneratedComputePipelines = copy_src->deviceGeneratedComputePipelines;
+ deviceGeneratedComputeCaptureReplay = copy_src->deviceGeneratedComputeCaptureReplay;
+ pNext = SafePnextCopy(copy_src->pNext);
+}
+
+safe_VkComputePipelineIndirectBufferInfoNV::safe_VkComputePipelineIndirectBufferInfoNV(const VkComputePipelineIndirectBufferInfoNV* in_struct, [[maybe_unused]] PNextCopyState* copy_state) :
+ sType(in_struct->sType),
+ deviceAddress(in_struct->deviceAddress),
+ size(in_struct->size),
+ pipelineDeviceAddressCaptureReplay(in_struct->pipelineDeviceAddressCaptureReplay)
+{
+ pNext = SafePnextCopy(in_struct->pNext, copy_state);
+}
+
+safe_VkComputePipelineIndirectBufferInfoNV::safe_VkComputePipelineIndirectBufferInfoNV() :
+ sType(VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV),
+ pNext(nullptr),
+ deviceAddress(),
+ size(),
+ pipelineDeviceAddressCaptureReplay()
+{}
+
+safe_VkComputePipelineIndirectBufferInfoNV::safe_VkComputePipelineIndirectBufferInfoNV(const safe_VkComputePipelineIndirectBufferInfoNV& copy_src)
+{
+ sType = copy_src.sType;
+ deviceAddress = copy_src.deviceAddress;
+ size = copy_src.size;
+ pipelineDeviceAddressCaptureReplay = copy_src.pipelineDeviceAddressCaptureReplay;
+ pNext = SafePnextCopy(copy_src.pNext);
+}
+
+safe_VkComputePipelineIndirectBufferInfoNV& safe_VkComputePipelineIndirectBufferInfoNV::operator=(const safe_VkComputePipelineIndirectBufferInfoNV& copy_src)
+{
+ if (©_src == this) return *this;
+
+ if (pNext)
+ FreePnextChain(pNext);
+
+ sType = copy_src.sType;
+ deviceAddress = copy_src.deviceAddress;
+ size = copy_src.size;
+ pipelineDeviceAddressCaptureReplay = copy_src.pipelineDeviceAddressCaptureReplay;
+ pNext = SafePnextCopy(copy_src.pNext);
+
+ return *this;
+}
+
+safe_VkComputePipelineIndirectBufferInfoNV::~safe_VkComputePipelineIndirectBufferInfoNV()
+{
+ if (pNext)
+ FreePnextChain(pNext);
+}
+
+void safe_VkComputePipelineIndirectBufferInfoNV::initialize(const VkComputePipelineIndirectBufferInfoNV* in_struct, [[maybe_unused]] PNextCopyState* copy_state)
+{
+ if (pNext)
+ FreePnextChain(pNext);
+ sType = in_struct->sType;
+ deviceAddress = in_struct->deviceAddress;
+ size = in_struct->size;
+ pipelineDeviceAddressCaptureReplay = in_struct->pipelineDeviceAddressCaptureReplay;
+ pNext = SafePnextCopy(in_struct->pNext, copy_state);
+}
+
+void safe_VkComputePipelineIndirectBufferInfoNV::initialize(const safe_VkComputePipelineIndirectBufferInfoNV* copy_src, [[maybe_unused]] PNextCopyState* copy_state)
+{
+ sType = copy_src->sType;
+ deviceAddress = copy_src->deviceAddress;
+ size = copy_src->size;
+ pipelineDeviceAddressCaptureReplay = copy_src->pipelineDeviceAddressCaptureReplay;
+ pNext = SafePnextCopy(copy_src->pNext);
+}
+
+safe_VkPipelineIndirectDeviceAddressInfoNV::safe_VkPipelineIndirectDeviceAddressInfoNV(const VkPipelineIndirectDeviceAddressInfoNV* in_struct, [[maybe_unused]] PNextCopyState* copy_state) :
+ sType(in_struct->sType),
+ pipelineBindPoint(in_struct->pipelineBindPoint),
+ pipeline(in_struct->pipeline)
+{
+ pNext = SafePnextCopy(in_struct->pNext, copy_state);
+}
+
+safe_VkPipelineIndirectDeviceAddressInfoNV::safe_VkPipelineIndirectDeviceAddressInfoNV() :
+ sType(VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV),
+ pNext(nullptr),
+ pipelineBindPoint(),
+ pipeline()
+{}
+
+safe_VkPipelineIndirectDeviceAddressInfoNV::safe_VkPipelineIndirectDeviceAddressInfoNV(const safe_VkPipelineIndirectDeviceAddressInfoNV& copy_src)
+{
+ sType = copy_src.sType;
+ pipelineBindPoint = copy_src.pipelineBindPoint;
+ pipeline = copy_src.pipeline;
+ pNext = SafePnextCopy(copy_src.pNext);
+}
+
+safe_VkPipelineIndirectDeviceAddressInfoNV& safe_VkPipelineIndirectDeviceAddressInfoNV::operator=(const safe_VkPipelineIndirectDeviceAddressInfoNV& copy_src)
+{
+ if (©_src == this) return *this;
+
+ if (pNext)
+ FreePnextChain(pNext);
+
+ sType = copy_src.sType;
+ pipelineBindPoint = copy_src.pipelineBindPoint;
+ pipeline = copy_src.pipeline;
+ pNext = SafePnextCopy(copy_src.pNext);
+
+ return *this;
+}
+
+safe_VkPipelineIndirectDeviceAddressInfoNV::~safe_VkPipelineIndirectDeviceAddressInfoNV()
+{
+ if (pNext)
+ FreePnextChain(pNext);
+}
+
+void safe_VkPipelineIndirectDeviceAddressInfoNV::initialize(const VkPipelineIndirectDeviceAddressInfoNV* in_struct, [[maybe_unused]] PNextCopyState* copy_state)
+{
+ if (pNext)
+ FreePnextChain(pNext);
+ sType = in_struct->sType;
+ pipelineBindPoint = in_struct->pipelineBindPoint;
+ pipeline = in_struct->pipeline;
+ pNext = SafePnextCopy(in_struct->pNext, copy_state);
+}
+
+void safe_VkPipelineIndirectDeviceAddressInfoNV::initialize(const safe_VkPipelineIndirectDeviceAddressInfoNV* copy_src, [[maybe_unused]] PNextCopyState* copy_state)
+{
+ sType = copy_src->sType;
+ pipelineBindPoint = copy_src->pipelineBindPoint;
+ pipeline = copy_src->pipeline;
+ pNext = SafePnextCopy(copy_src->pNext);
+}
+
safe_VkPhysicalDeviceLinearColorAttachmentFeaturesNV::safe_VkPhysicalDeviceLinearColorAttachmentFeaturesNV(const VkPhysicalDeviceLinearColorAttachmentFeaturesNV* in_struct, [[maybe_unused]] PNextCopyState* copy_state) :
sType(in_struct->sType),
linearColorAttachment(in_struct->linearColorAttachment)
diff --git a/layers/vulkan/generated/vk_typemap_helper.h b/layers/vulkan/generated/vk_typemap_helper.h
index 78b237c5282..ecc05dc29b1 100644
--- a/layers/vulkan/generated/vk_typemap_helper.h
+++ b/layers/vulkan/generated/vk_typemap_helper.h
@@ -5014,6 +5014,114 @@ template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMI
typedef VkPhysicalDeviceExtendedDynamicStateFeaturesEXT Type;
};
+// Map type VkPhysicalDeviceHostImageCopyFeaturesEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT
+template <> struct LvlTypeMap<VkPhysicalDeviceHostImageCopyFeaturesEXT> {
+ static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT;
+};
+
+template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT> {
+ typedef VkPhysicalDeviceHostImageCopyFeaturesEXT Type;
+};
+
+// Map type VkPhysicalDeviceHostImageCopyPropertiesEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT
+template <> struct LvlTypeMap<VkPhysicalDeviceHostImageCopyPropertiesEXT> {
+ static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT;
+};
+
+template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT> {
+ typedef VkPhysicalDeviceHostImageCopyPropertiesEXT Type;
+};
+
+// Map type VkMemoryToImageCopyEXT to id VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT
+template <> struct LvlTypeMap<VkMemoryToImageCopyEXT> {
+ static const VkStructureType kSType = VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT;
+};
+
+template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT> {
+ typedef VkMemoryToImageCopyEXT Type;
+};
+
+// Map type VkImageToMemoryCopyEXT to id VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT
+template <> struct LvlTypeMap<VkImageToMemoryCopyEXT> {
+ static const VkStructureType kSType = VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT;
+};
+
+template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT> {
+ typedef VkImageToMemoryCopyEXT Type;
+};
+
+// Map type VkCopyMemoryToImageInfoEXT to id VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT
+template <> struct LvlTypeMap<VkCopyMemoryToImageInfoEXT> {
+ static const VkStructureType kSType = VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT;
+};
+
+template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT> {
+ typedef VkCopyMemoryToImageInfoEXT Type;
+};
+
+// Map type VkCopyImageToMemoryInfoEXT to id VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT
+template <> struct LvlTypeMap<VkCopyImageToMemoryInfoEXT> {
+ static const VkStructureType kSType = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT;
+};
+
+template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT> {
+ typedef VkCopyImageToMemoryInfoEXT Type;
+};
+
+// Map type VkCopyImageToImageInfoEXT to id VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT
+template <> struct LvlTypeMap<VkCopyImageToImageInfoEXT> {
+ static const VkStructureType kSType = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT;
+};
+
+template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT> {
+ typedef VkCopyImageToImageInfoEXT Type;
+};
+
+// Map type VkHostImageLayoutTransitionInfoEXT to id VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT
+template <> struct LvlTypeMap<VkHostImageLayoutTransitionInfoEXT> {
+ static const VkStructureType kSType = VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT;
+};
+
+template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT> {
+ typedef VkHostImageLayoutTransitionInfoEXT Type;
+};
+
+// Map type VkSubresourceHostMemcpySizeEXT to id VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT
+template <> struct LvlTypeMap<VkSubresourceHostMemcpySizeEXT> {
+ static const VkStructureType kSType = VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT;
+};
+
+template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT> {
+ typedef VkSubresourceHostMemcpySizeEXT Type;
+};
+
+// Map type VkHostImageCopyDevicePerformanceQueryEXT to id VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT
+template <> struct LvlTypeMap<VkHostImageCopyDevicePerformanceQueryEXT> {
+ static const VkStructureType kSType = VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT;
+};
+
+template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT> {
+ typedef VkHostImageCopyDevicePerformanceQueryEXT Type;
+};
+
+// Map type VkSubresourceLayout2EXT to id VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT
+template <> struct LvlTypeMap<VkSubresourceLayout2EXT> {
+ static const VkStructureType kSType = VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT;
+};
+
+template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT> {
+ typedef VkSubresourceLayout2EXT Type;
+};
+
+// Map type VkImageSubresource2EXT to id VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT
+template <> struct LvlTypeMap<VkImageSubresource2EXT> {
+ static const VkStructureType kSType = VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT;
+};
+
+template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT> {
+ typedef VkImageSubresource2EXT Type;
+};
+
// Map type VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT
template <> struct LvlTypeMap<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT> {
static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT;
@@ -5755,24 +5863,6 @@ template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT>
typedef VkImageCompressionControlEXT Type;
};
-// Map type VkSubresourceLayout2EXT to id VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT
-template <> struct LvlTypeMap<VkSubresourceLayout2EXT> {
- static const VkStructureType kSType = VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT;
-};
-
-template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT> {
- typedef VkSubresourceLayout2EXT Type;
-};
-
-// Map type VkImageSubresource2EXT to id VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT
-template <> struct LvlTypeMap<VkImageSubresource2EXT> {
- static const VkStructureType kSType = VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT;
-};
-
-template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT> {
- typedef VkImageSubresource2EXT Type;
-};
-
// Map type VkImageCompressionPropertiesEXT to id VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT
template <> struct LvlTypeMap<VkImageCompressionPropertiesEXT> {
static const VkStructureType kSType = VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT;
@@ -6612,6 +6702,33 @@ template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRE
typedef VkPhysicalDeviceMemoryDecompressionPropertiesNV Type;
};
+// Map type VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV
+template <> struct LvlTypeMap<VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV> {
+ static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV;
+};
+
+template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV> {
+ typedef VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV Type;
+};
+
+// Map type VkComputePipelineIndirectBufferInfoNV to id VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV
+template <> struct LvlTypeMap<VkComputePipelineIndirectBufferInfoNV> {
+ static const VkStructureType kSType = VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV;
+};
+
+template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV> {
+ typedef VkComputePipelineIndirectBufferInfoNV Type;
+};
+
+// Map type VkPipelineIndirectDeviceAddressInfoNV to id VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV
+template <> struct LvlTypeMap<VkPipelineIndirectDeviceAddressInfoNV> {
+ static const VkStructureType kSType = VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV;
+};
+
+template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV> {
+ typedef VkPipelineIndirectDeviceAddressInfoNV Type;
+};
+
// Map type VkPhysicalDeviceLinearColorAttachmentFeaturesNV to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV
template <> struct LvlTypeMap<VkPhysicalDeviceLinearColorAttachmentFeaturesNV> {
static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV;
diff --git a/layers/vulkan/generated/vk_validation_error_messages.h b/layers/vulkan/generated/vk_validation_error_messages.h
index 4d36d72033a..c0509f1fe0e 100644
--- a/layers/vulkan/generated/vk_validation_error_messages.h
+++ b/layers/vulkan/generated/vk_validation_error_messages.h
@@ -1,5 +1,5 @@
/* THIS FILE IS GENERATED - DO NOT EDIT (scripts/vk_validation_stats.py) */
-/* Vulkan specification version: 1.3.257 */
+/* Vulkan specification version: 1.3.258 */
/*
* Vulkan
*
@@ -1072,6 +1072,10 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkBindIndexBufferIndirectCommandNV-None-02948", "Each element of the buffer from which the address was acquired and that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object", "1.3-extensions"},
{"VUID-VkBindIndexBufferIndirectCommandNV-bufferAddress-02947", "The bufferAddress must be aligned to the indexType used", "1.3-extensions"},
{"VUID-VkBindIndexBufferIndirectCommandNV-indexType-parameter", "indexType must be a valid VkIndexType value", "1.3-extensions"},
+ {"VUID-VkBindPipelineIndirectCommandNV-None-09092", "The referenced pipeline must have been created with VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV", "1.3-extensions"},
+ {"VUID-VkBindPipelineIndirectCommandNV-None-09093", "The referenced pipeline must have been updated with vkCmdUpdatePipelineIndirectBuffer", "1.3-extensions"},
+ {"VUID-VkBindPipelineIndirectCommandNV-None-09094", "The referenced pipeline's address must have been queried with vkGetPipelineIndirectDeviceAddressNV", "1.3-extensions"},
+ {"VUID-VkBindPipelineIndirectCommandNV-deviceGeneratedComputePipelines-09091", "The VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputePipelines feature must be enabled", "1.3-extensions"},
{"VUID-VkBindShaderGroupIndirectCommandNV-None-02944", "The current bound graphics pipeline, as well as the pipelines it may reference, must have been created with VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV", "1.3-extensions"},
{"VUID-VkBindShaderGroupIndirectCommandNV-index-02945", "The index must be within range of the accessible shader groups of the current bound graphics pipeline. See vkCmdBindPipelineShaderGroupNV for further details", "1.3-extensions"},
{"VUID-VkBindSparseInfo-commonparent", "Both of the elements of pSignalSemaphores, and the elements of pWaitSemaphores that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", "1.3-extensions"},
@@ -1224,16 +1228,16 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkBufferDeviceAddressInfo-buffer-parameter", "buffer must be a valid VkBuffer handle", "1.3-extensions"},
{"VUID-VkBufferDeviceAddressInfo-pNext-pNext", "pNext must be NULL", "1.3-extensions"},
{"VUID-VkBufferDeviceAddressInfo-sType-sType", "sType must be VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO", "1.3-extensions"},
- {"VUID-VkBufferImageCopy-aspectMask-00212", "The aspectMask member of imageSubresource must only have a single bit set", "1.3-extensions"},
- {"VUID-VkBufferImageCopy-bufferImageHeight-00196", "bufferImageHeight must be 0, or greater than or equal to the height member of imageExtent", "1.3-extensions"},
- {"VUID-VkBufferImageCopy-bufferRowLength-00195", "bufferRowLength must be 0, or greater than or equal to the width member of imageExtent", "1.3-extensions"},
+ {"VUID-VkBufferImageCopy-aspectMask-09103", "The aspectMask member of imageSubresource must only have a single bit set", "1.3-extensions"},
+ {"VUID-VkBufferImageCopy-bufferImageHeight-09102", "pname:bufferImageHeight must be 0, or greater than or equal to the height member of imageExtent", "1.3-extensions"},
+ {"VUID-VkBufferImageCopy-bufferRowLength-09101", "pname:bufferRowLength must be 0, or greater than or equal to the width member of imageExtent", "1.3-extensions"},
{"VUID-VkBufferImageCopy-imageExtent-06659", "imageExtent.width must not be 0", "1.3-extensions"},
{"VUID-VkBufferImageCopy-imageExtent-06660", "imageExtent.height must not be 0", "1.3-extensions"},
{"VUID-VkBufferImageCopy-imageExtent-06661", "imageExtent.depth must not be 0", "1.3-extensions"},
{"VUID-VkBufferImageCopy-imageSubresource-parameter", "imageSubresource must be a valid VkImageSubresourceLayers structure", "1.3-extensions"},
- {"VUID-VkBufferImageCopy2-aspectMask-00212", "The aspectMask member of imageSubresource must only have a single bit set", "1.3-extensions"},
- {"VUID-VkBufferImageCopy2-bufferImageHeight-00196", "bufferImageHeight must be 0, or greater than or equal to the height member of imageExtent", "1.3-extensions"},
- {"VUID-VkBufferImageCopy2-bufferRowLength-00195", "bufferRowLength must be 0, or greater than or equal to the width member of imageExtent", "1.3-extensions"},
+ {"VUID-VkBufferImageCopy2-aspectMask-09103", "The aspectMask member of imageSubresource must only have a single bit set", "1.3-extensions"},
+ {"VUID-VkBufferImageCopy2-bufferImageHeight-09102", "pname:bufferImageHeight must be 0, or greater than or equal to the height member of imageExtent", "1.3-extensions"},
+ {"VUID-VkBufferImageCopy2-bufferRowLength-09101", "pname:bufferRowLength must be 0, or greater than or equal to the width member of imageExtent", "1.3-extensions"},
{"VUID-VkBufferImageCopy2-imageExtent-06659", "imageExtent.width must not be 0", "1.3-extensions"},
{"VUID-VkBufferImageCopy2-imageExtent-06660", "imageExtent.height must not be 0", "1.3-extensions"},
{"VUID-VkBufferImageCopy2-imageExtent-06661", "imageExtent.depth must not be 0", "1.3-extensions"},
@@ -1241,21 +1245,29 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkBufferImageCopy2-pNext-pNext", "pNext must be NULL or a pointer to a valid instance of VkCopyCommandTransformInfoQCOM", "1.3-extensions"},
{"VUID-VkBufferImageCopy2-sType-sType", "sType must be VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2", "1.3-extensions"},
{"VUID-VkBufferImageCopy2-sType-unique", "The sType value of each struct in the pNext chain must be unique", "1.3-extensions"},
+ {"VUID-VkBufferMemoryBarrier-None-09049", "If the synchronization2 feature is not enabled, and buffer was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, at least one of srcQueueFamilyIndex and dstQueueFamilyIndex must be VK_QUEUE_FAMILY_IGNORED", "1.3-extensions"},
+ {"VUID-VkBufferMemoryBarrier-None-09050", "If the synchronization2 feature is not enabled, and buffer was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, srcQueueFamilyIndex must be VK_QUEUE_FAMILY_IGNORED or VK_QUEUE_FAMILY_EXTERNAL", "1.3-extensions"},
+ {"VUID-VkBufferMemoryBarrier-None-09051", "If the synchronization2 feature is not enabled, and buffer was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, dstQueueFamilyIndex must be VK_QUEUE_FAMILY_IGNORED or VK_QUEUE_FAMILY_EXTERNAL", "1.3-extensions"},
+ {"VUID-VkBufferMemoryBarrier-None-09097", "If the VK_KHR_external_memory extension is not enabled, and the value of VkApplicationInfo::apiVersion used to create the VkInstance is not greater than or equal to Version 1.1, srcQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL", "1.3-extensions"},
+ {"VUID-VkBufferMemoryBarrier-None-09098", "If the VK_KHR_external_memory extension is not enabled, and the value of VkApplicationInfo::apiVersion used to create the VkInstance is not greater than or equal to Version 1.1, dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL", "1.3-extensions"},
{"VUID-VkBufferMemoryBarrier-buffer-01931", "If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", "1.3-extensions"},
- {"VUID-VkBufferMemoryBarrier-buffer-04088", "If buffer was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, and one of srcQueueFamilyIndex and dstQueueFamilyIndex is one of the special queue family values reserved for external memory transfers, the other must be VK_QUEUE_FAMILY_IGNORED", "1.3-extensions"},
- {"VUID-VkBufferMemoryBarrier-buffer-04089", "If buffer was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex and dstQueueFamilyIndex must both be valid queue families, or one of the special queue family values reserved for external memory transfers, as described in Queue Family Ownership Transfer", "1.3-extensions"},
+ {"VUID-VkBufferMemoryBarrier-buffer-09095", "If buffer was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex must be VK_QUEUE_FAMILY_EXTERNAL, VK_QUEUE_FAMILY_FOREIGN_EXT, or a valid queue family", "1.3-extensions"},
+ {"VUID-VkBufferMemoryBarrier-buffer-09096", "If buffer was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, dstQueueFamilyIndex must be VK_QUEUE_FAMILY_EXTERNAL, VK_QUEUE_FAMILY_FOREIGN_EXT, or a valid queue family", "1.3-extensions"},
{"VUID-VkBufferMemoryBarrier-buffer-parameter", "buffer must be a valid VkBuffer handle", "1.3-extensions"},
+ {"VUID-VkBufferMemoryBarrier-dstQueueFamilyIndex-09100", "If the VK_EXT_queue_family_foreign extension is not enabled dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_FOREIGN_EXT", "1.3-extensions"},
{"VUID-VkBufferMemoryBarrier-offset-01187", "offset must be less than the size of buffer", "1.3-extensions"},
{"VUID-VkBufferMemoryBarrier-pNext-pNext", "pNext must be NULL or a pointer to a valid instance of VkExternalMemoryAcquireUnmodifiedEXT", "1.3-extensions"},
{"VUID-VkBufferMemoryBarrier-sType-sType", "sType must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER", "1.3-extensions"},
{"VUID-VkBufferMemoryBarrier-sType-unique", "The sType value of each struct in the pNext chain must be unique", "1.3-extensions"},
{"VUID-VkBufferMemoryBarrier-size-01188", "If size is not equal to VK_WHOLE_SIZE, size must be greater than 0", "1.3-extensions"},
{"VUID-VkBufferMemoryBarrier-size-01189", "If size is not equal to VK_WHOLE_SIZE, size must be less than or equal to than the size of buffer minus offset", "1.3-extensions"},
- {"VUID-VkBufferMemoryBarrier-srcQueueFamilyIndex-04087", "If srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, at least one must not be a special queue family reserved for external memory ownership transfers, as described in Queue Family Ownership Transfer", "1.3-extensions"},
- {"VUID-VkBufferMemoryBarrier-synchronization2-03853", "If the synchronization2 feature is not enabled, and buffer was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, at least one of srcQueueFamilyIndex and dstQueueFamilyIndex must be VK_QUEUE_FAMILY_IGNORED", "1.3-extensions"},
+ {"VUID-VkBufferMemoryBarrier-srcQueueFamilyIndex-04087", "If srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, at least one of srcQueueFamilyIndex or dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL or VK_QUEUE_FAMILY_FOREIGN_EXT", "1.3-extensions"},
+ {"VUID-VkBufferMemoryBarrier-srcQueueFamilyIndex-09099", "If the VK_EXT_queue_family_foreign extension is not enabled srcQueueFamilyIndex must not be VK_QUEUE_FAMILY_FOREIGN_EXT", "1.3-extensions"},
+ {"VUID-VkBufferMemoryBarrier2-None-09097", "If the VK_KHR_external_memory extension is not enabled, and the value of VkApplicationInfo::apiVersion used to create the VkInstance is not greater than or equal to Version 1.1, srcQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL", "1.3-extensions"},
+ {"VUID-VkBufferMemoryBarrier2-None-09098", "If the VK_KHR_external_memory extension is not enabled, and the value of VkApplicationInfo::apiVersion used to create the VkInstance is not greater than or equal to Version 1.1, dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL", "1.3-extensions"},
{"VUID-VkBufferMemoryBarrier2-buffer-01931", "If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", "1.3-extensions"},
- {"VUID-VkBufferMemoryBarrier2-buffer-04088", "If buffer was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, and one of srcQueueFamilyIndex and dstQueueFamilyIndex is one of the special queue family values reserved for external memory transfers, the other must be VK_QUEUE_FAMILY_IGNORED", "1.3-extensions"},
- {"VUID-VkBufferMemoryBarrier2-buffer-04089", "If buffer was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex and dstQueueFamilyIndex must both be valid queue families, or one of the special queue family values reserved for external memory transfers, as described in Queue Family Ownership Transfer", "1.3-extensions"},
+ {"VUID-VkBufferMemoryBarrier2-buffer-09095", "If buffer was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex must be VK_QUEUE_FAMILY_EXTERNAL, VK_QUEUE_FAMILY_FOREIGN_EXT, or a valid queue family", "1.3-extensions"},
+ {"VUID-VkBufferMemoryBarrier2-buffer-09096", "If buffer was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, dstQueueFamilyIndex must be VK_QUEUE_FAMILY_EXTERNAL, VK_QUEUE_FAMILY_FOREIGN_EXT, or a valid queue family", "1.3-extensions"},
{"VUID-VkBufferMemoryBarrier2-buffer-parameter", "buffer must be a valid VkBuffer handle", "1.3-extensions"},
{"VUID-VkBufferMemoryBarrier2-dstAccessMask-03900", "If pname:dstAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "1.3-extensions"},
{"VUID-VkBufferMemoryBarrier2-dstAccessMask-03901", "If pname:dstAccessMask includes VK_ACCESS_2_INDEX_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "1.3-extensions"},
@@ -1299,6 +1311,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkBufferMemoryBarrier2-dstAccessMask-07458", "If pname:dstAccessMask includes VK_ACCESS_2_MICROMAP_READ_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR", "1.3-extensions"},
{"VUID-VkBufferMemoryBarrier2-dstAccessMask-08118", "If pname:dstAccessMask includes VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of VK_PIPELINE_STAGE_*_SHADER_BIT stages", "1.3-extensions"},
{"VUID-VkBufferMemoryBarrier2-dstAccessMask-parameter", "dstAccessMask must be a valid combination of VkAccessFlagBits2 values", "1.3-extensions"},
+ {"VUID-VkBufferMemoryBarrier2-dstQueueFamilyIndex-09100", "If the VK_EXT_queue_family_foreign extension is not enabled dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_FOREIGN_EXT", "1.3-extensions"},
{"VUID-VkBufferMemoryBarrier2-dstStageMask-03929", "If the geometryShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT", "1.3-extensions"},
{"VUID-VkBufferMemoryBarrier2-dstStageMask-03930", "If the tessellationShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT", "1.3-extensions"},
{"VUID-VkBufferMemoryBarrier2-dstStageMask-03931", "If the conditionalRendering feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT", "1.3-extensions"},
@@ -1359,7 +1372,8 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkBufferMemoryBarrier2-srcAccessMask-07458", "If pname:srcAccessMask includes VK_ACCESS_2_MICROMAP_READ_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR", "1.3-extensions"},
{"VUID-VkBufferMemoryBarrier2-srcAccessMask-08118", "If pname:srcAccessMask includes VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of VK_PIPELINE_STAGE_*_SHADER_BIT stages", "1.3-extensions"},
{"VUID-VkBufferMemoryBarrier2-srcAccessMask-parameter", "srcAccessMask must be a valid combination of VkAccessFlagBits2 values", "1.3-extensions"},
- {"VUID-VkBufferMemoryBarrier2-srcQueueFamilyIndex-04087", "If srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, at least one must not be a special queue family reserved for external memory ownership transfers, as described in Queue Family Ownership Transfer", "1.3-extensions"},
+ {"VUID-VkBufferMemoryBarrier2-srcQueueFamilyIndex-04087", "If srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, at least one of srcQueueFamilyIndex or dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL or VK_QUEUE_FAMILY_FOREIGN_EXT", "1.3-extensions"},
+ {"VUID-VkBufferMemoryBarrier2-srcQueueFamilyIndex-09099", "If the VK_EXT_queue_family_foreign extension is not enabled srcQueueFamilyIndex must not be VK_QUEUE_FAMILY_FOREIGN_EXT", "1.3-extensions"},
{"VUID-VkBufferMemoryBarrier2-srcStageMask-03851", "If either srcStageMask or dstStageMask includes VK_PIPELINE_STAGE_2_HOST_BIT, srcQueueFamilyIndex and dstQueueFamilyIndex must be equal", "1.3-extensions"},
{"VUID-VkBufferMemoryBarrier2-srcStageMask-03929", "If the geometryShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT", "1.3-extensions"},
{"VUID-VkBufferMemoryBarrier2-srcStageMask-03930", "If the tessellationShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT", "1.3-extensions"},
@@ -1503,7 +1517,6 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkComponentMapping-g-parameter", "g must be a valid VkComponentSwizzle value", "1.3-extensions"},
{"VUID-VkComponentMapping-r-parameter", "r must be a valid VkComponentSwizzle value", "1.3-extensions"},
{"VUID-VkComputePipelineCreateInfo-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", "1.3-extensions"},
- {"VUID-VkComputePipelineCreateInfo-flags-02874", "flags must not include VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV", "1.3-extensions"},
{"VUID-VkComputePipelineCreateInfo-flags-03364", "flags must not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR", "1.3-extensions"},
{"VUID-VkComputePipelineCreateInfo-flags-03365", "flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR", "1.3-extensions"},
{"VUID-VkComputePipelineCreateInfo-flags-03366", "flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR", "1.3-extensions"},
@@ -1518,6 +1531,8 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkComputePipelineCreateInfo-flags-07985", "If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is VK_NULL_HANDLE, basePipelineIndex must be a valid index into the calling command's pCreateInfos parameter", "1.3-extensions"},
{"VUID-VkComputePipelineCreateInfo-flags-07986", "If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, basePipelineIndex must be -1 or basePipelineHandle must be VK_NULL_HANDLE", "1.3-extensions"},
{"VUID-VkComputePipelineCreateInfo-flags-07996", "flags must not include VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV", "1.3-extensions"},
+ {"VUID-VkComputePipelineCreateInfo-flags-09007", "If flags includes VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV, then the VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputePipelines feature must be enabled", "1.3-extensions"},
+ {"VUID-VkComputePipelineCreateInfo-flags-09008", "If flags includes VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV, then the pNext chain must include a pointer to a valid instance of VkComputePipelineIndirectBufferInfoNV specifying the address where the pipeline's metadata will be saved", "1.3-extensions"},
{"VUID-VkComputePipelineCreateInfo-flags-parameter", "flags must be a valid combination of VkPipelineCreateFlagBits values", "1.3-extensions"},
{"VUID-VkComputePipelineCreateInfo-layout-01687", "The number of resources in layout accessible to the compute shader stage must be less than or equal to VkPhysicalDeviceLimits::maxPerStageResources", "1.3-extensions"},
{"VUID-VkComputePipelineCreateInfo-layout-07987", "If a push constant block is declared in a shader, a push constant range in layout must match both the shader stage and range", "1.3-extensions"},
@@ -1533,6 +1548,17 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkComputePipelineCreateInfo-stage-00701", "The stage member of stage must be VK_SHADER_STAGE_COMPUTE_BIT", "1.3-extensions"},
{"VUID-VkComputePipelineCreateInfo-stage-00702", "The shader code for the entry point identified by stage and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter", "1.3-extensions"},
{"VUID-VkComputePipelineCreateInfo-stage-parameter", "stage must be a valid VkPipelineShaderStageCreateInfo structure", "1.3-extensions"},
+ {"VUID-VkComputePipelineIndirectBufferInfoNV-deviceAddress-09011", "deviceAddress must be aligned to the VkMemoryRequirements2::alignment, as returned by vkGetPipelineIndirectMemoryRequirementsNV", "1.3-extensions"},
+ {"VUID-VkComputePipelineIndirectBufferInfoNV-deviceAddress-09012", "deviceAddress must have been allocated from a buffer that was created with usage VK_BUFFER_USAGE_TRANSFER_DST_BIT and VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT", "1.3-extensions"},
+ {"VUID-VkComputePipelineIndirectBufferInfoNV-deviceGeneratedComputePipelines-09009", "The VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputePipelines feature must be enabled", "1.3-extensions"},
+ {"VUID-VkComputePipelineIndirectBufferInfoNV-flags-09010", "The pipeline creation flags in VkComputePipelineCreateInfo::flags must include VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV", "1.3-extensions"},
+ {"VUID-VkComputePipelineIndirectBufferInfoNV-pNext-pNext", "pNext must be NULL", "1.3-extensions"},
+ {"VUID-VkComputePipelineIndirectBufferInfoNV-pipelineDeviceAddressCaptureReplay-09014", "If pipelineDeviceAddressCaptureReplay is non-zero then the VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputeCaptureReplay feature must be enabled", "1.3-extensions"},
+ {"VUID-VkComputePipelineIndirectBufferInfoNV-pipelineDeviceAddressCaptureReplay-09015", "If pipelineDeviceAddressCaptureReplay is non-zero then that address must have been allocated with flag VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT set", "1.3-extensions"},
+ {"VUID-VkComputePipelineIndirectBufferInfoNV-pipelineDeviceAddressCaptureReplay-09016", "If pipelineDeviceAddressCaptureReplay is non-zero, the pipeline must have been recreated for replay", "1.3-extensions"},
+ {"VUID-VkComputePipelineIndirectBufferInfoNV-pipelineDeviceAddressCaptureReplay-09017", "pipelineDeviceAddressCaptureReplay must satisfy the alignment and size requirements similar to deviceAddress", "1.3-extensions"},
+ {"VUID-VkComputePipelineIndirectBufferInfoNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV", "1.3-extensions"},
+ {"VUID-VkComputePipelineIndirectBufferInfoNV-size-09013", "size must be greater than or equal to the VkMemoryRequirements2::size, as returned by vkGetPipelineIndirectMemoryRequirementsNV", "1.3-extensions"},
{"VUID-VkConditionalRenderingBeginInfoEXT-buffer-01981", "If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", "1.3-extensions"},
{"VUID-VkConditionalRenderingBeginInfoEXT-buffer-01982", "buffer must have been created with the VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT bit set", "1.3-extensions"},
{"VUID-VkConditionalRenderingBeginInfoEXT-buffer-parameter", "buffer must be a valid VkBuffer handle", "1.3-extensions"},
@@ -1591,9 +1617,9 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkCopyBufferInfo2-srcBuffer-00119", "If srcBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", "1.3-extensions"},
{"VUID-VkCopyBufferInfo2-srcBuffer-parameter", "srcBuffer must be a valid VkBuffer handle", "1.3-extensions"},
{"VUID-VkCopyBufferInfo2-srcOffset-00113", "The srcOffset member of each element of pRegions must be less than the size of srcBuffer", "1.3-extensions"},
- {"VUID-VkCopyBufferToImageInfo2-aspectMask-00211", "For each element of pRegions, imageSubresource.aspectMask must specify aspects present in pname:dstImage", "1.3-extensions"},
- {"VUID-VkCopyBufferToImageInfo2-bufferImageHeight-00204", "For each element of pRegions, bufferImageHeight must be a multiple of the texel block extent height of the VkFormat of pname:dstImage", "1.3-extensions"},
- {"VUID-VkCopyBufferToImageInfo2-bufferRowLength-00203", "For each element of pRegions, bufferRowLength must be a multiple of the texel block extent width of the VkFormat of pname:dstImage", "1.3-extensions"},
+ {"VUID-VkCopyBufferToImageInfo2-bufferImageHeight-09107", "For each element of pRegions, pname:bufferImageHeight must be a multiple of the texel block extent height of the VkFormat of pname:dstImage", "1.3-extensions"},
+ {"VUID-VkCopyBufferToImageInfo2-bufferRowLength-09106", "For each element of pRegions, pname:bufferRowLength must be a multiple of the texel block extent width of the VkFormat of pname:dstImage", "1.3-extensions"},
+ {"VUID-VkCopyBufferToImageInfo2-bufferRowLength-09108", "For each element of pRegions, pname:bufferRowLength divided by the texel block extent width and then multiplied by the texel block size of pname:dstImage must be less than or equal to 231-1", "1.3-extensions"},
{"VUID-VkCopyBufferToImageInfo2-commonparent", "Both of dstImage, and srcBuffer must have been created, allocated, or retrieved from the same VkDevice", "1.3-extensions"},
{"VUID-VkCopyBufferToImageInfo2-dstImage-00177", "dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag", "1.3-extensions"},
{"VUID-VkCopyBufferToImageInfo2-dstImage-01997", "The format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT", "1.3-extensions"},
@@ -1603,31 +1629,31 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkCopyBufferToImageInfo2-dstImage-07975", "If pname:dstImage does not have either a depth/stencil or a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the texel block size", "1.3-extensions"},
{"VUID-VkCopyBufferToImageInfo2-dstImage-07976", "If pname:dstImage has a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the element size of the compatible format for the format and the aspectMask of the imageSubresource as defined in Compatible formats of planes of multi-planar formats", "1.3-extensions"},
{"VUID-VkCopyBufferToImageInfo2-dstImage-07978", "If pname:dstImage has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4", "1.3-extensions"},
- {"VUID-VkCopyBufferToImageInfo2-dstImage-07979", "If pname:dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, imageOffset.y must be 0 and imageExtent.height must be 1", "1.3-extensions"},
- {"VUID-VkCopyBufferToImageInfo2-dstImage-07980", "If pname:dstImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, imageOffset.z must be 0 and imageExtent.depth must be 1", "1.3-extensions"},
- {"VUID-VkCopyBufferToImageInfo2-dstImage-07981", "If pname:dstImage has a VkFormat with two planes then for each element of pRegions, imageSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT", "1.3-extensions"},
- {"VUID-VkCopyBufferToImageInfo2-dstImage-07982", "If pname:dstImage has a VkFormat with three planes then for each element of pRegions, imageSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT", "1.3-extensions"},
- {"VUID-VkCopyBufferToImageInfo2-dstImage-07983", "If pname:dstImage is of type VK_IMAGE_TYPE_3D, for each element of pRegions, imageSubresource.baseArrayLayer must be 0 and imageSubresource.layerCount must be 1", "1.3-extensions"},
+ {"VUID-VkCopyBufferToImageInfo2-dstImage-07979", "If pname:dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, pname:imageOffset.y must be 0 and pname:imageExtent.height must be 1", "1.3-extensions"},
+ {"VUID-VkCopyBufferToImageInfo2-dstImage-07980", "If pname:dstImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, pname:imageOffset.z must be 0 and pname:imageExtent.depth must be 1", "1.3-extensions"},
+ {"VUID-VkCopyBufferToImageInfo2-dstImage-07981", "If pname:dstImage has a VkFormat with two planes then for each element of pRegions, pname:imageSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT", "1.3-extensions"},
+ {"VUID-VkCopyBufferToImageInfo2-dstImage-07982", "If pname:dstImage has a VkFormat with three planes then for each element of pRegions, pname:imageSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT", "1.3-extensions"},
+ {"VUID-VkCopyBufferToImageInfo2-dstImage-07983", "If pname:dstImage is of type VK_IMAGE_TYPE_3D, for each element of pRegions, pname:imageSubresource.baseArrayLayer must be 0 and pname:imageSubresource.layerCount must be 1", "1.3-extensions"},
{"VUID-VkCopyBufferToImageInfo2-dstImage-parameter", "dstImage must be a valid VkImage handle", "1.3-extensions"},
{"VUID-VkCopyBufferToImageInfo2-dstImageLayout-00180", "dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice", "1.3-extensions"},
{"VUID-VkCopyBufferToImageInfo2-dstImageLayout-01396", "dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR", "1.3-extensions"},
{"VUID-VkCopyBufferToImageInfo2-dstImageLayout-parameter", "dstImageLayout must be a valid VkImageLayout value", "1.3-extensions"},
- {"VUID-VkCopyBufferToImageInfo2-imageExtent-00207", "For each element of pRegions, if the sum of imageOffset.x and extent.width does not equal the width of the subresource specified by srcSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of pname:dstImage", "1.3-extensions"},
- {"VUID-VkCopyBufferToImageInfo2-imageExtent-00208", "For each element of pRegions, if the sum of imageOffset.y and extent.height does not equal the height of the subresource specified by srcSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of pname:dstImage", "1.3-extensions"},
- {"VUID-VkCopyBufferToImageInfo2-imageExtent-00209", "For each element of pRegions, if the sum of imageOffset.z and extent.depth does not equal the depth of the subresource specified by srcSubresource, extent.depth must be a multiple of the texel block extent depth of the VkFormat of pname:dstImage", "1.3-extensions"},
- {"VUID-VkCopyBufferToImageInfo2-imageOffset-00200", "For each element of pRegions, imageOffset.z and (imageExtent.depth + imageOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified imageSubresource of pname:dstImage", "1.3-extensions"},
+ {"VUID-VkCopyBufferToImageInfo2-imageExtent-00207", "For each element of pRegions, if the sum of pname:imageOffset.x and extent.width does not equal the width of the subresource specified by srcSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of pname:dstImage", "1.3-extensions"},
+ {"VUID-VkCopyBufferToImageInfo2-imageExtent-00208", "For each element of pRegions, if the sum of pname:imageOffset.y and extent.height does not equal the height of the subresource specified by srcSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of pname:dstImage", "1.3-extensions"},
+ {"VUID-VkCopyBufferToImageInfo2-imageExtent-00209", "For each element of pRegions, if the sum of pname:imageOffset.z and extent.depth does not equal the depth of the subresource specified by srcSubresource, extent.depth must be a multiple of the texel block extent depth of the VkFormat of pname:dstImage", "1.3-extensions"},
+ {"VUID-VkCopyBufferToImageInfo2-imageOffset-09104", "For each element of pRegions, pname:imageOffset.z and (pname:imageExtent.depth + pname:imageOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified pname:imageSubresource of pname:dstImage", "1.3-extensions"},
{"VUID-VkCopyBufferToImageInfo2-imageSubresource-07967", "The pname:imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when pname:dstImage was created", "1.3-extensions"},
{"VUID-VkCopyBufferToImageInfo2-imageSubresource-07968", "The pname:imageSubresource.baseArrayLayer + pname:imageSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when pname:dstImage was created", "1.3-extensions"},
+ {"VUID-VkCopyBufferToImageInfo2-imageSubresource-09105", "For each element of pRegions, pname:imageSubresource.aspectMask must specify aspects present in pname:dstImage", "1.3-extensions"},
{"VUID-VkCopyBufferToImageInfo2-pNext-pNext", "pNext must be NULL", "1.3-extensions"},
{"VUID-VkCopyBufferToImageInfo2-pRegions-00171", "srcBuffer must be large enough to contain all buffer locations that are accessed according to Buffer and Image Addressing, for each element of pRegions", "1.3-extensions"},
{"VUID-VkCopyBufferToImageInfo2-pRegions-00173", "The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory", "1.3-extensions"},
{"VUID-VkCopyBufferToImageInfo2-pRegions-04565", "If the image region specified by each element of pRegions does not contain VkCopyCommandTransformInfoQCOM in its pNext chain, it must be a region that is contained within the specified imageSubresource of dstImage", "1.3-extensions"},
{"VUID-VkCopyBufferToImageInfo2-pRegions-06223", "For each element of pRegions not containing VkCopyCommandTransformInfoQCOM in its pNext chain, imageOffset.x and (imageExtent.width + imageOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified imageSubresource of dstImage", "1.3-extensions"},
{"VUID-VkCopyBufferToImageInfo2-pRegions-06224", "For each element of pRegions not containing VkCopyCommandTransformInfoQCOM in its pNext chain, imageOffset.y and (imageExtent.height + imageOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified imageSubresource of dstImage", "1.3-extensions"},
- {"VUID-VkCopyBufferToImageInfo2-pRegions-07274", "For each element of pRegions, imageOffset.x must be a multiple of the texel block extent width of the VkFormat of pname:dstImage", "1.3-extensions"},
- {"VUID-VkCopyBufferToImageInfo2-pRegions-07275", "For each element of pRegions, imageOffset.y must be a multiple of the texel block extent height of the VkFormat of pname:dstImage", "1.3-extensions"},
- {"VUID-VkCopyBufferToImageInfo2-pRegions-07276", "For each element of pRegions, imageOffset.z must be a multiple of the texel block extent depth of the VkFormat of pname:dstImage", "1.3-extensions"},
- {"VUID-VkCopyBufferToImageInfo2-pRegions-07277", "For each element of pRegions, bufferRowLength divided by the texel block extent width and then multiplied by the texel block size of pname:dstImage must be less than or equal to 231-1", "1.3-extensions"},
+ {"VUID-VkCopyBufferToImageInfo2-pRegions-07274", "For each element of pRegions, pname:imageOffset.x must be a multiple of the texel block extent width of the VkFormat of pname:dstImage", "1.3-extensions"},
+ {"VUID-VkCopyBufferToImageInfo2-pRegions-07275", "For each element of pRegions, pname:imageOffset.y must be a multiple of the texel block extent height of the VkFormat of pname:dstImage", "1.3-extensions"},
+ {"VUID-VkCopyBufferToImageInfo2-pRegions-07276", "For each element of pRegions, pname:imageOffset.z must be a multiple of the texel block extent depth of the VkFormat of pname:dstImage", "1.3-extensions"},
{"VUID-VkCopyBufferToImageInfo2-pRegions-07931", "If VK_EXT_depth_range_unrestricted is not enabled, for each element of pRegions whose imageSubresource contains a depth aspect, the data in srcBuffer must be in the range [0,1]", "1.3-extensions"},
{"VUID-VkCopyBufferToImageInfo2-pRegions-parameter", "pRegions must be a valid pointer to an array of regionCount valid VkBufferImageCopy2 structures", "1.3-extensions"},
{"VUID-VkCopyBufferToImageInfo2-regionCount-arraylength", "regionCount must be greater than 0", "1.3-extensions"},
@@ -1737,29 +1763,29 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkCopyImageInfo2-srcOffset-01783", "The srcOffset 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", "1.3-extensions"},
{"VUID-VkCopyImageInfo2-srcSubresource-07967", "The pname:srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when pname:srcImage was created", "1.3-extensions"},
{"VUID-VkCopyImageInfo2-srcSubresource-07968", "The pname:srcSubresource.baseArrayLayer + pname:srcSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when pname:srcImage was created", "1.3-extensions"},
- {"VUID-VkCopyImageToBufferInfo2-aspectMask-00211", "For each element of pRegions, imageSubresource.aspectMask must specify aspects present in pname:srcImage", "1.3-extensions"},
- {"VUID-VkCopyImageToBufferInfo2-bufferImageHeight-00204", "For each element of pRegions, bufferImageHeight must be a multiple of the texel block extent height of the VkFormat of pname:srcImage", "1.3-extensions"},
- {"VUID-VkCopyImageToBufferInfo2-bufferRowLength-00203", "For each element of pRegions, bufferRowLength must be a multiple of the texel block extent width of the VkFormat of pname:srcImage", "1.3-extensions"},
+ {"VUID-VkCopyImageToBufferInfo2-bufferImageHeight-09107", "For each element of pRegions, pname:bufferImageHeight must be a multiple of the texel block extent height of the VkFormat of pname:srcImage", "1.3-extensions"},
+ {"VUID-VkCopyImageToBufferInfo2-bufferRowLength-09106", "For each element of pRegions, pname:bufferRowLength must be a multiple of the texel block extent width of the VkFormat of pname:srcImage", "1.3-extensions"},
+ {"VUID-VkCopyImageToBufferInfo2-bufferRowLength-09108", "For each element of pRegions, pname:bufferRowLength divided by the texel block extent width and then multiplied by the texel block size of pname:srcImage must be less than or equal to 231-1", "1.3-extensions"},
{"VUID-VkCopyImageToBufferInfo2-commonparent", "Both of dstBuffer, and srcImage must have been created, allocated, or retrieved from the same VkDevice", "1.3-extensions"},
{"VUID-VkCopyImageToBufferInfo2-dstBuffer-00191", "dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag", "1.3-extensions"},
{"VUID-VkCopyImageToBufferInfo2-dstBuffer-00192", "If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", "1.3-extensions"},
{"VUID-VkCopyImageToBufferInfo2-dstBuffer-parameter", "dstBuffer must be a valid VkBuffer handle", "1.3-extensions"},
- {"VUID-VkCopyImageToBufferInfo2-imageExtent-00207", "For each element of pRegions, if the sum of imageOffset.x and extent.width does not equal the width of the subresource specified by srcSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of pname:srcImage", "1.3-extensions"},
- {"VUID-VkCopyImageToBufferInfo2-imageExtent-00208", "For each element of pRegions, if the sum of imageOffset.y and extent.height does not equal the height of the subresource specified by srcSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of pname:srcImage", "1.3-extensions"},
- {"VUID-VkCopyImageToBufferInfo2-imageExtent-00209", "For each element of pRegions, if the sum of imageOffset.z and extent.depth does not equal the depth of the subresource specified by srcSubresource, extent.depth must be a multiple of the texel block extent depth of the VkFormat of pname:srcImage", "1.3-extensions"},
+ {"VUID-VkCopyImageToBufferInfo2-imageExtent-00207", "For each element of pRegions, if the sum of pname:imageOffset.x and extent.width does not equal the width of the subresource specified by srcSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of pname:srcImage", "1.3-extensions"},
+ {"VUID-VkCopyImageToBufferInfo2-imageExtent-00208", "For each element of pRegions, if the sum of pname:imageOffset.y and extent.height does not equal the height of the subresource specified by srcSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of pname:srcImage", "1.3-extensions"},
+ {"VUID-VkCopyImageToBufferInfo2-imageExtent-00209", "For each element of pRegions, if the sum of pname:imageOffset.z and extent.depth does not equal the depth of the subresource specified by srcSubresource, extent.depth must be a multiple of the texel block extent depth of the VkFormat of pname:srcImage", "1.3-extensions"},
{"VUID-VkCopyImageToBufferInfo2-imageOffset-00197", "For each element of pRegions not containing VkCopyCommandTransformInfoQCOM in its pNext chain, imageOffset.x and (imageExtent.width + imageOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified imageSubresource of srcImage", "1.3-extensions"},
{"VUID-VkCopyImageToBufferInfo2-imageOffset-00198", "For each element of pRegions not containing VkCopyCommandTransformInfoQCOM in its pNext chain, imageOffset.y and (imageExtent.height + imageOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified imageSubresource of srcImage", "1.3-extensions"},
- {"VUID-VkCopyImageToBufferInfo2-imageOffset-00200", "For each element of pRegions, imageOffset.z and (imageExtent.depth + imageOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified imageSubresource of pname:srcImage", "1.3-extensions"},
+ {"VUID-VkCopyImageToBufferInfo2-imageOffset-09104", "For each element of pRegions, pname:imageOffset.z and (pname:imageExtent.depth + pname:imageOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified pname:imageSubresource of pname:srcImage", "1.3-extensions"},
{"VUID-VkCopyImageToBufferInfo2-imageSubresource-07967", "The pname:imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when pname:srcImage was created", "1.3-extensions"},
{"VUID-VkCopyImageToBufferInfo2-imageSubresource-07968", "The pname:imageSubresource.baseArrayLayer + pname:imageSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when pname:srcImage was created", "1.3-extensions"},
+ {"VUID-VkCopyImageToBufferInfo2-imageSubresource-09105", "For each element of pRegions, pname:imageSubresource.aspectMask must specify aspects present in pname:srcImage", "1.3-extensions"},
{"VUID-VkCopyImageToBufferInfo2-pNext-pNext", "pNext must be NULL", "1.3-extensions"},
{"VUID-VkCopyImageToBufferInfo2-pRegions-00183", "dstBuffer must be large enough to contain all buffer locations that are accessed according to Buffer and Image Addressing, for each element of pRegions", "1.3-extensions"},
{"VUID-VkCopyImageToBufferInfo2-pRegions-00184", "The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory", "1.3-extensions"},
{"VUID-VkCopyImageToBufferInfo2-pRegions-04566", "If the image region specified by each element of pRegions does not contain VkCopyCommandTransformInfoQCOM in its pNext chain, it must be contained within the specified imageSubresource of srcImage", "1.3-extensions"},
- {"VUID-VkCopyImageToBufferInfo2-pRegions-07274", "For each element of pRegions, imageOffset.x must be a multiple of the texel block extent width of the VkFormat of pname:srcImage", "1.3-extensions"},
- {"VUID-VkCopyImageToBufferInfo2-pRegions-07275", "For each element of pRegions, imageOffset.y must be a multiple of the texel block extent height of the VkFormat of pname:srcImage", "1.3-extensions"},
- {"VUID-VkCopyImageToBufferInfo2-pRegions-07276", "For each element of pRegions, imageOffset.z must be a multiple of the texel block extent depth of the VkFormat of pname:srcImage", "1.3-extensions"},
- {"VUID-VkCopyImageToBufferInfo2-pRegions-07277", "For each element of pRegions, bufferRowLength divided by the texel block extent width and then multiplied by the texel block size of pname:srcImage must be less than or equal to 231-1", "1.3-extensions"},
+ {"VUID-VkCopyImageToBufferInfo2-pRegions-07274", "For each element of pRegions, pname:imageOffset.x must be a multiple of the texel block extent width of the VkFormat of pname:srcImage", "1.3-extensions"},
+ {"VUID-VkCopyImageToBufferInfo2-pRegions-07275", "For each element of pRegions, pname:imageOffset.y must be a multiple of the texel block extent height of the VkFormat of pname:srcImage", "1.3-extensions"},
+ {"VUID-VkCopyImageToBufferInfo2-pRegions-07276", "For each element of pRegions, pname:imageOffset.z must be a multiple of the texel block extent depth of the VkFormat of pname:srcImage", "1.3-extensions"},
{"VUID-VkCopyImageToBufferInfo2-pRegions-parameter", "pRegions must be a valid pointer to an array of regionCount valid VkBufferImageCopy2 structures", "1.3-extensions"},
{"VUID-VkCopyImageToBufferInfo2-regionCount-arraylength", "regionCount must be greater than 0", "1.3-extensions"},
{"VUID-VkCopyImageToBufferInfo2-sType-sType", "sType must be VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2", "1.3-extensions"},
@@ -1771,11 +1797,11 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkCopyImageToBufferInfo2-srcImage-07975", "If pname:srcImage does not have either a depth/stencil or a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the texel block size", "1.3-extensions"},
{"VUID-VkCopyImageToBufferInfo2-srcImage-07976", "If pname:srcImage has a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the element size of the compatible format for the format and the aspectMask of the imageSubresource as defined in Compatible formats of planes of multi-planar formats", "1.3-extensions"},
{"VUID-VkCopyImageToBufferInfo2-srcImage-07978", "If pname:srcImage has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4", "1.3-extensions"},
- {"VUID-VkCopyImageToBufferInfo2-srcImage-07979", "If pname:srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, imageOffset.y must be 0 and imageExtent.height must be 1", "1.3-extensions"},
- {"VUID-VkCopyImageToBufferInfo2-srcImage-07980", "If pname:srcImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, imageOffset.z must be 0 and imageExtent.depth must be 1", "1.3-extensions"},
- {"VUID-VkCopyImageToBufferInfo2-srcImage-07981", "If pname:srcImage has a VkFormat with two planes then for each element of pRegions, imageSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT", "1.3-extensions"},
- {"VUID-VkCopyImageToBufferInfo2-srcImage-07982", "If pname:srcImage has a VkFormat with three planes then for each element of pRegions, imageSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT", "1.3-extensions"},
- {"VUID-VkCopyImageToBufferInfo2-srcImage-07983", "If pname:srcImage is of type VK_IMAGE_TYPE_3D, for each element of pRegions, imageSubresource.baseArrayLayer must be 0 and imageSubresource.layerCount must be 1", "1.3-extensions"},
+ {"VUID-VkCopyImageToBufferInfo2-srcImage-07979", "If pname:srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, pname:imageOffset.y must be 0 and pname:imageExtent.height must be 1", "1.3-extensions"},
+ {"VUID-VkCopyImageToBufferInfo2-srcImage-07980", "If pname:srcImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, pname:imageOffset.z must be 0 and pname:imageExtent.depth must be 1", "1.3-extensions"},
+ {"VUID-VkCopyImageToBufferInfo2-srcImage-07981", "If pname:srcImage has a VkFormat with two planes then for each element of pRegions, pname:imageSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT", "1.3-extensions"},
+ {"VUID-VkCopyImageToBufferInfo2-srcImage-07982", "If pname:srcImage has a VkFormat with three planes then for each element of pRegions, pname:imageSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT", "1.3-extensions"},
+ {"VUID-VkCopyImageToBufferInfo2-srcImage-07983", "If pname:srcImage is of type VK_IMAGE_TYPE_3D, for each element of pRegions, pname:imageSubresource.baseArrayLayer must be 0 and pname:imageSubresource.layerCount must be 1", "1.3-extensions"},
{"VUID-VkCopyImageToBufferInfo2-srcImage-parameter", "srcImage must be a valid VkImage handle", "1.3-extensions"},
{"VUID-VkCopyImageToBufferInfo2-srcImageLayout-00189", "srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice", "1.3-extensions"},
{"VUID-VkCopyImageToBufferInfo2-srcImageLayout-01397", "srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR", "1.3-extensions"},
@@ -1939,8 +1965,8 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkDescriptorAddressInfoEXT-None-08044", "If address is not zero, address must be a valid device address at an offset within a VkBuffer", "1.3-extensions"},
{"VUID-VkDescriptorAddressInfoEXT-address-08043", "If the nullDescriptor feature is not enabled, address must not be zero", "1.3-extensions"},
{"VUID-VkDescriptorAddressInfoEXT-format-parameter", "format must be a valid VkFormat value", "1.3-extensions"},
- {"VUID-VkDescriptorAddressInfoEXT-nullDescriptor-08938", "If the nullDescriptor feature is enabled, and address is zero, range must be VK_WHOLE_SIZE", "1.3-extensions"},
- {"VUID-VkDescriptorAddressInfoEXT-nullDescriptor-08939", "If the nullDescriptor feature is enabled and address is not zero, range must not be VK_WHOLE_SIZE", "1.3-extensions"},
+ {"VUID-VkDescriptorAddressInfoEXT-nullDescriptor-08938", "If address is zero, range must be VK_WHOLE_SIZE", "1.3-extensions"},
+ {"VUID-VkDescriptorAddressInfoEXT-nullDescriptor-08939", "If address is not zero, range must not be VK_WHOLE_SIZE", "1.3-extensions"},
{"VUID-VkDescriptorAddressInfoEXT-pNext-pNext", "pNext must be NULL", "1.3-extensions"},
{"VUID-VkDescriptorAddressInfoEXT-range-08045", "range must be less than or equal to the size of the buffer containing address minus the offset of address from the base address of the buffer", "1.3-extensions"},
{"VUID-VkDescriptorAddressInfoEXT-range-08940", "range must not be zero", "1.3-extensions"},
@@ -2002,8 +2028,8 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkDescriptorGetInfoEXT-type-08029", "If type is VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV and accelerationStructure is not 0, accelerationStructure must contain the handle of a VkAccelerationStructureNV created on device, returned by vkGetAccelerationStructureHandleNV", "1.3-extensions"},
{"VUID-VkDescriptorGetInfoEXT-type-parameter", "type must be a valid VkDescriptorType value", "1.3-extensions"},
{"VUID-VkDescriptorImageInfo-commonparent", "Both of imageView, and sampler that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", "1.3-extensions"},
- {"VUID-VkDescriptorImageInfo-descriptorType-06713", "If the image2DViewOf3D feature is not enabled and descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE then imageView must not be a 2D view created from a 3D image", "1.3-extensions"},
- {"VUID-VkDescriptorImageInfo-descriptorType-06714", "If the sampler2DViewOf3D feature is not enabled and descriptorType is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER then imageView must not be a 2D view created from a 3D image", "1.3-extensions"},
+ {"VUID-VkDescriptorImageInfo-descriptorType-06713", "If the image2DViewOf3D feature is not enabled or descriptorType is not VK_DESCRIPTOR_TYPE_STORAGE_IMAGE then imageView must not be a 2D view created from a 3D image", "1.3-extensions"},
+ {"VUID-VkDescriptorImageInfo-descriptorType-06714", "If the sampler2DViewOf3D feature is not enabled or descriptorType is not VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER then imageView must not be a 2D view created from a 3D image", "1.3-extensions"},
{"VUID-VkDescriptorImageInfo-imageLayout-00344", "imageLayout must match the actual VkImageLayout of each subresource accessible from imageView at the time this descriptor is accessed as defined by the image layout matching rules", "1.3-extensions"},
{"VUID-VkDescriptorImageInfo-imageView-01976", "If imageView is created from a depth/stencil image, the aspectMask used to create the imageView must include either VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT but not both", "1.3-extensions"},
{"VUID-VkDescriptorImageInfo-imageView-06712", "imageView must not be a 2D array image view created from a 3D image", "1.3-extensions"},
@@ -2140,7 +2166,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkDeviceCreateInfo-pNext-02830", "If the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then it must not include a VkPhysicalDevice8BitStorageFeatures, VkPhysicalDeviceShaderAtomicInt64Features, VkPhysicalDeviceShaderFloat16Int8Features, VkPhysicalDeviceDescriptorIndexingFeatures, VkPhysicalDeviceScalarBlockLayoutFeatures, VkPhysicalDeviceImagelessFramebufferFeatures, VkPhysicalDeviceUniformBufferStandardLayoutFeatures, VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, VkPhysicalDeviceHostQueryResetFeatures, VkPhysicalDeviceTimelineSemaphoreFeatures, VkPhysicalDeviceBufferDeviceAddressFeatures, or VkPhysicalDeviceVulkanMemoryModelFeatures structure", "1.3-extensions"},
{"VUID-VkDeviceCreateInfo-pNext-04748", "If the pNext chain includes a VkPhysicalDeviceVulkan12Features structure and VkPhysicalDeviceVulkan12Features::bufferDeviceAddress is VK_TRUE, ppEnabledExtensionNames must not contain VK_EXT_buffer_device_address", "1.3-extensions"},
{"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", "1.3-extensions"},
- {"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 instance of VkDeviceDeviceMemoryReportCreateInfoEXT, VkDeviceDiagnosticsConfigCreateInfoNV, VkDeviceGroupDeviceCreateInfo, VkDeviceMemoryOverallocationCreateInfoAMD, VkDevicePrivateDataCreateInfo, VkPhysicalDevice16BitStorageFeatures, VkPhysicalDevice4444FormatsFeaturesEXT, VkPhysicalDevice8BitStorageFeatures, VkPhysicalDeviceASTCDecodeFeaturesEXT, VkPhysicalDeviceAccelerationStructureFeaturesKHR, VkPhysicalDeviceAddressBindingReportFeaturesEXT, VkPhysicalDeviceAmigoProfilingFeaturesSEC, VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT, VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT, VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, VkPhysicalDeviceBorderColorSwizzleFeaturesEXT, VkPhysicalDeviceBufferDeviceAddressFeatures, VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI, VkPhysicalDeviceCoherentMemoryFeaturesAMD, VkPhysicalDeviceColorWriteEnableFeaturesEXT, VkPhysicalDeviceComputeShaderDerivativesFeaturesNV, VkPhysicalDeviceConditionalRenderingFeaturesEXT, VkPhysicalDeviceCooperativeMatrixFeaturesKHR, VkPhysicalDeviceCooperativeMatrixFeaturesNV, VkPhysicalDeviceCopyMemoryIndirectFeaturesNV, VkPhysicalDeviceCornerSampledImageFeaturesNV, VkPhysicalDeviceCoverageReductionModeFeaturesNV, VkPhysicalDeviceCustomBorderColorFeaturesEXT, VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, VkPhysicalDeviceDepthBiasControlFeaturesEXT, VkPhysicalDeviceDepthClampZeroOneFeaturesEXT, VkPhysicalDeviceDepthClipControlFeaturesEXT, VkPhysicalDeviceDepthClipEnableFeaturesEXT, VkPhysicalDeviceDescriptorBufferFeaturesEXT, VkPhysicalDeviceDescriptorIndexingFeatures, VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE, VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV, VkPhysicalDeviceDeviceMemoryReportFeaturesEXT, VkPhysicalDeviceDiagnosticsConfigFeaturesNV, VkPhysicalDeviceDisplacementMicromapFeaturesNV, VkPhysicalDeviceDynamicRenderingFeatures, VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT, VkPhysicalDeviceExclusiveScissorFeaturesNV, VkPhysicalDeviceExtendedDynamicState2FeaturesEXT, VkPhysicalDeviceExtendedDynamicState3FeaturesEXT, VkPhysicalDeviceExtendedDynamicStateFeaturesEXT, VkPhysicalDeviceExternalMemoryRDMAFeaturesNV, VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX, VkPhysicalDeviceFaultFeaturesEXT, VkPhysicalDeviceFeatures2, VkPhysicalDeviceFragmentDensityMap2FeaturesEXT, VkPhysicalDeviceFragmentDensityMapFeaturesEXT, VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM, VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR, VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT, VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV, VkPhysicalDeviceFragmentShadingRateFeaturesKHR, VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR, VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT, VkPhysicalDeviceHostQueryResetFeatures, VkPhysicalDeviceImage2DViewOf3DFeaturesEXT, VkPhysicalDeviceImageCompressionControlFeaturesEXT, VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT, VkPhysicalDeviceImageProcessingFeaturesQCOM, VkPhysicalDeviceImageRobustnessFeatures, VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT, VkPhysicalDeviceImageViewMinLodFeaturesEXT, VkPhysicalDeviceImagelessFramebufferFeatures, VkPhysicalDeviceIndexTypeUint8FeaturesEXT, VkPhysicalDeviceInheritedViewportScissorFeaturesNV, VkPhysicalDeviceInlineUniformBlockFeatures, VkPhysicalDeviceInvocationMaskFeaturesHUAWEI, VkPhysicalDeviceLegacyDitheringFeaturesEXT, VkPhysicalDeviceLineRasterizationFeaturesEXT, VkPhysicalDeviceLinearColorAttachmentFeaturesNV, VkPhysicalDeviceMaintenance4Features, VkPhysicalDeviceMemoryDecompressionFeaturesNV, VkPhysicalDeviceMemoryPriorityFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesNV, VkPhysicalDeviceMultiDrawFeaturesEXT, VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT, VkPhysicalDeviceMultiviewFeatures, VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM, VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM, VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT, VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT, VkPhysicalDeviceOpacityMicromapFeaturesEXT, VkPhysicalDeviceOpticalFlowFeaturesNV, VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT, VkPhysicalDevicePerformanceQueryFeaturesKHR, VkPhysicalDevicePipelineCreationCacheControlFeatures, VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR, VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT, VkPhysicalDevicePipelinePropertiesFeaturesEXT, VkPhysicalDevicePipelineProtectedAccessFeaturesEXT, VkPhysicalDevicePipelineRobustnessFeaturesEXT, VkPhysicalDevicePortabilitySubsetFeaturesKHR, VkPhysicalDevicePresentBarrierFeaturesNV, VkPhysicalDevicePresentIdFeaturesKHR, VkPhysicalDevicePresentWaitFeaturesKHR, VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT, VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT, VkPhysicalDevicePrivateDataFeatures, VkPhysicalDeviceProtectedMemoryFeatures, VkPhysicalDeviceProvokingVertexFeaturesEXT, VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT, VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT, VkPhysicalDeviceRayQueryFeaturesKHR, VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV, VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR, VkPhysicalDeviceRayTracingMotionBlurFeaturesNV, VkPhysicalDeviceRayTracingPipelineFeaturesKHR, VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR, VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV, VkPhysicalDeviceRobustness2FeaturesEXT, VkPhysicalDeviceSamplerYcbcrConversionFeatures, VkPhysicalDeviceScalarBlockLayoutFeatures, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, VkPhysicalDeviceShaderAtomicInt64Features, VkPhysicalDeviceShaderClockFeaturesKHR, VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM, VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures, VkPhysicalDeviceShaderDrawParametersFeatures, VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD, VkPhysicalDeviceShaderFloat16Int8Features, VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT, VkPhysicalDeviceShaderImageFootprintFeaturesNV, VkPhysicalDeviceShaderIntegerDotProductFeatures, VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT, VkPhysicalDeviceShaderObjectFeaturesEXT, VkPhysicalDeviceShaderSMBuiltinsFeaturesNV, VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, VkPhysicalDeviceShaderTerminateInvocationFeatures, VkPhysicalDeviceShaderTileImageFeaturesEXT, VkPhysicalDeviceShadingRateImageFeaturesNV, VkPhysicalDeviceSubgroupSizeControlFeatures, VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT, VkPhysicalDeviceSubpassShadingFeaturesHUAWEI, VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT, VkPhysicalDeviceSynchronization2Features, VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT, VkPhysicalDeviceTextureCompressionASTCHDRFeatures, VkPhysicalDeviceTilePropertiesFeaturesQCOM, VkPhysicalDeviceTimelineSemaphoreFeatures, VkPhysicalDeviceTransformFeedbackFeaturesEXT, VkPhysicalDeviceUniformBufferStandardLayoutFeatures, VkPhysicalDeviceVariablePointersFeatures, VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT, VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT, VkPhysicalDeviceVulkan11Features, VkPhysicalDeviceVulkan12Features, VkPhysicalDeviceVulkan13Features, VkPhysicalDeviceVulkanMemoryModelFeatures, VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, VkPhysicalDeviceYcbcrImageArraysFeaturesEXT, or VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures", "1.3-extensions"},
+ {"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 instance of VkDeviceDeviceMemoryReportCreateInfoEXT, VkDeviceDiagnosticsConfigCreateInfoNV, VkDeviceGroupDeviceCreateInfo, VkDeviceMemoryOverallocationCreateInfoAMD, VkDevicePrivateDataCreateInfo, VkPhysicalDevice16BitStorageFeatures, VkPhysicalDevice4444FormatsFeaturesEXT, VkPhysicalDevice8BitStorageFeatures, VkPhysicalDeviceASTCDecodeFeaturesEXT, VkPhysicalDeviceAccelerationStructureFeaturesKHR, VkPhysicalDeviceAddressBindingReportFeaturesEXT, VkPhysicalDeviceAmigoProfilingFeaturesSEC, VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT, VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT, VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, VkPhysicalDeviceBorderColorSwizzleFeaturesEXT, VkPhysicalDeviceBufferDeviceAddressFeatures, VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI, VkPhysicalDeviceCoherentMemoryFeaturesAMD, VkPhysicalDeviceColorWriteEnableFeaturesEXT, VkPhysicalDeviceComputeShaderDerivativesFeaturesNV, VkPhysicalDeviceConditionalRenderingFeaturesEXT, VkPhysicalDeviceCooperativeMatrixFeaturesKHR, VkPhysicalDeviceCooperativeMatrixFeaturesNV, VkPhysicalDeviceCopyMemoryIndirectFeaturesNV, VkPhysicalDeviceCornerSampledImageFeaturesNV, VkPhysicalDeviceCoverageReductionModeFeaturesNV, VkPhysicalDeviceCustomBorderColorFeaturesEXT, VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, VkPhysicalDeviceDepthBiasControlFeaturesEXT, VkPhysicalDeviceDepthClampZeroOneFeaturesEXT, VkPhysicalDeviceDepthClipControlFeaturesEXT, VkPhysicalDeviceDepthClipEnableFeaturesEXT, VkPhysicalDeviceDescriptorBufferFeaturesEXT, VkPhysicalDeviceDescriptorIndexingFeatures, VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE, VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV, VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV, VkPhysicalDeviceDeviceMemoryReportFeaturesEXT, VkPhysicalDeviceDiagnosticsConfigFeaturesNV, VkPhysicalDeviceDisplacementMicromapFeaturesNV, VkPhysicalDeviceDynamicRenderingFeatures, VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT, VkPhysicalDeviceExclusiveScissorFeaturesNV, VkPhysicalDeviceExtendedDynamicState2FeaturesEXT, VkPhysicalDeviceExtendedDynamicState3FeaturesEXT, VkPhysicalDeviceExtendedDynamicStateFeaturesEXT, VkPhysicalDeviceExternalMemoryRDMAFeaturesNV, VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX, VkPhysicalDeviceFaultFeaturesEXT, VkPhysicalDeviceFeatures2, VkPhysicalDeviceFragmentDensityMap2FeaturesEXT, VkPhysicalDeviceFragmentDensityMapFeaturesEXT, VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM, VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR, VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT, VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV, VkPhysicalDeviceFragmentShadingRateFeaturesKHR, VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR, VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT, VkPhysicalDeviceHostImageCopyFeaturesEXT, VkPhysicalDeviceHostQueryResetFeatures, VkPhysicalDeviceImage2DViewOf3DFeaturesEXT, VkPhysicalDeviceImageCompressionControlFeaturesEXT, VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT, VkPhysicalDeviceImageProcessingFeaturesQCOM, VkPhysicalDeviceImageRobustnessFeatures, VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT, VkPhysicalDeviceImageViewMinLodFeaturesEXT, VkPhysicalDeviceImagelessFramebufferFeatures, VkPhysicalDeviceIndexTypeUint8FeaturesEXT, VkPhysicalDeviceInheritedViewportScissorFeaturesNV, VkPhysicalDeviceInlineUniformBlockFeatures, VkPhysicalDeviceInvocationMaskFeaturesHUAWEI, VkPhysicalDeviceLegacyDitheringFeaturesEXT, VkPhysicalDeviceLineRasterizationFeaturesEXT, VkPhysicalDeviceLinearColorAttachmentFeaturesNV, VkPhysicalDeviceMaintenance4Features, VkPhysicalDeviceMemoryDecompressionFeaturesNV, VkPhysicalDeviceMemoryPriorityFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesNV, VkPhysicalDeviceMultiDrawFeaturesEXT, VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT, VkPhysicalDeviceMultiviewFeatures, VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM, VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM, VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT, VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT, VkPhysicalDeviceOpacityMicromapFeaturesEXT, VkPhysicalDeviceOpticalFlowFeaturesNV, VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT, VkPhysicalDevicePerformanceQueryFeaturesKHR, VkPhysicalDevicePipelineCreationCacheControlFeatures, VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR, VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT, VkPhysicalDevicePipelinePropertiesFeaturesEXT, VkPhysicalDevicePipelineProtectedAccessFeaturesEXT, VkPhysicalDevicePipelineRobustnessFeaturesEXT, VkPhysicalDevicePortabilitySubsetFeaturesKHR, VkPhysicalDevicePresentBarrierFeaturesNV, VkPhysicalDevicePresentIdFeaturesKHR, VkPhysicalDevicePresentWaitFeaturesKHR, VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT, VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT, VkPhysicalDevicePrivateDataFeatures, VkPhysicalDeviceProtectedMemoryFeatures, VkPhysicalDeviceProvokingVertexFeaturesEXT, VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT, VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT, VkPhysicalDeviceRayQueryFeaturesKHR, VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV, VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR, VkPhysicalDeviceRayTracingMotionBlurFeaturesNV, VkPhysicalDeviceRayTracingPipelineFeaturesKHR, VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR, VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV, VkPhysicalDeviceRobustness2FeaturesEXT, VkPhysicalDeviceSamplerYcbcrConversionFeatures, VkPhysicalDeviceScalarBlockLayoutFeatures, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, VkPhysicalDeviceShaderAtomicInt64Features, VkPhysicalDeviceShaderClockFeaturesKHR, VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM, VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures, VkPhysicalDeviceShaderDrawParametersFeatures, VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD, VkPhysicalDeviceShaderFloat16Int8Features, VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT, VkPhysicalDeviceShaderImageFootprintFeaturesNV, VkPhysicalDeviceShaderIntegerDotProductFeatures, VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT, VkPhysicalDeviceShaderObjectFeaturesEXT, VkPhysicalDeviceShaderSMBuiltinsFeaturesNV, VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, VkPhysicalDeviceShaderTerminateInvocationFeatures, VkPhysicalDeviceShaderTileImageFeaturesEXT, VkPhysicalDeviceShadingRateImageFeaturesNV, VkPhysicalDeviceSubgroupSizeControlFeatures, VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT, VkPhysicalDeviceSubpassShadingFeaturesHUAWEI, VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT, VkPhysicalDeviceSynchronization2Features, VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT, VkPhysicalDeviceTextureCompressionASTCHDRFeatures, VkPhysicalDeviceTilePropertiesFeaturesQCOM, VkPhysicalDeviceTimelineSemaphoreFeatures, VkPhysicalDeviceTransformFeedbackFeaturesEXT, VkPhysicalDeviceUniformBufferStandardLayoutFeatures, VkPhysicalDeviceVariablePointersFeatures, VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT, VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT, VkPhysicalDeviceVulkan11Features, VkPhysicalDeviceVulkan12Features, VkPhysicalDeviceVulkan13Features, VkPhysicalDeviceVulkanMemoryModelFeatures, VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, VkPhysicalDeviceYcbcrImageArraysFeaturesEXT, or VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures", "1.3-extensions"},
{"VUID-VkDeviceCreateInfo-pProperties-04451", "If the VK_KHR_portability_subset extension is included in pProperties of vkEnumerateDeviceExtensionProperties, ppEnabledExtensionNames must include \"VK_KHR_portability_subset\"", "1.3-extensions"},
{"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 VkDeviceQueueGlobalPriorityCreateInfoKHR structure in the pNext chain, or by the implicit default value", "1.3-extensions"},
{"VUID-VkDeviceCreateInfo-pQueueCreateInfos-06755", "If multiple elements of pQueueCreateInfos share the same queueFamilyIndex, the sum of their queueCount members must be less than or equal to the queueCount member of the VkQueueFamilyProperties structure, as returned by vkGetPhysicalDeviceQueueFamilyProperties in the pQueueFamilyProperties[queueFamilyIndex]", "1.3-extensions"},
@@ -2545,6 +2571,10 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkGeneratedCommandsInfoNV-pStreams-parameter", "pStreams must be a valid pointer to an array of streamCount valid VkIndirectCommandsStreamNV structures", "1.3-extensions"},
{"VUID-VkGeneratedCommandsInfoNV-pipeline-02912", "The provided pipeline must match the pipeline bound at execution time", "1.3-extensions"},
{"VUID-VkGeneratedCommandsInfoNV-pipeline-parameter", "pipeline must be a valid VkPipeline handle", "1.3-extensions"},
+ {"VUID-VkGeneratedCommandsInfoNV-pipelineBindPoint-09084", "If pipelineBindPoint is of type VK_PIPELINE_BIND_POINT_COMPUTE, then the pipeline must have been created with the flag VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV", "1.3-extensions"},
+ {"VUID-VkGeneratedCommandsInfoNV-pipelineBindPoint-09085", "If pipelineBindPoint is of type VK_PIPELINE_BIND_POINT_COMPUTE, then the pipeline must have been created with a VkComputePipelineIndirectBufferInfoNV structure specifying a valid address where its metadata will be saved", "1.3-extensions"},
+ {"VUID-VkGeneratedCommandsInfoNV-pipelineBindPoint-09086", "If pipelineBindPoint is of type VK_PIPELINE_BIND_POINT_COMPUTE, then vkCmdUpdatePipelineIndirectBuffer must have been called on that pipeline to save its metadata to a device address", "1.3-extensions"},
+ {"VUID-VkGeneratedCommandsInfoNV-pipelineBindPoint-09087", "If pipelineBindPoint is of type VK_PIPELINE_BIND_POINT_COMPUTE, and if VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV is used, then pipeline must be VK_NULL_HANDLE", "1.3-extensions"},
{"VUID-VkGeneratedCommandsInfoNV-pipelineBindPoint-parameter", "pipelineBindPoint must be a valid VkPipelineBindPoint value", "1.3-extensions"},
{"VUID-VkGeneratedCommandsInfoNV-preprocessBuffer-02918", "preprocessBuffer must have the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set in its usage flag", "1.3-extensions"},
{"VUID-VkGeneratedCommandsInfoNV-preprocessBuffer-02971", "If preprocessBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", "1.3-extensions"},
@@ -2565,11 +2595,14 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-parameter", "If sequencesIndexBuffer is not VK_NULL_HANDLE, sequencesIndexBuffer must be a valid VkBuffer handle", "1.3-extensions"},
{"VUID-VkGeneratedCommandsInfoNV-streamCount-02916", "streamCount must match the indirectCommandsLayout's streamCount", "1.3-extensions"},
{"VUID-VkGeneratedCommandsInfoNV-streamCount-arraylength", "streamCount must be greater than 0", "1.3-extensions"},
- {"VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-commonparent", "Both of indirectCommandsLayout, and pipeline must have been created, allocated, or retrieved from the same VkDevice", "1.3-extensions"},
+ {"VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-commonparent", "Both of indirectCommandsLayout, and pipeline that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", "1.3-extensions"},
{"VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-indirectCommandsLayout-parameter", "indirectCommandsLayout must be a valid VkIndirectCommandsLayoutNV handle", "1.3-extensions"},
{"VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-maxSequencesCount-02907", "maxSequencesCount must be less or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectSequenceCount", "1.3-extensions"},
{"VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pNext-pNext", "pNext must be NULL", "1.3-extensions"},
- {"VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipeline-parameter", "pipeline must be a valid VkPipeline handle", "1.3-extensions"},
+ {"VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipeline-parameter", "If pipeline is not VK_NULL_HANDLE, pipeline must be a valid VkPipeline handle", "1.3-extensions"},
+ {"VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipelineBindPoint-09075", "If pipelineBindPoint is of type VK_PIPELINE_BIND_POINT_GRAPHICS, then pipeline must be a valid VkPipeline handle", "1.3-extensions"},
+ {"VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipelineBindPoint-09076", "If pipelineBindPoint is of type VK_PIPELINE_BIND_POINT_COMPUTE, and the indirectCommandsLayout was not created with a VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV token, then the pipeline must be a valid VkPipeline handle", "1.3-extensions"},
+ {"VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipelineBindPoint-09077", "If pipelineBindPoint is of type VK_PIPELINE_BIND_POINT_COMPUTE, and the indirectCommandsLayout contains a VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV token, then the pipeline must be NULL", "1.3-extensions"},
{"VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipelineBindPoint-parameter", "pipelineBindPoint must be a valid VkPipelineBindPoint value", "1.3-extensions"},
{"VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV", "1.3-extensions"},
{"VUID-VkGeometryAABBNV-aabbData-parameter", "If aabbData is not VK_NULL_HANDLE, aabbData must be a valid VkBuffer handle", "1.3-extensions"},
@@ -2617,6 +2650,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkGraphicsPipelineCreateInfo-None-04889", "If the pipeline requires pre-rasterization shader state and fragment shader state, the fragment shader and last pre-rasterization shader stage and any relevant state must adhere to the pipeline linking rules described in the Shader Interfaces chapter", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-None-06569", "If the pipeline requires fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRateType must be a valid VkFragmentShadingRateTypeNV value", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-None-07826", "If the pipeline includes a complete set of state, VkPipelineLayout must be a valid pipeline layout", "1.3-extensions"},
+ {"VUID-VkGraphicsPipelineCreateInfo-None-09043", "If pDynamicState->pDynamicStates does not include VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the colorWriteMask member of the corresponding element of pColorBlendState->pAttachments must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-PrimitiveId-06264", "If the pipeline requires pre-rasterization shader state, it includes a mesh shader and the fragment shader code reads from an input variable that is decorated with PrimitiveId, then the mesh shader code must write to a matching output variable, decorated with PrimitiveId, in all execution paths", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-TaskNV-07063", "The shader stages for VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT must use either the TaskNV and MeshNV {ExecutionModel} or the TaskEXT and MeshEXT {ExecutionModel}, but must not use both", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-TessellationEvaluation-07723", "If the pipeline is being created with a TessellationEvaluation {ExecutionModel}, no Geometry {ExecutionModel}, uses the PointMode {ExecutionMode}, and shaderTessellationAndGeometryPointSize is enabled, a PointSize decorated variable must be written to", "1.3-extensions"},
@@ -2628,6 +2662,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkGraphicsPipelineCreateInfo-conservativePointAndLineRasterization-08892", "If conservativePointAndLineRasterization is not supported; the pipeline is being created with vertex input state and pre-rasterization shader state; the pipeline does not include a geometry shader; and the value of VkPipelineInputAssemblyStateCreateInfo::topology is VK_PRIMITIVE_TOPOLOGY_POINT_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST, or VK_PRIMITIVE_TOPOLOGY_LINE_STRIP, and either VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state is not enabled or dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then VkPipelineRasterizationConservativeStateCreateInfoEXT::conservativeRasterizationMode must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-coverageReductionMode-02722", "If the pipeline requires fragment output interface state, the VK_NV_coverage_reduction_mode extension is enabled, and rasterizationSamples is not dynamic, the coverage reduction mode specified by VkPipelineCoverageReductionStateCreateInfoNV::coverageReductionMode, the rasterizationSamples member of pMultisampleState and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-depthStencilAttachmentSamples-06593", "If the fragment output interface state and the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV is not 0, it must be a valid VkSampleCountFlagBits value", "1.3-extensions"},
+ {"VUID-VkGraphicsPipelineCreateInfo-dynamicPrimitiveTopologyUnrestricted-09031", "If the pipeline requires vertex input state, and the VK_EXT_extended_dynamic_state3 extension is not enabled, or either VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE, or VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic states are not set, or dynamicPrimitiveTopologyUnrestricted is VK_FALSE, pInputAssemblyState must be a valid pointer to a valid VkPipelineInputAssemblyStateCreateInfo structure", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-dynamicRendering-06576", "If the dynamicRendering feature is not enabled and the pipeline requires pre-rasterization shader state, fragment shader state, or fragment output interface state, renderPass must not be VK_NULL_HANDLE", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3AlphaToCoverageEnable-07375", "If the extendedDynamicState3AlphaToCoverageEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3AlphaToOneEnable-07376", "If the extendedDynamicState3AlphaToOneEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT", "1.3-extensions"},
@@ -2694,7 +2729,6 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkGraphicsPipelineCreateInfo-flags-06637", "If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, pMultisampleState->sampleShading is VK_TRUE, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries was created with VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, the pMultisampleState used to create that library must be identically defined pMultisampleState", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-flags-06638", "If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other flag, values specified in VkPipelineFragmentShadingRateStateCreateInfoKHR for both this pipeline and that library must be identical", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-flags-06640", "If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, pStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures", "1.3-extensions"},
- {"VUID-VkGraphicsPipelineCreateInfo-flags-06641", "If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, pRasterizationState must be a valid pointer to a valid VkPipelineRasterizationStateCreateInfo structure", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-flags-06642", "If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, layout must be a valid VkPipelineLayout handle", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-flags-06643", "If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and renderPass is not VK_NULL_HANDLE, renderPass must be a valid VkRenderPass handle", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-flags-06644", "If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, stageCount must be greater than 0", "1.3-extensions"},
@@ -2723,23 +2757,29 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkGraphicsPipelineCreateInfo-flags-08904", "If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and pre-rasterization shader state is not specified, the pipeline must define fragment shader state", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-flags-08906", "If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, pre-rasterization shader state is specified either in a library or by the inclusion of VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and that state either includes VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE or has pRasterizationState->rasterizerDiscardEnable set to VK_FALSE, the pipeline must define fragment output interface state", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-flags-08907", "If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and pre-rasterization shader state is not specified, the pipeline must define fragment output interface state", "1.3-extensions"},
+ {"VUID-VkGraphicsPipelineCreateInfo-flags-09041", "If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, and the VK_EXT_extended_dynamic_state3 extension is not enabled, or any of the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT, VK_DYNAMIC_STATE_SAMPLE_MASK_EXT, VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT, or VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic states are not set, pRasterizationState must be a valid pointer to a valid VkPipelineRasterizationStateCreateInfo structure", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-flags-parameter", "flags must be a valid combination of VkPipelineCreateFlagBits values", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-fragmentShadingRateNonTrivialCombinerOps-04506", "If the pipeline requires pre-rasterization shader state or fragment shader state, the fragmentShadingRateNonTrivialCombinerOps limit is not supported, and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, elements of VkPipelineFragmentShadingRateStateCreateInfoKHR::combinerOps must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR or VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-fragmentShadingRateNonTrivialCombinerOps-04573", "If the pipeline requires fragment shader state, and the fragmentShadingRateNonTrivialCombinerOps limit is not supported and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, elements of VkPipelineFragmentShadingRateEnumStateCreateInfoNV::combinerOps must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR or VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-geometryStreams-02321", "If the pipeline requires pre-rasterization shader state, and the last pre-rasterization shader stage is a geometry shader, and that geometry shader uses the GeometryStreams capability, then VkPhysicalDeviceTransformFeedbackFeaturesEXT::geometryStreams feature must be enabled", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-graphicsPipelineLibrary-06606", "If the graphicsPipelineLibrary feature is not enabled, flags must not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-layout-01688", "The number of resources in layout accessible to each shader stage that is used by the pipeline must be less than or equal to VkPhysicalDeviceLimits::maxPerStageResources", "1.3-extensions"},
+ {"VUID-VkGraphicsPipelineCreateInfo-layout-06602", "If the pipeline requires fragment shader state or pre-rasterization shader state, layout must be a valid VkPipelineLayout handle", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-layout-07827", "If the pipeline includes a complete set of state specified entirely by libraries, and each library was created with a VkPipelineLayout created without VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, then layout must be compatible with the layouts in those libraries", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-layout-07987", "If a push constant block is declared in a shader, a push constant range in layout must match both the shader stage and range", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-layout-07988", "If a resource variables is declared in a shader, a descriptor slot in layout must match the shader stage", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-layout-07990", "If a resource variables is declared in a shader, and the descriptor type is not VK_DESCRIPTOR_TYPE_MUTABLE_EXT, a descriptor slot in layout must match the descriptor type", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-layout-07991", "If a resource variables is declared in a shader as an array, a descriptor slot in layout must match the descriptor count", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-libraryCount-06648", "If the pipeline is not created with a complete set of state, or VkPipelineLibraryCreateInfoKHR::libraryCount is not 0, VkGraphicsPipelineShaderGroupsCreateInfoNV::groupCount and VkGraphicsPipelineShaderGroupsCreateInfoNV::pipelineCount must be 0", "1.3-extensions"},
- {"VUID-VkGraphicsPipelineCreateInfo-libraryCount-06649", "If the pipeline is created with a complete set of state, VkPipelineLibraryCreateInfoKHR::libraryCount is 0, and the pNext chain includes an instance of VkGraphicsPipelineShaderGroupsCreateInfoNV, VkGraphicsPipelineShaderGroupsCreateInfoNV::groupCount must be greater than 0", "1.3-extensions"},
+ {"VUID-VkGraphicsPipelineCreateInfo-libraryCount-06649", "If the pipeline is created with a complete set of state, and VkPipelineLibraryCreateInfoKHR::libraryCount is 0, and the pNext chain includes an instance of VkGraphicsPipelineShaderGroupsCreateInfoNV, VkGraphicsPipelineShaderGroupsCreateInfoNV::groupCount must be greater than 0", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-lineRasterizationMode-02766", "If the pipeline requires pre-rasterization shader state and at least one of fragment output interface state or fragment shader state, and pMultisampleState is not NULL, the lineRasterizationMode member of a VkPipelineRasterizationLineStateCreateInfoEXT structure included in the pNext chain of pRasterizationState is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the alphaToCoverageEnable, alphaToOneEnable, and sampleShadingEnable members of pMultisampleState must all be VK_FALSE", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-multisampledRenderToSingleSampled-06853", "If the pipeline requires fragment output interface state, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature are enabled, rasterizationSamples is not dynamic, and if subpass uses color and/or depth/stencil attachments, then the rasterizationSamples member of pMultisampleState must be the same as the sample count for those subpass attachments", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-multiview-06577", "If the multiview feature is not enabled, the pipeline requires pre-rasterization shader state, fragment shader state, or fragment output interface state, and renderPass is VK_NULL_HANDLE, VkPipelineRenderingCreateInfo::viewMask must be 0", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pColorAttachmentSamples-06592", "If the fragment output interface state, elements of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV must be valid VkSampleCountFlagBits values", "1.3-extensions"},
+ {"VUID-VkGraphicsPipelineCreateInfo-pColorBlendState-09038", "If pColorBlendState is not NULL it must be a valid pointer to a valid VkPipelineColorBlendStateCreateInfo structure", "1.3-extensions"},
+ {"VUID-VkGraphicsPipelineCreateInfo-pDepthStencilState-09029", "If pDepthStencilState is not NULL it must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure", "1.3-extensions"},
+ {"VUID-VkGraphicsPipelineCreateInfo-pDepthStencilState-09034", "If pDepthStencilState is not NULL it must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure", "1.3-extensions"},
+ {"VUID-VkGraphicsPipelineCreateInfo-pDepthStencilState-09036", "If pDepthStencilState is not NULL it must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04494", "If the pipeline requires pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.width must be greater than or equal to 1", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04495", "If the pipeline requires pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.height must be greater than or equal to 1", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04496", "If the pipeline requires pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.width must be a power-of-two value", "1.3-extensions"},
@@ -2763,6 +2803,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00754", "If the pipeline requires pre-rasterization shader state, the depthBiasClamp feature is not enabled, no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_DEPTH_BIAS, and the depthBiasEnable member of pRasterizationState is VK_TRUE, the depthBiasClamp member of pRasterizationState must be 0.0", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01715", "If the pipeline requires pre-rasterization shader state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV, and the viewportWScalingEnable member of a VkPipelineViewportWScalingStateCreateInfoNV structure, included in the pNext chain of pViewportState, is VK_TRUE, the pViewportWScalings member of the VkPipelineViewportWScalingStateCreateInfoNV must be a pointer to an array of VkPipelineViewportWScalingStateCreateInfoNV::viewportCount valid VkViewportWScalingNV structures", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-02510", "If the pipeline requires fragment shader state, and the VK_EXT_depth_range_unrestricted extension is not enabled and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_DEPTH_BOUNDS, and the depthBoundsTestEnable member of pDepthStencilState is VK_TRUE, the minDepthBounds and maxDepthBounds members of pDepthStencilState must be between 0.0 and 1.0, inclusive", "1.3-extensions"},
+ {"VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03378", "If the extendedDynamicState feature is not enabled, and the value of VkApplicationInfo::apiVersion used to create the VkInstance is less than Version 1.3 there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_CULL_MODE, VK_DYNAMIC_STATE_FRONT_FACE, VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY, VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT, VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT, VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE, VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE, VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE, VK_DYNAMIC_STATE_DEPTH_COMPARE_OP, VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE, VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE, or VK_DYNAMIC_STATE_STENCIL_OP", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03379", "If the pipeline requires pre-rasterization shader state, and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT is included in the pDynamicStates array then viewportCount must be zero", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03380", "If the pipeline requires pre-rasterization shader state, and VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT is included in the pDynamicStates array then scissorCount must be zero", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03578", "All elements of the pDynamicStates member of pDynamicState must not be VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR", "1.3-extensions"},
@@ -2775,6 +2816,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04133", "If the pipeline requires pre-rasterization shader state, and VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT is included in the pDynamicStates array then VK_DYNAMIC_STATE_SCISSOR must not be present", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04800", "If the colorWriteEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04807", "If the pipeline requires pre-rasterization shader state and the vertexInputDynamicState feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_VERTEX_INPUT_EXT", "1.3-extensions"},
+ {"VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04868", "If the extendedDynamicState2 feature is not enabled, and the value of VkApplicationInfo::apiVersion used to create the VkInstance is less than Version 1.3 there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE, VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE, or VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04869", "If the extendedDynamicState2LogicOp feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_LOGIC_OP_EXT", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04870", "If the extendedDynamicState2PatchControlPoints feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07065", "If the pipeline requires pre-rasterization shader state, and includes a mesh shader, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY, or VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE", "1.3-extensions"},
@@ -2788,6 +2830,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07854", "If VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV is included in the pDynamicStates array then the implementation must support at least specVersion 2 of the VK_NV_scissor_exclusive extension", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07855", "If VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT is included in the pDynamicStates array then the implementation must support at least specVersion 2 of the VK_EXT_discard_rectangles extension", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07856", "If VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT is included in the pDynamicStates array then the implementation must support at least specVersion 2 of the VK_EXT_discard_rectangles extension", "1.3-extensions"},
+ {"VUID-VkGraphicsPipelineCreateInfo-pInputAssemblyState-09032", "If pInputAssemblyState is not NULL it must be a valid pointer to a valid VkPipelineInputAssemblyStateCreateInfo structure", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pLibraries-06597", "If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, the value of VkMultiviewPerViewAttributesInfoNVX::perViewAttributes specified in both libraries must be equal", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pLibraries-06599", "If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, the value of VkMultiviewPerViewAttributesInfoNVX::perViewAttributesPositionXOnly specified in both libraries must be equal", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pLibraries-06611", "Any pipeline libraries included via VkPipelineLibraryCreateInfoKHR::pLibraries must not include any state subset already defined by this structure or defined by any other pipeline library in VkPipelineLibraryCreateInfoKHR::pLibraries", "1.3-extensions"},
@@ -2808,10 +2851,14 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkGraphicsPipelineCreateInfo-pLibraries-06681", "If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and any element of the pSetLayouts array used to create each library's layout was VK_NULL_HANDLE, then the corresponding element of the pSetLayouts array used to create the other library's layout must not be VK_NULL_HANDLE", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pLibraries-06758", "If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and any element of the pSetLayouts array used to create each library's layout was VK_NULL_HANDLE, then the corresponding element of the pSetLayouts array used to create the other library's layout must not have shader bindings for shaders in the other subset", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pMultisampleState-06629", "If the pipeline requires fragment shader state pMultisampleState must be NULL or a valid pointer to a valid VkPipelineMultisampleStateCreateInfo structure", "1.3-extensions"},
+ {"VUID-VkGraphicsPipelineCreateInfo-pMultisampleState-09026", "If the pipeline requires fragment output interface state, and the VK_EXT_extended_dynamic_state3 extension is not enabled or any of the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT, VK_DYNAMIC_STATE_SAMPLE_MASK_EXT, VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT, or VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic states is not set, pMultisampleState must be a valid pointer to a valid VkPipelineMultisampleStateCreateInfo structure", "1.3-extensions"},
+ {"VUID-VkGraphicsPipelineCreateInfo-pMultisampleState-09027", "If pMultisampleState is not NULL is must be a valid pointer to a valid VkPipelineMultisampleStateCreateInfo structure", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-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 VkAttachmentSampleCountInfoAMD, VkGraphicsPipelineLibraryCreateInfoEXT, VkGraphicsPipelineShaderGroupsCreateInfoNV, VkMultiviewPerViewAttributesInfoNVX, VkPipelineCompilerControlCreateInfoAMD, VkPipelineCreationFeedbackCreateInfo, VkPipelineDiscardRectangleStateCreateInfoEXT, VkPipelineFragmentShadingRateEnumStateCreateInfoNV, VkPipelineFragmentShadingRateStateCreateInfoKHR, VkPipelineLibraryCreateInfoKHR, VkPipelineRenderingCreateInfo, VkPipelineRepresentativeFragmentTestStateCreateInfoNV, or VkPipelineRobustnessCreateInfoEXT", "1.3-extensions"},
+ {"VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-09039", "If the VK_EXT_extended_dynamic_state3 extension is not enabled, or any of the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT, VK_DYNAMIC_STATE_SAMPLE_MASK_EXT, VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT, or VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic states are not set then pRasterizationState must be a valid pointer to a valid VkPipelineRasterizationStateCreateInfo structure", "1.3-extensions"},
+ {"VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-09040", "If pRasterizationState is not NULL it must be a valid pointer to a valid VkPipelineRasterizationStateCreateInfo structure", "1.3-extensions"},
+ {"VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-09042", "If pRasterizationState is not NULL it must be a valid pointer to a valid VkPipelineRasterizationStateCreateInfo structure", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pStages-00729", "If the pipeline requires pre-rasterization shader state and pStages includes a tessellation control shader stage, it must include a tessellation evaluation shader stage", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pStages-00730", "If the pipeline requires pre-rasterization shader state and pStages includes a tessellation evaluation shader stage, it must include a tessellation control shader stage", "1.3-extensions"},
- {"VUID-VkGraphicsPipelineCreateInfo-pStages-00731", "If the pipeline requires pre-rasterization shader state and pStages includes a tessellation control shader stage and a tessellation evaluation shader stage, pTessellationState must be a valid pointer to a valid VkPipelineTessellationStateCreateInfo structure", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pStages-00732", "If the pipeline requires pre-rasterization shader state and pStages includes tessellation shader stages, the shader code of at least one stage must contain an OpExecutionMode instruction specifying the type of subdivision in the pipeline", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pStages-00733", "If the pipeline requires pre-rasterization shader state and pStages includes tessellation shader stages, and the shader code of both stages contain an OpExecutionMode instruction specifying the type of subdivision in the pipeline, they must both specify the same subdivision mode", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pStages-00734", "If the pipeline requires pre-rasterization shader state and pStages includes tessellation shader stages, the shader code of at least one stage must contain an OpExecutionMode instruction specifying the output patch size in the pipeline", "1.3-extensions"},
@@ -2823,18 +2870,21 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkGraphicsPipelineCreateInfo-pStages-01565", "If the pipeline requires fragment shader state and an input attachment was referenced by an aspectMask at renderPass creation time, the fragment shader must only read from the aspects that were specified for that input attachment", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pStages-02095", "If the pipeline requires pre-rasterization shader state the geometric shader stages provided in pStages must be either from the mesh shading pipeline (stage is VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT) or from the primitive shading pipeline (stage is VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, or VK_SHADER_STAGE_GEOMETRY_BIT)", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pStages-02097", "If the pipeline requires vertex input state, and pVertexInputState is not dynamic, then pVertexInputState must be a valid pointer to a valid VkPipelineVertexInputStateCreateInfo structure", "1.3-extensions"},
- {"VUID-VkGraphicsPipelineCreateInfo-pStages-02098", "If the pipeline requires vertex input state, pInputAssemblyState must be a valid pointer to a valid VkPipelineInputAssemblyStateCreateInfo structure", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pStages-02317", "If the pipeline requires pre-rasterization shader state, the Xfb execution mode can be specified by no more than one shader stage in pStages", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pStages-02318", "If the pipeline requires pre-rasterization shader state, and any shader stage in pStages specifies Xfb execution mode it must be the last pre-rasterization shader stage", "1.3-extensions"},
+ {"VUID-VkGraphicsPipelineCreateInfo-pStages-06600", "If the pipeline requires pre-rasterization shader state or fragment shader state, pStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pStages-06894", "If the pipeline requires pre-rasterization shader state but not fragment shader state, elements of pStages must not have stage set to VK_SHADER_STAGE_FRAGMENT_BIT", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pStages-06895", "If the pipeline requires fragment shader state but not pre-rasterization shader state, elements of pStages must not have stage set to a shader stage which participates in pre-rasterization", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pStages-06896", "If the pipeline requires pre-rasterization shader state, all elements of pStages must have a stage set to a shader stage which participates in fragment shader state or pre-rasterization shader state", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pStages-08711", "If pStages includes a fragment shader stage, VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE is not set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpDepthAttachmentReadEXT, the depthWriteEnable member of VkPipelineDepthStencilStateCreateInfo must be VK_FALSE", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pStages-08712", "If pStages includes a fragment shader stage, VK_DYNAMIC_STATE_STENCIL_WRITE_MASK is not set in VkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares the EarlyFragmentTests execution mode and uses OpStencilAttachmentReadEXT, the value of slink::VkStencilOpState::writeMask for both front and back in VkPipelineDepthStencilStateCreateInfo must be 0", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pStages-08888", "If the pipeline is being created with pre-rasterization shader state and vertex input state and pStages includes tessellation shader stages, and either VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state is not enabled or dynamicPrimitiveTopologyUnrestricted is VK_FALSE, the topology member of pInputAssembly must be VK_PRIMITIVE_TOPOLOGY_PATCH_LIST", "1.3-extensions"},
+ {"VUID-VkGraphicsPipelineCreateInfo-pStages-09022", "If the pipeline requires pre-rasterization shader state and pStages includes a tessellation control shader stage, and the VK_EXT_extended_dynamic_state3 extension is not enabled or the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state is not set, pTessellationState must be a valid pointer to a valid VkPipelineTessellationStateCreateInfo structure", "1.3-extensions"},
+ {"VUID-VkGraphicsPipelineCreateInfo-pTessellationState-09023", "If pTessellationState is not NULL it must be a pointer to a valid VkPipelineTessellationStateCreateInfo structure", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pVertexInputState-08929", "If the pipeline is being created with vertex input state and pVertexInputState is not dynamic, and VkVertexInputAttributeDescription::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must be 64-bit", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pVertexInputState-08930", "If the pipeline is being created with vertex input state and pVertexInputState is not dynamic, and the scalar width associated with a Location decorated Input variable in the Vertex {ExecutionModel} OpEntryPoint is 64-bit, then the corresponding VkVertexInputAttributeDescription::format must have a 64-bit component", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pViewportState-04892", "If the pipeline requires pre-rasterization shader state, and the graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled, pViewportState must be a valid pointer to a valid VkPipelineViewportStateCreateInfo structure", "1.3-extensions"},
+ {"VUID-VkGraphicsPipelineCreateInfo-pViewportState-09025", "If pViewportState is not NULL it must be a valid pointer to a valid VkPipelineViewportStateCreateInfo structure", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pipelineCreationCacheControl-02878", "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", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pipelineProtectedAccess-07368", "If the pipelineProtectedAccess feature is not enabled, flags must not include VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT or VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pipelineStageCreationFeedbackCount-06594", "If VkPipelineCreationFeedbackCreateInfo::pipelineStageCreationFeedbackCount is not 0, it must be equal to stageCount", "1.3-extensions"},
@@ -2844,19 +2894,14 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkGraphicsPipelineCreateInfo-rasterizationSamples-04899", "If the pipeline requires fragment shader state, and the VK_QCOM_render_pass_shader_resolve extension is enabled, rasterizationSamples is not dynamic, and if subpass has any input attachments, and if the subpass description contains VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM, then the sample count of the input attachments must equal rasterizationSamples", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02319", "If the pipeline requires pre-rasterization shader state, and a VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream value other than zero is specified, all variables in the output interface of the entry point being compiled decorated with Position, PointSize, ClipDistance, or CullDistance must be decorated with identical Stream values that match the rasterizationStream", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02320", "If the pipeline requires pre-rasterization shader state, and VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream is zero, or not specified, all variables in the output interface of the entry point being compiled decorated with Position, PointSize, ClipDistance, or CullDistance must be decorated with a Stream value of zero, or must not specify the Stream decoration", "1.3-extensions"},
- {"VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00750", "If the pipeline requires pre-rasterization shader state, and the rasterizerDiscardEnable member of pRasterizationState is VK_FALSE, pViewportState must be a valid pointer to a valid VkPipelineViewportStateCreateInfo structure", "1.3-extensions"},
- {"VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00751", "If the pipeline requires fragment output interface state, pMultisampleState must be a valid pointer to a valid VkPipelineMultisampleStateCreateInfo structure", "1.3-extensions"},
+ {"VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-09024", "If the pipeline requires pre-rasterization shader state, and the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state is enabled or the rasterizerDiscardEnable member of pRasterizationState is VK_FALSE, and either the VK_EXT_extended_dynamic_state3 extension is not enabled, or either the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT or VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic states are not set, pViewportState must be a valid pointer to a valid VkPipelineViewportStateCreateInfo structure", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-renderPass-06038", "If renderPass is not VK_NULL_HANDLE and the pipeline is being created with fragment shader state the fragment shader must not read from any input attachment that is defined as VK_ATTACHMENT_UNUSED in subpass", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-renderPass-06041", "If renderPass is not VK_NULL_HANDLE, and the pipeline is being created with fragment output interface state, then for each color attachment in the subpass, if the potential format features of the format of the corresponding attachment description do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE", "1.3-extensions"},
- {"VUID-VkGraphicsPipelineCreateInfo-renderPass-06043", "If renderPass is not VK_NULL_HANDLE, the pipeline is being created with fragment shader state, and subpass uses a depth/stencil attachment, pDepthStencilState must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure", "1.3-extensions"},
- {"VUID-VkGraphicsPipelineCreateInfo-renderPass-06044", "If renderPass is not VK_NULL_HANDLE, the pipeline is being created with fragment output interface state, and subpass uses color attachments, pColorBlendState must be a valid pointer to a valid VkPipelineColorBlendStateCreateInfo structure", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-renderPass-06046", "If renderPass is not VK_NULL_HANDLE, subpass must be a valid subpass within renderPass", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-renderPass-06047", "If renderPass is not VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, subpass viewMask is not 0, and multiviewTessellationShader is not enabled, then pStages must not include tessellation shaders", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-renderPass-06048", "If renderPass is not VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, subpass viewMask is not 0, and multiviewGeometryShader is not enabled, then pStages must not include a geometry shader", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-renderPass-06049", "If renderPass is not VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, and subpass viewMask is not 0, all of the shaders in the pipeline must not write to the Layer built-in output", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-renderPass-06050", "If renderPass is not VK_NULL_HANDLE and the pipeline is being created with pre-rasterization shader state, and subpass viewMask is not 0, then all of the shaders in the pipeline must not include variables decorated with the Layer built-in decoration in their interfaces", "1.3-extensions"},
- {"VUID-VkGraphicsPipelineCreateInfo-renderPass-06053", "If renderPass is VK_NULL_HANDLE, the pipeline is being created with fragment shader state and fragment output interface state, and either of VkPipelineRenderingCreateInfo::depthAttachmentFormat or VkPipelineRenderingCreateInfo::stencilAttachmentFormat are not VK_FORMAT_UNDEFINED, pDepthStencilState must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure", "1.3-extensions"},
- {"VUID-VkGraphicsPipelineCreateInfo-renderPass-06054", "If renderPass is VK_NULL_HANDLE, the pipeline is being created with fragment output interface state, and VkPipelineRenderingCreateInfo::colorAttachmentCount is not equal to 0, pColorBlendState must be a valid pointer to a valid VkPipelineColorBlendStateCreateInfo structure", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-renderPass-06055", "If renderPass is VK_NULL_HANDLE and the pipeline is being created with fragment output interface state, pColorBlendState->attachmentCount must be equal to VkPipelineRenderingCreateInfo::colorAttachmentCount", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-renderPass-06057", "If renderPass is VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, VkPipelineRenderingCreateInfo::viewMask is not 0, and the multiviewTessellationShader feature is not enabled, then pStages must not include tessellation shaders", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-renderPass-06058", "If renderPass is VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, VkPipelineRenderingCreateInfo::viewMask is not 0, and the multiviewGeometryShader feature is not enabled, then pStages must not include a geometry shader", "1.3-extensions"},
@@ -2876,8 +2921,8 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkGraphicsPipelineCreateInfo-renderPass-06587", "If the pipeline requires fragment output interface state, renderPass is VK_NULL_HANDLE, and VkPipelineRenderingCreateInfo::depthAttachmentFormat is not VK_FORMAT_UNDEFINED, it must be a format that includes a depth component", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-renderPass-06588", "If the pipeline requires fragment output interface state, renderPass is VK_NULL_HANDLE, and VkPipelineRenderingCreateInfo::stencilAttachmentFormat is not VK_FORMAT_UNDEFINED, it must be a format that includes a stencil component", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-renderPass-06589", "If the pipeline requires fragment output interface state, renderPass is VK_NULL_HANDLE, VkPipelineRenderingCreateInfo::depthAttachmentFormat is not VK_FORMAT_UNDEFINED, and VkPipelineRenderingCreateInfo::stencilAttachmentFormat is not VK_FORMAT_UNDEFINED, depthAttachmentFormat must equal stencilAttachmentFormat", "1.3-extensions"},
- {"VUID-VkGraphicsPipelineCreateInfo-renderPass-06590", "If renderPass is VK_NULL_HANDLE and the pipeline is being created with fragment shader state but not fragment output interface state, pDepthStencilState must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-renderPass-06595", "If renderPass is VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state or fragment shader state, and VkMultiviewPerViewAttributesInfoNVX::perViewAttributesPositionXOnly is VK_TRUE then VkMultiviewPerViewAttributesInfoNVX::perViewAttributes must also be VK_TRUE", "1.3-extensions"},
+ {"VUID-VkGraphicsPipelineCreateInfo-renderPass-06603", "If pre-rasterization shader state, fragment shader state, or fragment output state, and renderPass is not VK_NULL_HANDLE, renderPass must be a valid VkRenderPass handle", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-renderPass-06854", "If renderPass is not VK_NULL_HANDLE, the VK_EXT_multisampled_render_to_single_sampled extension is enabled, rasterizationSamples is not dynamic, and subpass has a VkMultisampledRenderToSingleSampledInfoEXT structure included in the VkSubpassDescription2::pNext chain with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the rasterizationSamples member of pMultisampleState must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-renderPass-07064", "If renderPass is not VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, subpass viewMask is not 0, and multiviewMeshShader is not enabled, then pStages must not include a mesh shader", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-renderPass-07609", "If renderPass is not VK_NULL_HANDLE, and the pipeline is being created with fragment output interface state, and the pColorBlendState pointer is not NULL, and the subpass uses color attachments, the attachmentCount member of pColorBlendState must be equal to the colorAttachmentCount used to create subpass", "1.3-extensions"},
@@ -2887,6 +2932,11 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkGraphicsPipelineCreateInfo-renderPass-07720", "If renderPass is VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, and VkPipelineRenderingCreateInfo::viewMask is not 0, and multiviewMeshShader is not enabled, then pStages must not include a mesh shader", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-renderPass-08710", "If the pipeline requires fragment shader state and renderPass is not VK_NULL_HANDLE, fragment shaders in pStages must not include any of the TileImageColorReadAccessEXT, TileImageDepthReadAccessEXT, or TileImageStencilReadAccessEXT capabilities", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-renderPass-08744", "If renderPass is VK_NULL_HANDLE, the pipeline requires fragment output state or fragment shader state, the pipeline enables sample shading, rasterizationSamples is not dynamic, and the pNext chain includes a VkPipelineRenderingCreateInfo structure, rasterizationSamples must be a bit value that is set in imageCreateSampleCounts (as defined in Image Creation Limits) for every element of depthAttachmentFormat, stencilAttachmentFormat and the pColorAttachmentFormats array which is not VK_FORMAT_UNDEFINED", "1.3-extensions"},
+ {"VUID-VkGraphicsPipelineCreateInfo-renderPass-09028", "If renderPass is not VK_NULL_HANDLE, the pipeline is being created with fragment shader state, and subpass uses a depth/stencil attachment, and the VK_EXT_extended_dynamic_state3 extension is not enabled or, any of the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE, VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE, VK_DYNAMIC_STATE_DEPTH_COMPARE_OP, VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE, VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE, VK_DYNAMIC_STATE_STENCIL_OP, or VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic states are not set, pDepthStencilState must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure", "1.3-extensions"},
+ {"VUID-VkGraphicsPipelineCreateInfo-renderPass-09030", "If renderPass is not VK_NULL_HANDLE, the pipeline is being created with fragment output interface state, and subpass uses color attachments, and VK_EXT_extended_dynamic_state3 extension is not enabled, or any of the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT, VK_DYNAMIC_STATE_LOGIC_OP_EXT, VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT, VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT, VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, or VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic states are not set, pColorBlendState must be a valid pointer to a valid VkPipelineColorBlendStateCreateInfo structure", "1.3-extensions"},
+ {"VUID-VkGraphicsPipelineCreateInfo-renderPass-09033", "If renderPass is VK_NULL_HANDLE, the pipeline is being created with fragment shader state and fragment output interface state, and either of VkPipelineRenderingCreateInfo::depthAttachmentFormat or VkPipelineRenderingCreateInfo::stencilAttachmentFormat are not VK_FORMAT_UNDEFINED, and the VK_EXT_extended_dynamic_state3 extension is not enabled or any of the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE, VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE, VK_DYNAMIC_STATE_DEPTH_COMPARE_OP, VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE, VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE, VK_DYNAMIC_STATE_STENCIL_OP, or VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic states are not set, pDepthStencilState must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure", "1.3-extensions"},
+ {"VUID-VkGraphicsPipelineCreateInfo-renderPass-09035", "If renderPass is VK_NULL_HANDLE and the pipeline is being created with fragment shader state but not fragment output interface state, and the VK_EXT_extended_dynamic_state3 extension is not enabled, or any of the VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE, VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE, VK_DYNAMIC_STATE_DEPTH_COMPARE_OP, VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE, VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE, VK_DYNAMIC_STATE_STENCIL_OP, or VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic states are not set, pDepthStencilState must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure", "1.3-extensions"},
+ {"VUID-VkGraphicsPipelineCreateInfo-renderPass-09037", "If renderPass is VK_NULL_HANDLE, the pipeline is being created with fragment output interface state, and VkPipelineRenderingCreateInfo::colorAttachmentCount is not equal to 0, and the VK_EXT_extended_dynamic_state3 extension is not enabled, or any of the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT, VK_DYNAMIC_STATE_LOGIC_OP_EXT, VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT, VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT, VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, or VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic states are not set, pColorBlendState must be a valid pointer to a valid VkPipelineColorBlendStateCreateInfo structure", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-renderpass-06624", "If renderpass is not VK_NULL_HANDLE, VkGraphicsPipelineLibraryCreateInfoEXT::flags includes at least one of and no more than two of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes one of the other flags, renderPass must be compatible with that used to create the library", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-renderpass-06625", "If renderpass is VK_NULL_HANDLE, VkGraphicsPipelineLibraryCreateInfoEXT::flags includes at least one of and no more than two of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes one of the other flags, the value of renderPass used to create that library must also be VK_NULL_HANDLE", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-renderpass-06631", "If the pipeline requires fragment shader state and renderpass is not VK_NULL_HANDLE, then pMultisampleState must not be NULL", "1.3-extensions"},
@@ -2896,6 +2946,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkGraphicsPipelineCreateInfo-sampleShadingEnable-04900", "If the pipeline requires fragment shader state, and the VK_QCOM_render_pass_shader_resolve extension is enabled, and if the subpass description contains VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM, then sampleShadingEnable must be false", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-stage-02096", "If the pipeline requires pre-rasterization shader state the stage member of one element of pStages must be either VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-stage-06897", "If the pipeline requires fragment shader state and/or pre-rasterization shader state, any value of stage must not be set in more than one element of pStages", "1.3-extensions"},
+ {"VUID-VkGraphicsPipelineCreateInfo-stageCount-06604", "If the pipeline requires pre-rasterization shader state or fragment shader state, stageCount must be greater than 0", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-stippledLineEnable-02767", "If the pipeline requires pre-rasterization shader state, the stippledLineEnable member of VkPipelineRasterizationLineStateCreateInfoEXT is VK_TRUE, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_LINE_STIPPLE_EXT, then the lineStippleFactor member of VkPipelineRasterizationLineStateCreateInfoEXT must be in the range [1,256]", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-subpass-00758", "If the pipeline requires fragment output interface state, rasterizationSamples is not dynamic, and subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples member of pMultisampleState must follow the rules for a zero-attachment subpass", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-subpass-01411", "If the pipeline requires fragment output interface state, the VK_NV_framebuffer_mixed_samples extension is enabled, rasterizationSamples is not dynamic, and if subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled, then the rasterizationSamples member of pMultisampleState must be the same as the sample count of the depth/stencil attachment", "1.3-extensions"},
@@ -2930,6 +2981,27 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkHeadlessSurfaceCreateInfoEXT-flags-zerobitmask", "flags must be 0", "1.3-extensions"},
{"VUID-VkHeadlessSurfaceCreateInfoEXT-pNext-pNext", "pNext must be NULL", "1.3-extensions"},
{"VUID-VkHeadlessSurfaceCreateInfoEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT", "1.3-extensions"},
+ {"VUID-VkHostImageCopyDevicePerformanceQueryEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT", "1.3-extensions"},
+ {"VUID-VkHostImageLayoutTransitionInfoEXT-aspectMask-08702", "If the aspectMask member of subresourceRange includes VK_IMAGE_ASPECT_DEPTH_BIT, oldLayout and newLayout must not be one of VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL", "1.3-extensions"},
+ {"VUID-VkHostImageLayoutTransitionInfoEXT-aspectMask-08703", "If the aspectMask member of subresourceRange includes VK_IMAGE_ASPECT_STENCIL_BIT, oldLayout and newLayout must not be one of VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL", "1.3-extensions"},
+ {"VUID-VkHostImageLayoutTransitionInfoEXT-image-01671", "If image has a single-plane color format or is not disjoint, then the aspectMask member of subresourceRange must be VK_IMAGE_ASPECT_COLOR_BIT", "1.3-extensions"},
+ {"VUID-VkHostImageLayoutTransitionInfoEXT-image-01672", "If image has a multi-planar format and the image is disjoint, then the aspectMask member of subresourceRange must include at least one multi-planar aspect mask or VK_IMAGE_ASPECT_COLOR_BIT", "1.3-extensions"},
+ {"VUID-VkHostImageLayoutTransitionInfoEXT-image-01932", "If image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", "1.3-extensions"},
+ {"VUID-VkHostImageLayoutTransitionInfoEXT-image-03319", "If image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is enabled, then the aspectMask member of subresourceRange must include either or both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT", "1.3-extensions"},
+ {"VUID-VkHostImageLayoutTransitionInfoEXT-image-03320", "If image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is not enabled, then the aspectMask member of subresourceRange must include both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT", "1.3-extensions"},
+ {"VUID-VkHostImageLayoutTransitionInfoEXT-image-09055", "image must have been created with VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT", "1.3-extensions"},
+ {"VUID-VkHostImageLayoutTransitionInfoEXT-image-parameter", "image must be a valid VkImage handle", "1.3-extensions"},
+ {"VUID-VkHostImageLayoutTransitionInfoEXT-newLayout-09057", "newLayout must be one of the layouts in VkPhysicalDeviceHostImageCopyPropertiesEXT::pCopyDstLayouts", "1.3-extensions"},
+ {"VUID-VkHostImageLayoutTransitionInfoEXT-newLayout-parameter", "newLayout must be a valid VkImageLayout value", "1.3-extensions"},
+ {"VUID-VkHostImageLayoutTransitionInfoEXT-oldLayout-09056", "oldLayout must be either VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_PREINITIALIZED, or one of the layouts in VkPhysicalDeviceHostImageCopyPropertiesEXT::pCopySrcLayouts", "1.3-extensions"},
+ {"VUID-VkHostImageLayoutTransitionInfoEXT-oldLayout-parameter", "oldLayout must be a valid VkImageLayout value", "1.3-extensions"},
+ {"VUID-VkHostImageLayoutTransitionInfoEXT-pNext-pNext", "pNext must be NULL", "1.3-extensions"},
+ {"VUID-VkHostImageLayoutTransitionInfoEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT", "1.3-extensions"},
+ {"VUID-VkHostImageLayoutTransitionInfoEXT-subresourceRange-01486", "subresourceRange.baseMipLevel must be less than the mipLevels specified in VkImageCreateInfo when image was created", "1.3-extensions"},
+ {"VUID-VkHostImageLayoutTransitionInfoEXT-subresourceRange-01488", "subresourceRange.baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created", "1.3-extensions"},
+ {"VUID-VkHostImageLayoutTransitionInfoEXT-subresourceRange-01724", "If subresourceRange.levelCount is not VK_REMAINING_MIP_LEVELS, subresourceRange.baseMipLevel + subresourceRange.levelCount must be less than or equal to the mipLevels specified in VkImageCreateInfo when image was created", "1.3-extensions"},
+ {"VUID-VkHostImageLayoutTransitionInfoEXT-subresourceRange-01725", "If subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, subresourceRange.baseArrayLayer + subresourceRange.layerCount must be less than or equal to the arrayLayers specified in VkImageCreateInfo when image was created", "1.3-extensions"},
+ {"VUID-VkHostImageLayoutTransitionInfoEXT-subresourceRange-parameter", "subresourceRange must be a valid VkImageSubresourceRange structure", "1.3-extensions"},
{"VUID-VkIOSSurfaceCreateInfoMVK-flags-zerobitmask", "flags must be 0", "1.3-extensions"},
{"VUID-VkIOSSurfaceCreateInfoMVK-pNext-pNext", "pNext must be NULL", "1.3-extensions"},
{"VUID-VkIOSSurfaceCreateInfoMVK-pView-01316", "If pView is a UIView object, it must be a valid UIView, must be backed by a CALayer object of type CAMetalLayer, and vkCreateIOSSurfaceMVK must be called on the main thread", "1.3-extensions"},
@@ -3036,6 +3108,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkImageCreateInfo-fragmentDensityMapOffset-06514", "If the fragmentDensityMapOffset feature is not enabled and usage includes VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, extent.width must be less than or equal to the ceiling of maxFramebufferWidth/minFragmentDensityTexelSize.width", "1.3-extensions"},
{"VUID-VkImageCreateInfo-fragmentDensityMapOffset-06515", "If the fragmentDensityMapOffset feature is not enabled and usage includes VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, extent.height must be less than or equal to the ceiling of maxFramebufferHeight/minFragmentDensityTexelSize.height", "1.3-extensions"},
{"VUID-VkImageCreateInfo-imageCreateFormatFeatures-02260", "If format is a multi-planar format, and if imageCreateFormatFeatures (as defined in Image Creation Limits) does not contain VK_FORMAT_FEATURE_DISJOINT_BIT, then flags must not contain VK_IMAGE_CREATE_DISJOINT_BIT", "1.3-extensions"},
+ {"VUID-VkImageCreateInfo-imageCreateFormatFeatures-09048", "If imageCreateFormatFeatures (as defined in Image Creation Limits) does not contain VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT, then usage must not contain VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT", "1.3-extensions"},
{"VUID-VkImageCreateInfo-imageCreateMaxMipLevels-02251", "Each of the following values (as described in Image Creation Limits) must not be undefined : imageCreateMaxMipLevels, imageCreateMaxArrayLayers, imageCreateMaxExtent, and imageCreateSampleCounts", "1.3-extensions"},
{"VUID-VkImageCreateInfo-imageType-00956", "If imageType is VK_IMAGE_TYPE_1D, both extent.height and extent.depth must be 1", "1.3-extensions"},
{"VUID-VkImageCreateInfo-imageType-00957", "If imageType is VK_IMAGE_TYPE_2D, extent.depth must be 1", "1.3-extensions"},
@@ -3137,19 +3210,26 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkImageFormatConstraintsInfoFUCHSIA-sType-sType", "sType must be VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA", "1.3-extensions"},
{"VUID-VkImageFormatListCreateInfo-pViewFormats-parameter", "If viewFormatCount is not 0, pViewFormats must be a valid pointer to an array of viewFormatCount valid VkFormat values", "1.3-extensions"},
{"VUID-VkImageFormatListCreateInfo-sType-sType", "sType must be VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO", "1.3-extensions"},
- {"VUID-VkImageFormatProperties2-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 VkAndroidHardwareBufferUsageANDROID, VkExternalImageFormatProperties, VkFilterCubicImageViewImageFormatPropertiesEXT, VkImageCompressionPropertiesEXT, VkSamplerYcbcrConversionImageFormatProperties, or VkTextureLODGatherFormatPropertiesAMD", "1.3-extensions"},
+ {"VUID-VkImageFormatProperties2-pNext-09005", "If VkHostImageCopyDevicePerformanceQueryEXT is included in a pNext chain, the hostImageCopy feature must be enabled", "1.3-extensions"},
+ {"VUID-VkImageFormatProperties2-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 VkAndroidHardwareBufferUsageANDROID, VkExternalImageFormatProperties, VkFilterCubicImageViewImageFormatPropertiesEXT, VkHostImageCopyDevicePerformanceQueryEXT, VkImageCompressionPropertiesEXT, VkSamplerYcbcrConversionImageFormatProperties, or VkTextureLODGatherFormatPropertiesAMD", "1.3-extensions"},
{"VUID-VkImageFormatProperties2-sType-sType", "sType must be VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2", "1.3-extensions"},
{"VUID-VkImageFormatProperties2-sType-unique", "The sType value of each struct in the pNext chain must be unique", "1.3-extensions"},
+ {"VUID-VkImageMemoryBarrier-None-09052", "If the synchronization2 feature is not enabled, and image was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, at least one of srcQueueFamilyIndex and dstQueueFamilyIndex must be VK_QUEUE_FAMILY_IGNORED", "1.3-extensions"},
+ {"VUID-VkImageMemoryBarrier-None-09053", "If the synchronization2 feature is not enabled, and image was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, srcQueueFamilyIndex must be VK_QUEUE_FAMILY_IGNORED or VK_QUEUE_FAMILY_EXTERNAL", "1.3-extensions"},
+ {"VUID-VkImageMemoryBarrier-None-09054", "If the synchronization2 feature is not enabled, and image was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, dstQueueFamilyIndex must be VK_QUEUE_FAMILY_IGNORED or VK_QUEUE_FAMILY_EXTERNAL", "1.3-extensions"},
+ {"VUID-VkImageMemoryBarrier-None-09119", "If the VK_KHR_external_memory extension is not enabled, and the value of VkApplicationInfo::apiVersion used to create the VkInstance is not greater than or equal to Version 1.1, srcQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL", "1.3-extensions"},
+ {"VUID-VkImageMemoryBarrier-None-09120", "If the VK_KHR_external_memory extension is not enabled, and the value of VkApplicationInfo::apiVersion used to create the VkInstance is not greater than or equal to Version 1.1, dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier-aspectMask-08702", "If the aspectMask member of subresourceRange includes VK_IMAGE_ASPECT_DEPTH_BIT, oldLayout and newLayout must not be one of VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier-aspectMask-08703", "If the aspectMask member of subresourceRange includes VK_IMAGE_ASPECT_STENCIL_BIT, oldLayout and newLayout must not be one of VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier-attachmentFeedbackLoopLayout-07313", "If the attachmentFeedbackLoopLayout feature is not enabled, newLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT", "1.3-extensions"},
+ {"VUID-VkImageMemoryBarrier-dstQueueFamilyIndex-09122", "If the VK_EXT_queue_family_foreign extension is not enabled dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_FOREIGN_EXT", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier-image-01671", "If image has a single-plane color format or is not disjoint, then the aspectMask member of subresourceRange must be VK_IMAGE_ASPECT_COLOR_BIT", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier-image-01672", "If image has a multi-planar format and the image is disjoint, then the aspectMask member of subresourceRange must include at least one multi-planar aspect mask or VK_IMAGE_ASPECT_COLOR_BIT", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier-image-01932", "If image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier-image-03319", "If image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is enabled, then the aspectMask member of subresourceRange must include either or both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier-image-03320", "If image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is not enabled, then the aspectMask member of subresourceRange must include both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT", "1.3-extensions"},
- {"VUID-VkImageMemoryBarrier-image-04071", "If image was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, and one of srcQueueFamilyIndex and dstQueueFamilyIndex is one of the special queue family values reserved for external memory transfers, the other must be VK_QUEUE_FAMILY_IGNORED", "1.3-extensions"},
- {"VUID-VkImageMemoryBarrier-image-04072", "If image was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex and dstQueueFamilyIndex must both be valid queue families, or one of the special queue family values reserved for external memory transfers, as described in Queue Family Ownership Transfer", "1.3-extensions"},
+ {"VUID-VkImageMemoryBarrier-image-09117", "If image was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex must be VK_QUEUE_FAMILY_EXTERNAL, VK_QUEUE_FAMILY_FOREIGN_EXT, or a valid queue family", "1.3-extensions"},
+ {"VUID-VkImageMemoryBarrier-image-09118", "If image was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, dstQueueFamilyIndex must be VK_QUEUE_FAMILY_EXTERNAL, VK_QUEUE_FAMILY_FOREIGN_EXT, or a valid queue family", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier-image-parameter", "image must be a valid VkImage handle", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier-newLayout-01198", "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, newLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier-newLayout-parameter", "newLayout must be a valid VkImageLayout value", "1.3-extensions"},
@@ -3173,7 +3253,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04066", "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT set", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04067", "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL then image must have been created with at least one of VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_SAMPLED_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04068", "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT set", "1.3-extensions"},
- {"VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04070", "If srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, at least one must not be a special queue family reserved for external memory ownership transfers, as described in Queue Family Ownership Transfer", "1.3-extensions"},
+ {"VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04070", "If srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, at least one of srcQueueFamilyIndex or dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL or VK_QUEUE_FAMILY_FOREIGN_EXT", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-07006", "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT then image must have been created with either the VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT or VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT usage bits, and the VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT or VK_IMAGE_USAGE_SAMPLED_BIT usage bits, and the VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT usage bit", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-07120", "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-07121", "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR", "1.3-extensions"},
@@ -3181,14 +3261,16 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-07123", "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-07124", "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-07125", "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR", "1.3-extensions"},
+ {"VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-09121", "If the VK_EXT_queue_family_foreign extension is not enabled srcQueueFamilyIndex must not be VK_QUEUE_FAMILY_FOREIGN_EXT", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier-subresourceRange-01486", "subresourceRange.baseMipLevel must be less than the mipLevels specified in VkImageCreateInfo when image was created", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier-subresourceRange-01488", "subresourceRange.baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier-subresourceRange-01724", "If subresourceRange.levelCount is not VK_REMAINING_MIP_LEVELS, subresourceRange.baseMipLevel + subresourceRange.levelCount must be less than or equal to the mipLevels specified in VkImageCreateInfo when image was created", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier-subresourceRange-01725", "If subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, subresourceRange.baseArrayLayer + subresourceRange.layerCount must be less than or equal to the arrayLayers specified in VkImageCreateInfo when image was created", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier-subresourceRange-parameter", "subresourceRange must be a valid VkImageSubresourceRange structure", "1.3-extensions"},
- {"VUID-VkImageMemoryBarrier-synchronization2-03857", "If the synchronization2 feature is not enabled, and image was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, at least one of srcQueueFamilyIndex and dstQueueFamilyIndex must be VK_QUEUE_FAMILY_IGNORED", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier-synchronization2-07793", "If the synchronization2 feature is not enabled, oldLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR or VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier-synchronization2-07794", "If the synchronization2 feature is not enabled, newLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR or VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR", "1.3-extensions"},
+ {"VUID-VkImageMemoryBarrier2-None-09119", "If the VK_KHR_external_memory extension is not enabled, and the value of VkApplicationInfo::apiVersion used to create the VkInstance is not greater than or equal to Version 1.1, srcQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL", "1.3-extensions"},
+ {"VUID-VkImageMemoryBarrier2-None-09120", "If the VK_KHR_external_memory extension is not enabled, and the value of VkApplicationInfo::apiVersion used to create the VkInstance is not greater than or equal to Version 1.1, dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier2-aspectMask-08702", "If the aspectMask member of subresourceRange includes VK_IMAGE_ASPECT_DEPTH_BIT, oldLayout and newLayout must not be one of VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier2-aspectMask-08703", "If the aspectMask member of subresourceRange includes VK_IMAGE_ASPECT_STENCIL_BIT, oldLayout and newLayout must not be one of VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier2-attachmentFeedbackLoopLayout-07313", "If the attachmentFeedbackLoopLayout feature is not enabled, newLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT", "1.3-extensions"},
@@ -3234,6 +3316,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkImageMemoryBarrier2-dstAccessMask-07458", "If pname:dstAccessMask includes VK_ACCESS_2_MICROMAP_READ_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier2-dstAccessMask-08118", "If pname:dstAccessMask includes VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of VK_PIPELINE_STAGE_*_SHADER_BIT stages", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier2-dstAccessMask-parameter", "dstAccessMask must be a valid combination of VkAccessFlagBits2 values", "1.3-extensions"},
+ {"VUID-VkImageMemoryBarrier2-dstQueueFamilyIndex-09122", "If the VK_EXT_queue_family_foreign extension is not enabled dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_FOREIGN_EXT", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier2-dstStageMask-03929", "If the geometryShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier2-dstStageMask-03930", "If the tessellationShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier2-dstStageMask-03931", "If the conditionalRendering feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT", "1.3-extensions"},
@@ -3251,8 +3334,8 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkImageMemoryBarrier2-image-01932", "If image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier2-image-03319", "If image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is enabled, then the aspectMask member of subresourceRange must include either or both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier2-image-03320", "If image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is not enabled, then the aspectMask member of subresourceRange must include both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT", "1.3-extensions"},
- {"VUID-VkImageMemoryBarrier2-image-04071", "If image was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, and one of srcQueueFamilyIndex and dstQueueFamilyIndex is one of the special queue family values reserved for external memory transfers, the other must be VK_QUEUE_FAMILY_IGNORED", "1.3-extensions"},
- {"VUID-VkImageMemoryBarrier2-image-04072", "If image was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex and dstQueueFamilyIndex must both be valid queue families, or one of the special queue family values reserved for external memory transfers, as described in Queue Family Ownership Transfer", "1.3-extensions"},
+ {"VUID-VkImageMemoryBarrier2-image-09117", "If image was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex must be VK_QUEUE_FAMILY_EXTERNAL, VK_QUEUE_FAMILY_FOREIGN_EXT, or a valid queue family", "1.3-extensions"},
+ {"VUID-VkImageMemoryBarrier2-image-09118", "If image was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, dstQueueFamilyIndex must be VK_QUEUE_FAMILY_EXTERNAL, VK_QUEUE_FAMILY_FOREIGN_EXT, or a valid queue family", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier2-image-parameter", "image must be a valid VkImage handle", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier2-newLayout-01198", "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, newLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier2-newLayout-parameter", "newLayout must be a valid VkImageLayout value", "1.3-extensions"},
@@ -3318,7 +3401,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04066", "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT set", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04067", "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL then image must have been created with at least one of VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_SAMPLED_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04068", "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT set", "1.3-extensions"},
- {"VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04070", "If srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, at least one must not be a special queue family reserved for external memory ownership transfers, as described in Queue Family Ownership Transfer", "1.3-extensions"},
+ {"VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04070", "If srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, at least one of srcQueueFamilyIndex or dstQueueFamilyIndex must not be VK_QUEUE_FAMILY_EXTERNAL or VK_QUEUE_FAMILY_FOREIGN_EXT", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07006", "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT then image must have been created with either the VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT or VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT usage bits, and the VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT or VK_IMAGE_USAGE_SAMPLED_BIT usage bits, and the VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT usage bit", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07120", "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07121", "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR", "1.3-extensions"},
@@ -3326,6 +3409,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07123", "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07124", "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07125", "If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR then image must have been created with VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR", "1.3-extensions"},
+ {"VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-09121", "If the VK_EXT_queue_family_foreign extension is not enabled srcQueueFamilyIndex must not be VK_QUEUE_FAMILY_FOREIGN_EXT", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier2-srcStageMask-03854", "If either srcStageMask or dstStageMask includes VK_PIPELINE_STAGE_2_HOST_BIT, srcQueueFamilyIndex and dstQueueFamilyIndex must be equal", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier2-srcStageMask-03855", "If srcStageMask includes VK_PIPELINE_STAGE_2_HOST_BIT, and srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, oldLayout must be one of VK_IMAGE_LAYOUT_PREINITIALIZED, VK_IMAGE_LAYOUT_UNDEFINED, or VK_IMAGE_LAYOUT_GENERAL", "1.3-extensions"},
{"VUID-VkImageMemoryBarrier2-srcStageMask-03929", "If the geometryShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT", "1.3-extensions"},
@@ -3643,10 +3727,13 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkIndirectCommandsLayoutCreateInfoNV-pStreamStrides-parameter", "pStreamStrides must be a valid pointer to an array of streamCount uint32_t values", "1.3-extensions"},
{"VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02932", "If pTokens contains an entry of VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV it must be the first element of the array and there must be only a single element of such token type", "1.3-extensions"},
{"VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02933", "If pTokens contains an entry of VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV there must be only a single element of such token type", "1.3-extensions"},
- {"VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02934", "All state tokens in pTokens must occur before any work provoking tokens (VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV, VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV, VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV, VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV)", "1.3-extensions"},
+ {"VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02934", "All state tokens in pTokens must occur before any work provoking tokens (VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV, VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV, VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV, VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV , VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV )", "1.3-extensions"},
{"VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02935", "The content of pTokens must include one single work provoking token that is compatible with the pipelineBindPoint", "1.3-extensions"},
{"VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-parameter", "pTokens must be a valid pointer to an array of tokenCount valid VkIndirectCommandsLayoutTokenNV structures", "1.3-extensions"},
- {"VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-02930", "The pipelineBindPoint must be VK_PIPELINE_BIND_POINT_GRAPHICS", "1.3-extensions"},
+ {"VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-02930", "The pipelineBindPoint must be VK_PIPELINE_BIND_POINT_GRAPHICS or VK_PIPELINE_BIND_POINT_COMPUTE", "1.3-extensions"},
+ {"VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-09088", "If pipelineBindPoint is VK_PIPELINE_BIND_POINT_COMPUTE then the VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedCompute feature must be enabled", "1.3-extensions"},
+ {"VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-09089", "If pipelineBindPoint is VK_PIPELINE_BIND_POINT_COMPUTE then the state tokens in pTokens must only include VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV, VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV, or VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV", "1.3-extensions"},
+ {"VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-09090", "If pipelineBindPoint is VK_PIPELINE_BIND_POINT_COMPUTE and pTokens includes VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV, then the VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputePipelines feature must be enabled", "1.3-extensions"},
{"VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-parameter", "pipelineBindPoint must be a valid VkPipelineBindPoint value", "1.3-extensions"},
{"VUID-VkIndirectCommandsLayoutCreateInfoNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV", "1.3-extensions"},
{"VUID-VkIndirectCommandsLayoutCreateInfoNV-streamCount-02936", "streamCount must be greater than 0 and less or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectCommandsStreamCount", "1.3-extensions"},
@@ -4121,6 +4208,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkPhysicalDeviceDescriptorIndexingFeatures-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES", "1.3-extensions"},
{"VUID-VkPhysicalDeviceDescriptorIndexingProperties-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES", "1.3-extensions"},
{"VUID-VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE", "1.3-extensions"},
+ {"VUID-VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV", "1.3-extensions"},
{"VUID-VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV", "1.3-extensions"},
{"VUID-VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV", "1.3-extensions"},
{"VUID-VkPhysicalDeviceDeviceMemoryReportFeaturesEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT", "1.3-extensions"},
@@ -4179,6 +4267,10 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT", "1.3-extensions"},
{"VUID-VkPhysicalDeviceGroupProperties-pNext-pNext", "pNext must be NULL", "1.3-extensions"},
{"VUID-VkPhysicalDeviceGroupProperties-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES", "1.3-extensions"},
+ {"VUID-VkPhysicalDeviceHostImageCopyFeaturesEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT", "1.3-extensions"},
+ {"VUID-VkPhysicalDeviceHostImageCopyPropertiesEXT-pCopyDstLayouts-parameter", "If copyDstLayoutCount is not 0, and pCopyDstLayouts is not NULL, pCopyDstLayouts must be a valid pointer to an array of copyDstLayoutCount VkImageLayout values", "1.3-extensions"},
+ {"VUID-VkPhysicalDeviceHostImageCopyPropertiesEXT-pCopySrcLayouts-parameter", "If copySrcLayoutCount is not 0, and pCopySrcLayouts is not NULL, pCopySrcLayouts must be a valid pointer to an array of copySrcLayoutCount VkImageLayout values", "1.3-extensions"},
+ {"VUID-VkPhysicalDeviceHostImageCopyPropertiesEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT", "1.3-extensions"},
{"VUID-VkPhysicalDeviceHostQueryResetFeatures-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES", "1.3-extensions"},
{"VUID-VkPhysicalDeviceIDProperties-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES", "1.3-extensions"},
{"VUID-VkPhysicalDeviceImage2DViewOf3DFeaturesEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT", "1.3-extensions"},
@@ -4269,7 +4361,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT", "1.3-extensions"},
{"VUID-VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT", "1.3-extensions"},
{"VUID-VkPhysicalDevicePrivateDataFeatures-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES", "1.3-extensions"},
- {"VUID-VkPhysicalDeviceProperties2-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 VkPhysicalDeviceAccelerationStructurePropertiesKHR, VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI, VkPhysicalDeviceConservativeRasterizationPropertiesEXT, VkPhysicalDeviceCooperativeMatrixPropertiesKHR, VkPhysicalDeviceCooperativeMatrixPropertiesNV, VkPhysicalDeviceCopyMemoryIndirectPropertiesNV, VkPhysicalDeviceCustomBorderColorPropertiesEXT, VkPhysicalDeviceDepthStencilResolveProperties, VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT, VkPhysicalDeviceDescriptorBufferPropertiesEXT, VkPhysicalDeviceDescriptorIndexingProperties, VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV, VkPhysicalDeviceDiscardRectanglePropertiesEXT, VkPhysicalDeviceDisplacementMicromapPropertiesNV, VkPhysicalDeviceDriverProperties, VkPhysicalDeviceDrmPropertiesEXT, VkPhysicalDeviceExtendedDynamicState3PropertiesEXT, VkPhysicalDeviceExternalMemoryHostPropertiesEXT, VkPhysicalDeviceFloatControlsProperties, VkPhysicalDeviceFragmentDensityMap2PropertiesEXT, VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM, VkPhysicalDeviceFragmentDensityMapPropertiesEXT, VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR, VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV, VkPhysicalDeviceFragmentShadingRatePropertiesKHR, VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT, VkPhysicalDeviceIDProperties, VkPhysicalDeviceImageProcessingPropertiesQCOM, VkPhysicalDeviceInlineUniformBlockProperties, VkPhysicalDeviceLineRasterizationPropertiesEXT, VkPhysicalDeviceMaintenance3Properties, VkPhysicalDeviceMaintenance4Properties, VkPhysicalDeviceMemoryDecompressionPropertiesNV, VkPhysicalDeviceMeshShaderPropertiesEXT, VkPhysicalDeviceMeshShaderPropertiesNV, VkPhysicalDeviceMultiDrawPropertiesEXT, VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, VkPhysicalDeviceMultiviewProperties, VkPhysicalDeviceOpacityMicromapPropertiesEXT, VkPhysicalDeviceOpticalFlowPropertiesNV, VkPhysicalDevicePCIBusInfoPropertiesEXT, VkPhysicalDevicePerformanceQueryPropertiesKHR, VkPhysicalDevicePipelineRobustnessPropertiesEXT, VkPhysicalDevicePointClippingProperties, VkPhysicalDevicePortabilitySubsetPropertiesKHR, VkPhysicalDeviceProtectedMemoryProperties, VkPhysicalDeviceProvokingVertexPropertiesEXT, VkPhysicalDevicePushDescriptorPropertiesKHR, VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV, VkPhysicalDeviceRayTracingPipelinePropertiesKHR, VkPhysicalDeviceRayTracingPropertiesNV, VkPhysicalDeviceRobustness2PropertiesEXT, VkPhysicalDeviceSampleLocationsPropertiesEXT, VkPhysicalDeviceSamplerFilterMinmaxProperties, VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM, VkPhysicalDeviceShaderCoreProperties2AMD, VkPhysicalDeviceShaderCorePropertiesAMD, VkPhysicalDeviceShaderCorePropertiesARM, VkPhysicalDeviceShaderIntegerDotProductProperties, VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT, VkPhysicalDeviceShaderObjectPropertiesEXT, VkPhysicalDeviceShaderSMBuiltinsPropertiesNV, VkPhysicalDeviceShaderTileImagePropertiesEXT, VkPhysicalDeviceShadingRateImagePropertiesNV, VkPhysicalDeviceSubgroupProperties, VkPhysicalDeviceSubgroupSizeControlProperties, VkPhysicalDeviceSubpassShadingPropertiesHUAWEI, VkPhysicalDeviceTexelBufferAlignmentProperties, VkPhysicalDeviceTimelineSemaphoreProperties, VkPhysicalDeviceTransformFeedbackPropertiesEXT, VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, VkPhysicalDeviceVulkan11Properties, VkPhysicalDeviceVulkan12Properties, or VkPhysicalDeviceVulkan13Properties", "1.3-extensions"},
+ {"VUID-VkPhysicalDeviceProperties2-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 VkPhysicalDeviceAccelerationStructurePropertiesKHR, VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI, VkPhysicalDeviceConservativeRasterizationPropertiesEXT, VkPhysicalDeviceCooperativeMatrixPropertiesKHR, VkPhysicalDeviceCooperativeMatrixPropertiesNV, VkPhysicalDeviceCopyMemoryIndirectPropertiesNV, VkPhysicalDeviceCustomBorderColorPropertiesEXT, VkPhysicalDeviceDepthStencilResolveProperties, VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT, VkPhysicalDeviceDescriptorBufferPropertiesEXT, VkPhysicalDeviceDescriptorIndexingProperties, VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV, VkPhysicalDeviceDiscardRectanglePropertiesEXT, VkPhysicalDeviceDisplacementMicromapPropertiesNV, VkPhysicalDeviceDriverProperties, VkPhysicalDeviceDrmPropertiesEXT, VkPhysicalDeviceExtendedDynamicState3PropertiesEXT, VkPhysicalDeviceExternalMemoryHostPropertiesEXT, VkPhysicalDeviceFloatControlsProperties, VkPhysicalDeviceFragmentDensityMap2PropertiesEXT, VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM, VkPhysicalDeviceFragmentDensityMapPropertiesEXT, VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR, VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV, VkPhysicalDeviceFragmentShadingRatePropertiesKHR, VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT, VkPhysicalDeviceHostImageCopyPropertiesEXT, VkPhysicalDeviceIDProperties, VkPhysicalDeviceImageProcessingPropertiesQCOM, VkPhysicalDeviceInlineUniformBlockProperties, VkPhysicalDeviceLineRasterizationPropertiesEXT, VkPhysicalDeviceMaintenance3Properties, VkPhysicalDeviceMaintenance4Properties, VkPhysicalDeviceMemoryDecompressionPropertiesNV, VkPhysicalDeviceMeshShaderPropertiesEXT, VkPhysicalDeviceMeshShaderPropertiesNV, VkPhysicalDeviceMultiDrawPropertiesEXT, VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, VkPhysicalDeviceMultiviewProperties, VkPhysicalDeviceOpacityMicromapPropertiesEXT, VkPhysicalDeviceOpticalFlowPropertiesNV, VkPhysicalDevicePCIBusInfoPropertiesEXT, VkPhysicalDevicePerformanceQueryPropertiesKHR, VkPhysicalDevicePipelineRobustnessPropertiesEXT, VkPhysicalDevicePointClippingProperties, VkPhysicalDevicePortabilitySubsetPropertiesKHR, VkPhysicalDeviceProtectedMemoryProperties, VkPhysicalDeviceProvokingVertexPropertiesEXT, VkPhysicalDevicePushDescriptorPropertiesKHR, VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV, VkPhysicalDeviceRayTracingPipelinePropertiesKHR, VkPhysicalDeviceRayTracingPropertiesNV, VkPhysicalDeviceRobustness2PropertiesEXT, VkPhysicalDeviceSampleLocationsPropertiesEXT, VkPhysicalDeviceSamplerFilterMinmaxProperties, VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM, VkPhysicalDeviceShaderCoreProperties2AMD, VkPhysicalDeviceShaderCorePropertiesAMD, VkPhysicalDeviceShaderCorePropertiesARM, VkPhysicalDeviceShaderIntegerDotProductProperties, VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT, VkPhysicalDeviceShaderObjectPropertiesEXT, VkPhysicalDeviceShaderSMBuiltinsPropertiesNV, VkPhysicalDeviceShaderTileImagePropertiesEXT, VkPhysicalDeviceShadingRateImagePropertiesNV, VkPhysicalDeviceSubgroupProperties, VkPhysicalDeviceSubgroupSizeControlProperties, VkPhysicalDeviceSubpassShadingPropertiesHUAWEI, VkPhysicalDeviceTexelBufferAlignmentProperties, VkPhysicalDeviceTimelineSemaphoreProperties, VkPhysicalDeviceTransformFeedbackPropertiesEXT, VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, VkPhysicalDeviceVulkan11Properties, VkPhysicalDeviceVulkan12Properties, or VkPhysicalDeviceVulkan13Properties", "1.3-extensions"},
{"VUID-VkPhysicalDeviceProperties2-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2", "1.3-extensions"},
{"VUID-VkPhysicalDeviceProperties2-sType-unique", "The sType value of each struct in the pNext chain must be unique", "1.3-extensions"},
{"VUID-VkPhysicalDeviceProtectedMemoryFeatures-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES", "1.3-extensions"},
@@ -4482,6 +4574,13 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkPipelineExecutableStatisticKHR-sType-sType", "sType must be VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR", "1.3-extensions"},
{"VUID-VkPipelineFragmentShadingRateEnumStateCreateInfoNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV", "1.3-extensions"},
{"VUID-VkPipelineFragmentShadingRateStateCreateInfoKHR-sType-sType", "sType must be VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR", "1.3-extensions"},
+ {"VUID-VkPipelineIndirectDeviceAddressInfoNV-pNext-pNext", "pNext must be NULL", "1.3-extensions"},
+ {"VUID-VkPipelineIndirectDeviceAddressInfoNV-pipeline-09080", "pipeline must have been created with flag VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV set", "1.3-extensions"},
+ {"VUID-VkPipelineIndirectDeviceAddressInfoNV-pipeline-09081", "pipeline must have been created with a VkComputePipelineIndirectBufferInfoNV structure specifying a valid address where its metadata will be saved", "1.3-extensions"},
+ {"VUID-VkPipelineIndirectDeviceAddressInfoNV-pipeline-parameter", "pipeline must be a valid VkPipeline handle", "1.3-extensions"},
+ {"VUID-VkPipelineIndirectDeviceAddressInfoNV-pipelineBindPoint-09079", "The provided pipelineBindPoint must be of type VK_PIPELINE_BIND_POINT_COMPUTE", "1.3-extensions"},
+ {"VUID-VkPipelineIndirectDeviceAddressInfoNV-pipelineBindPoint-parameter", "pipelineBindPoint must be a valid VkPipelineBindPoint value", "1.3-extensions"},
+ {"VUID-VkPipelineIndirectDeviceAddressInfoNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV", "1.3-extensions"},
{"VUID-VkPipelineInfoKHR-pNext-pNext", "pNext must be NULL", "1.3-extensions"},
{"VUID-VkPipelineInfoKHR-pipeline-parameter", "pipeline must be a valid VkPipeline handle", "1.3-extensions"},
{"VUID-VkPipelineInfoKHR-sType-sType", "sType must be VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR", "1.3-extensions"},
@@ -4490,8 +4589,8 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkPipelineInputAssemblyStateCreateInfo-sType-sType", "sType must be VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO", "1.3-extensions"},
{"VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00429", "If the geometryShader feature is not enabled, topology must not be any of VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY or VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY", "1.3-extensions"},
{"VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00430", "If the tessellationShader feature is not enabled, topology must not be VK_PRIMITIVE_TOPOLOGY_PATCH_LIST", "1.3-extensions"},
- {"VUID-VkPipelineInputAssemblyStateCreateInfo-topology-06252", "If topology is VK_PRIMITIVE_TOPOLOGY_POINT_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY or VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, and primitiveRestartEnable is VK_TRUE, the primitiveTopologyListRestart feature must be enabled", "1.3-extensions"},
- {"VUID-VkPipelineInputAssemblyStateCreateInfo-topology-06253", "If topology is VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, and primitiveRestartEnable is VK_TRUE, the primitiveTopologyPatchListRestart feature must be enabled", "1.3-extensions"},
+ {"VUID-VkPipelineInputAssemblyStateCreateInfo-topology-06252", "If the primitiveTopologyListRestart feature is not enabled, and topology is VK_PRIMITIVE_TOPOLOGY_POINT_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, or VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, primitiveRestartEnable must be VK_FALSE", "1.3-extensions"},
+ {"VUID-VkPipelineInputAssemblyStateCreateInfo-topology-06253", "If the primitiveTopologyPatchListRestart feature is not enabled, and topology is VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, primitiveRestartEnable must be VK_FALSE", "1.3-extensions"},
{"VUID-VkPipelineInputAssemblyStateCreateInfo-topology-parameter", "topology must be a valid VkPrimitiveTopology value", "1.3-extensions"},
{"VUID-VkPipelineInputAssemblyStateCreateInfo-triangleFans-04452", "If the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::triangleFans is VK_FALSE, topology must not be VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN", "1.3-extensions"},
{"VUID-VkPipelineLayoutCreateInfo-descriptorType-02214", "The total number of bindings in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceInlineUniformBlockProperties::maxPerStageDescriptorInlineUniformBlocks", "1.3-extensions"},
@@ -4944,8 +5043,8 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkRenderPassBeginInfo-framebuffer-03214", "If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a value of VkImageFormatListCreateInfo::viewFormatCount equal to the viewFormatCount member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachmentImageInfos used to create framebuffer", "1.3-extensions"},
{"VUID-VkRenderPassBeginInfo-framebuffer-03215", "If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a set of elements in VkImageFormatListCreateInfo::pViewFormats equal to the set of elements in the pViewFormats member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachmentImageInfos used to create framebuffer", "1.3-extensions"},
{"VUID-VkRenderPassBeginInfo-framebuffer-03216", "If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a value of VkImageViewCreateInfo::format equal to the corresponding value of VkAttachmentDescription::format in renderPass", "1.3-extensions"},
- {"VUID-VkRenderPassBeginInfo-framebuffer-03217", "If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a value of VkImageCreateInfo::samples equal to the corresponding value of VkAttachmentDescription::samples in renderPass", "1.3-extensions"},
{"VUID-VkRenderPassBeginInfo-framebuffer-04627", "If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView with an inherited usage equal to the usage member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachmentImageInfos used to create framebuffer", "1.3-extensions"},
+ {"VUID-VkRenderPassBeginInfo-framebuffer-09047", "If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a value of VkImageCreateInfo::samples equal to the corresponding value of VkAttachmentDescription::samples in renderPass , or VK_SAMPLE_COUNT_1_BIT if renderPass was created with VkMultisampledRenderToSingleSampledInfoEXT structure in the pNext chain with multisampledRenderToSingleSampledEnable equal to VK_TRUE", "1.3-extensions"},
{"VUID-VkRenderPassBeginInfo-framebuffer-parameter", "framebuffer must be a valid VkFramebuffer handle", "1.3-extensions"},
{"VUID-VkRenderPassBeginInfo-pNext-02850", "If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, renderArea.offset.x must be greater than or equal to 0", "1.3-extensions"},
{"VUID-VkRenderPassBeginInfo-pNext-02851", "If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, renderArea.offset.y must be greater than or equal to 0", "1.3-extensions"},
@@ -5106,6 +5205,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-sType-sType", "sType must be VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR", "1.3-extensions"},
{"VUID-VkRenderingInfo-None-08994", "If VkDeviceGroupRenderPassBeginInfo::deviceRenderAreaCount is 0, renderArea.extent.width must be greater than 0", "1.3-extensions"},
{"VUID-VkRenderingInfo-None-08995", "If VkDeviceGroupRenderPassBeginInfo::deviceRenderAreaCount is 0, renderArea.extent.height must be greater than 0", "1.3-extensions"},
+ {"VUID-VkRenderingInfo-None-09044", "Valid attachments specified by this structure must not be bound to memory locations that are bound to any other valid attachments specified by this structure", "1.3-extensions"},
{"VUID-VkRenderingInfo-colorAttachmentCount-06087", "If colorAttachmentCount is not 0 and the imageView member of an element of pColorAttachments is not VK_NULL_HANDLE, that imageView must have been created with VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT", "1.3-extensions"},
{"VUID-VkRenderingInfo-colorAttachmentCount-06090", "If colorAttachmentCount is not 0 and the imageView member of an element of pColorAttachments is not VK_NULL_HANDLE, the layout member of that element of pColorAttachments must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL", "1.3-extensions"},
{"VUID-VkRenderingInfo-colorAttachmentCount-06091", "If colorAttachmentCount is not 0 and the imageView member of an element of pColorAttachments is not VK_NULL_HANDLE, if the resolveMode member of that element of pColorAttachments is not VK_RESOLVE_MODE_NONE, its resolveImageLayout member must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL", "1.3-extensions"},
@@ -5715,7 +5815,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkSubpassDescription2-attachment-02801", "If the attachment member of any element of pInputAttachments is not VK_ATTACHMENT_UNUSED, then the aspectMask member must not include VK_IMAGE_ASPECT_METADATA_BIT", "1.3-extensions"},
{"VUID-VkSubpassDescription2-attachment-03073", "Each element of pPreserveAttachments must not be VK_ATTACHMENT_UNUSED", "1.3-extensions"},
{"VUID-VkSubpassDescription2-attachment-04563", "If the attachment member of any element of pInputAttachments is not VK_ATTACHMENT_UNUSED, then the aspectMask member must not include VK_IMAGE_ASPECT_MEMORY_PLANE{ibit}BIT_EXT for any index i", "1.3-extensions"},
- {"VUID-VkSubpassDescription2-attachment-06251", "If the attachment member of pDepthStencilAttachment is not VK_ATTACHMENT_UNUSED and its pNext chain includes a VkAttachmentDescriptionStencilLayout structure, the layout member of pDepthStencilAttachment must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL", "1.3-extensions"},
+ {"VUID-VkSubpassDescription2-attachment-06251", "If the attachment member of pDepthStencilAttachment is not VK_ATTACHMENT_UNUSED and its pNext chain includes a VkAttachmentReferenceStencilLayout structure, the layout member of pDepthStencilAttachment must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL", "1.3-extensions"},
{"VUID-VkSubpassDescription2-attachment-06912", "If the attachment member of an element of pInputAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL", "1.3-extensions"},
{"VUID-VkSubpassDescription2-attachment-06913", "If the attachment member of an element of pColorAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL", "1.3-extensions"},
{"VUID-VkSubpassDescription2-attachment-06914", "If the attachment member of an element of pResolveAttachments is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL", "1.3-extensions"},
@@ -5802,7 +5902,8 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-VkSubpassSampleLocationsEXT-subpassIndex-01532", "subpassIndex must be less than the subpassCount specified in VkRenderPassCreateInfo the render pass specified by VkRenderPassBeginInfo::renderPass was created with", "1.3-extensions"},
{"VUID-VkSubpassShadingPipelineCreateInfoHUAWEI-sType-sType", "sType must be VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI", "1.3-extensions"},
{"VUID-VkSubpassShadingPipelineCreateInfoHUAWEI-subpass-04946", "subpass must be created with VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI bind point", "1.3-extensions"},
- {"VUID-VkSubresourceLayout2EXT-pNext-pNext", "pNext must be NULL or a pointer to a valid instance of VkImageCompressionPropertiesEXT", "1.3-extensions"},
+ {"VUID-VkSubresourceHostMemcpySizeEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT", "1.3-extensions"},
+ {"VUID-VkSubresourceLayout2EXT-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 VkImageCompressionPropertiesEXT or VkSubresourceHostMemcpySizeEXT", "1.3-extensions"},
{"VUID-VkSubresourceLayout2EXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT", "1.3-extensions"},
{"VUID-VkSubresourceLayout2EXT-sType-unique", "The sType value of each struct in the pNext chain must be unique", "1.3-extensions"},
{"VUID-VkSurfaceCapabilities2EXT-pNext-pNext", "pNext must be NULL", "1.3-extensions"},
@@ -6725,6 +6826,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdBeginRenderPass-contents-parameter", "contents must be a valid VkSubpassContents value", "1.3-extensions"},
{"VUID-vkCmdBeginRenderPass-dstStageMask-06452", "The dstStageMask members of any element of the pDependencies member of VkRenderPassCreateInfo used to create renderPass must be supported by the capabilities of the queue family identified by the queueFamilyIndex member of the VkCommandPoolCreateInfo used to create the command pool which commandBuffer was allocated from", "1.3-extensions"},
{"VUID-vkCmdBeginRenderPass-framebuffer-02532", "For any attachment in framebuffer that is used by renderPass and is bound to memory locations that are also bound to another attachment used by renderPass, and if at least one of those uses causes either attachment to be written to, both attachments must have had the VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT set", "1.3-extensions"},
+ {"VUID-vkCmdBeginRenderPass-framebuffer-09045", "If any attachments specified in framebuffer are used by renderPass and are bound to overlapping memory locations, there must be only one that is used as a color attachment, depth/stencil, or resolve attachment in any subpass", "1.3-extensions"},
{"VUID-vkCmdBeginRenderPass-initialLayout-00895", "If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT", "1.3-extensions"},
{"VUID-vkCmdBeginRenderPass-initialLayout-00897", "If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_SAMPLED_BIT or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT", "1.3-extensions"},
{"VUID-vkCmdBeginRenderPass-initialLayout-00898", "If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_TRANSFER_SRC_BIT", "1.3-extensions"},
@@ -6746,6 +6848,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdBeginRenderPass2-dstStageMask-06454", "The dstStageMask members of any element of the pDependencies member of VkRenderPassCreateInfo used to create renderPass must be supported by the capabilities of the queue family identified by the queueFamilyIndex member of the VkCommandPoolCreateInfo used to create the command pool which commandBuffer was allocated from", "1.3-extensions"},
{"VUID-vkCmdBeginRenderPass2-framebuffer-02533", "For any attachment in framebuffer that is used by renderPass and is bound to memory locations that are also bound to another attachment used by renderPass, and if at least one of those uses causes either attachment to be written to, both attachments must have had the VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT set", "1.3-extensions"},
{"VUID-vkCmdBeginRenderPass2-framebuffer-02779", "Both the framebuffer and renderPass members of pRenderPassBegin must have been created on the same VkDevice that commandBuffer was allocated on", "1.3-extensions"},
+ {"VUID-vkCmdBeginRenderPass2-framebuffer-09046", "If any attachments specified in framebuffer are used by renderPass and are bound to overlapping memory locations, there must be only one that is used as a color attachment, depth/stencil, or resolve attachment in any subpass", "1.3-extensions"},
{"VUID-vkCmdBeginRenderPass2-initialLayout-02844", "If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT", "1.3-extensions"},
{"VUID-vkCmdBeginRenderPass2-initialLayout-03094", "If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT", "1.3-extensions"},
{"VUID-vkCmdBeginRenderPass2-initialLayout-03096", "If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT", "1.3-extensions"},
@@ -7420,9 +7523,9 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdCopyBuffer2-pCopyBufferInfo-parameter", "pCopyBufferInfo must be a valid pointer to a valid VkCopyBufferInfo2 structure", "1.3-extensions"},
{"VUID-vkCmdCopyBuffer2-renderpass", "This command must only be called outside of a render pass instance", "1.3-extensions"},
{"VUID-vkCmdCopyBuffer2-videocoding", "This command must only be called outside of a video coding scope", "1.3-extensions"},
- {"VUID-vkCmdCopyBufferToImage-aspectMask-00211", "For each element of pRegions, imageSubresource.aspectMask must specify aspects present in pname:dstImage", "1.3-extensions"},
- {"VUID-vkCmdCopyBufferToImage-bufferImageHeight-00204", "For each element of pRegions, bufferImageHeight must be a multiple of the texel block extent height of the VkFormat of pname:dstImage", "1.3-extensions"},
- {"VUID-vkCmdCopyBufferToImage-bufferRowLength-00203", "For each element of pRegions, bufferRowLength must be a multiple of the texel block extent width of the VkFormat of pname:dstImage", "1.3-extensions"},
+ {"VUID-vkCmdCopyBufferToImage-bufferImageHeight-09107", "For each element of pRegions, pname:bufferImageHeight must be a multiple of the texel block extent height of the VkFormat of pname:dstImage", "1.3-extensions"},
+ {"VUID-vkCmdCopyBufferToImage-bufferRowLength-09106", "For each element of pRegions, pname:bufferRowLength must be a multiple of the texel block extent width of the VkFormat of pname:dstImage", "1.3-extensions"},
+ {"VUID-vkCmdCopyBufferToImage-bufferRowLength-09108", "For each element of pRegions, pname:bufferRowLength divided by the texel block extent width and then multiplied by the texel block size of pname:dstImage must be less than or equal to 231-1", "1.3-extensions"},
{"VUID-vkCmdCopyBufferToImage-commandBuffer-01828", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcBuffer must not be a protected buffer", "1.3-extensions"},
{"VUID-vkCmdCopyBufferToImage-commandBuffer-01829", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image", "1.3-extensions"},
{"VUID-vkCmdCopyBufferToImage-commandBuffer-01830", "If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image", "1.3-extensions"},
@@ -7440,31 +7543,31 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdCopyBufferToImage-dstImage-07975", "If pname:dstImage does not have either a depth/stencil or a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the texel block size", "1.3-extensions"},
{"VUID-vkCmdCopyBufferToImage-dstImage-07976", "If pname:dstImage has a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the element size of the compatible format for the format and the aspectMask of the imageSubresource as defined in Compatible formats of planes of multi-planar formats", "1.3-extensions"},
{"VUID-vkCmdCopyBufferToImage-dstImage-07978", "If pname:dstImage has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4", "1.3-extensions"},
- {"VUID-vkCmdCopyBufferToImage-dstImage-07979", "If pname:dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, imageOffset.y must be 0 and imageExtent.height must be 1", "1.3-extensions"},
- {"VUID-vkCmdCopyBufferToImage-dstImage-07980", "If pname:dstImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, imageOffset.z must be 0 and imageExtent.depth must be 1", "1.3-extensions"},
- {"VUID-vkCmdCopyBufferToImage-dstImage-07981", "If pname:dstImage has a VkFormat with two planes then for each element of pRegions, imageSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT", "1.3-extensions"},
- {"VUID-vkCmdCopyBufferToImage-dstImage-07982", "If pname:dstImage has a VkFormat with three planes then for each element of pRegions, imageSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT", "1.3-extensions"},
- {"VUID-vkCmdCopyBufferToImage-dstImage-07983", "If pname:dstImage is of type VK_IMAGE_TYPE_3D, for each element of pRegions, imageSubresource.baseArrayLayer must be 0 and imageSubresource.layerCount must be 1", "1.3-extensions"},
+ {"VUID-vkCmdCopyBufferToImage-dstImage-07979", "If pname:dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, pname:imageOffset.y must be 0 and pname:imageExtent.height must be 1", "1.3-extensions"},
+ {"VUID-vkCmdCopyBufferToImage-dstImage-07980", "If pname:dstImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, pname:imageOffset.z must be 0 and pname:imageExtent.depth must be 1", "1.3-extensions"},
+ {"VUID-vkCmdCopyBufferToImage-dstImage-07981", "If pname:dstImage has a VkFormat with two planes then for each element of pRegions, pname:imageSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT", "1.3-extensions"},
+ {"VUID-vkCmdCopyBufferToImage-dstImage-07982", "If pname:dstImage has a VkFormat with three planes then for each element of pRegions, pname:imageSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT", "1.3-extensions"},
+ {"VUID-vkCmdCopyBufferToImage-dstImage-07983", "If pname:dstImage is of type VK_IMAGE_TYPE_3D, for each element of pRegions, pname:imageSubresource.baseArrayLayer must be 0 and pname:imageSubresource.layerCount must be 1", "1.3-extensions"},
{"VUID-vkCmdCopyBufferToImage-dstImage-parameter", "dstImage must be a valid VkImage handle", "1.3-extensions"},
{"VUID-vkCmdCopyBufferToImage-dstImageLayout-00180", "dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice", "1.3-extensions"},
{"VUID-vkCmdCopyBufferToImage-dstImageLayout-01396", "dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR", "1.3-extensions"},
{"VUID-vkCmdCopyBufferToImage-dstImageLayout-parameter", "dstImageLayout must be a valid VkImageLayout value", "1.3-extensions"},
- {"VUID-vkCmdCopyBufferToImage-imageExtent-00207", "For each element of pRegions, if the sum of imageOffset.x and extent.width does not equal the width of the subresource specified by srcSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of pname:dstImage", "1.3-extensions"},
- {"VUID-vkCmdCopyBufferToImage-imageExtent-00208", "For each element of pRegions, if the sum of imageOffset.y and extent.height does not equal the height of the subresource specified by srcSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of pname:dstImage", "1.3-extensions"},
- {"VUID-vkCmdCopyBufferToImage-imageExtent-00209", "For each element of pRegions, if the sum of imageOffset.z and extent.depth does not equal the depth of the subresource specified by srcSubresource, extent.depth must be a multiple of the texel block extent depth of the VkFormat of pname:dstImage", "1.3-extensions"},
- {"VUID-vkCmdCopyBufferToImage-imageOffset-00200", "For each element of pRegions, imageOffset.z and (imageExtent.depth + imageOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified imageSubresource of pname:dstImage", "1.3-extensions"},
+ {"VUID-vkCmdCopyBufferToImage-imageExtent-00207", "For each element of pRegions, if the sum of pname:imageOffset.x and extent.width does not equal the width of the subresource specified by srcSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of pname:dstImage", "1.3-extensions"},
+ {"VUID-vkCmdCopyBufferToImage-imageExtent-00208", "For each element of pRegions, if the sum of pname:imageOffset.y and extent.height does not equal the height of the subresource specified by srcSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of pname:dstImage", "1.3-extensions"},
+ {"VUID-vkCmdCopyBufferToImage-imageExtent-00209", "For each element of pRegions, if the sum of pname:imageOffset.z and extent.depth does not equal the depth of the subresource specified by srcSubresource, extent.depth must be a multiple of the texel block extent depth of the VkFormat of pname:dstImage", "1.3-extensions"},
{"VUID-vkCmdCopyBufferToImage-imageOffset-07738", "The imageOffset and imageExtent members of each element of pname:pRegions must respect the image transfer granularity requirements of commandBuffer's command pool's queue family, as described in VkQueueFamilyProperties", "1.3-extensions"},
+ {"VUID-vkCmdCopyBufferToImage-imageOffset-09104", "For each element of pRegions, pname:imageOffset.z and (pname:imageExtent.depth + pname:imageOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified pname:imageSubresource of pname:dstImage", "1.3-extensions"},
{"VUID-vkCmdCopyBufferToImage-imageSubresource-07967", "The pname:imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when pname:dstImage was created", "1.3-extensions"},
{"VUID-vkCmdCopyBufferToImage-imageSubresource-07968", "The pname:imageSubresource.baseArrayLayer + pname:imageSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when pname:dstImage was created", "1.3-extensions"},
{"VUID-vkCmdCopyBufferToImage-imageSubresource-07970", "The image region specified by each element of pRegions must be contained within the specified pname:imageSubresource of pname:dstImage", "1.3-extensions"},
- {"VUID-vkCmdCopyBufferToImage-imageSubresource-07971", "For each element of pRegions, imageOffset.x and (imageExtent.width + imageOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified pname:imageSubresource of pname:dstImage", "1.3-extensions"},
- {"VUID-vkCmdCopyBufferToImage-imageSubresource-07972", "For each element of pRegions, imageOffset.y and (imageExtent.height + imageOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified pname:imageSubresource of pname:dstImage", "1.3-extensions"},
+ {"VUID-vkCmdCopyBufferToImage-imageSubresource-07971", "For each element of pRegions, pname:imageOffset.x and (pname:imageExtent.width + pname:imageOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified pname:imageSubresource of pname:dstImage", "1.3-extensions"},
+ {"VUID-vkCmdCopyBufferToImage-imageSubresource-07972", "For each element of pRegions, pname:imageOffset.y and (pname:imageExtent.height + pname:imageOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified pname:imageSubresource of pname:dstImage", "1.3-extensions"},
+ {"VUID-vkCmdCopyBufferToImage-imageSubresource-09105", "For each element of pRegions, pname:imageSubresource.aspectMask must specify aspects present in pname:dstImage", "1.3-extensions"},
{"VUID-vkCmdCopyBufferToImage-pRegions-00171", "srcBuffer must be large enough to contain all buffer locations that are accessed according to Buffer and Image Addressing, for each element of pRegions", "1.3-extensions"},
{"VUID-vkCmdCopyBufferToImage-pRegions-00173", "The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory", "1.3-extensions"},
- {"VUID-vkCmdCopyBufferToImage-pRegions-07274", "For each element of pRegions, imageOffset.x must be a multiple of the texel block extent width of the VkFormat of pname:dstImage", "1.3-extensions"},
- {"VUID-vkCmdCopyBufferToImage-pRegions-07275", "For each element of pRegions, imageOffset.y must be a multiple of the texel block extent height of the VkFormat of pname:dstImage", "1.3-extensions"},
- {"VUID-vkCmdCopyBufferToImage-pRegions-07276", "For each element of pRegions, imageOffset.z must be a multiple of the texel block extent depth of the VkFormat of pname:dstImage", "1.3-extensions"},
- {"VUID-vkCmdCopyBufferToImage-pRegions-07277", "For each element of pRegions, bufferRowLength divided by the texel block extent width and then multiplied by the texel block size of pname:dstImage must be less than or equal to 231-1", "1.3-extensions"},
+ {"VUID-vkCmdCopyBufferToImage-pRegions-07274", "For each element of pRegions, pname:imageOffset.x must be a multiple of the texel block extent width of the VkFormat of pname:dstImage", "1.3-extensions"},
+ {"VUID-vkCmdCopyBufferToImage-pRegions-07275", "For each element of pRegions, pname:imageOffset.y must be a multiple of the texel block extent height of the VkFormat of pname:dstImage", "1.3-extensions"},
+ {"VUID-vkCmdCopyBufferToImage-pRegions-07276", "For each element of pRegions, pname:imageOffset.z must be a multiple of the texel block extent depth of the VkFormat of pname:dstImage", "1.3-extensions"},
{"VUID-vkCmdCopyBufferToImage-pRegions-07931", "If VK_EXT_depth_range_unrestricted is not enabled, for each element of pRegions whose imageSubresource contains a depth aspect, the data in srcBuffer must be in the range [0,1]", "1.3-extensions"},
{"VUID-vkCmdCopyBufferToImage-pRegions-parameter", "pRegions must be a valid pointer to an array of regionCount valid VkBufferImageCopy structures", "1.3-extensions"},
{"VUID-vkCmdCopyBufferToImage-regionCount-arraylength", "regionCount must be greater than 0", "1.3-extensions"},
@@ -7574,9 +7677,9 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdCopyImage2-pCopyImageInfo-parameter", "pCopyImageInfo must be a valid pointer to a valid VkCopyImageInfo2 structure", "1.3-extensions"},
{"VUID-vkCmdCopyImage2-renderpass", "This command must only be called outside of a render pass instance", "1.3-extensions"},
{"VUID-vkCmdCopyImage2-videocoding", "This command must only be called outside of a video coding scope", "1.3-extensions"},
- {"VUID-vkCmdCopyImageToBuffer-aspectMask-00211", "For each element of pRegions, imageSubresource.aspectMask must specify aspects present in pname:srcImage", "1.3-extensions"},
- {"VUID-vkCmdCopyImageToBuffer-bufferImageHeight-00204", "For each element of pRegions, bufferImageHeight must be a multiple of the texel block extent height of the VkFormat of pname:srcImage", "1.3-extensions"},
- {"VUID-vkCmdCopyImageToBuffer-bufferRowLength-00203", "For each element of pRegions, bufferRowLength must be a multiple of the texel block extent width of the VkFormat of pname:srcImage", "1.3-extensions"},
+ {"VUID-vkCmdCopyImageToBuffer-bufferImageHeight-09107", "For each element of pRegions, pname:bufferImageHeight must be a multiple of the texel block extent height of the VkFormat of pname:srcImage", "1.3-extensions"},
+ {"VUID-vkCmdCopyImageToBuffer-bufferRowLength-09106", "For each element of pRegions, pname:bufferRowLength must be a multiple of the texel block extent width of the VkFormat of pname:srcImage", "1.3-extensions"},
+ {"VUID-vkCmdCopyImageToBuffer-bufferRowLength-09108", "For each element of pRegions, pname:bufferRowLength divided by the texel block extent width and then multiplied by the texel block size of pname:srcImage must be less than or equal to 231-1", "1.3-extensions"},
{"VUID-vkCmdCopyImageToBuffer-commandBuffer-01831", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image", "1.3-extensions"},
{"VUID-vkCmdCopyImageToBuffer-commandBuffer-01832", "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstBuffer must not be a protected buffer", "1.3-extensions"},
{"VUID-vkCmdCopyImageToBuffer-commandBuffer-01833", "If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstBuffer must not be an unprotected buffer", "1.3-extensions"},
@@ -7588,22 +7691,22 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdCopyImageToBuffer-dstBuffer-00191", "dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag", "1.3-extensions"},
{"VUID-vkCmdCopyImageToBuffer-dstBuffer-00192", "If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", "1.3-extensions"},
{"VUID-vkCmdCopyImageToBuffer-dstBuffer-parameter", "dstBuffer must be a valid VkBuffer handle", "1.3-extensions"},
- {"VUID-vkCmdCopyImageToBuffer-imageExtent-00207", "For each element of pRegions, if the sum of imageOffset.x and extent.width does not equal the width of the subresource specified by srcSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of pname:srcImage", "1.3-extensions"},
- {"VUID-vkCmdCopyImageToBuffer-imageExtent-00208", "For each element of pRegions, if the sum of imageOffset.y and extent.height does not equal the height of the subresource specified by srcSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of pname:srcImage", "1.3-extensions"},
- {"VUID-vkCmdCopyImageToBuffer-imageExtent-00209", "For each element of pRegions, if the sum of imageOffset.z and extent.depth does not equal the depth of the subresource specified by srcSubresource, extent.depth must be a multiple of the texel block extent depth of the VkFormat of pname:srcImage", "1.3-extensions"},
- {"VUID-vkCmdCopyImageToBuffer-imageOffset-00200", "For each element of pRegions, imageOffset.z and (imageExtent.depth + imageOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified imageSubresource of pname:srcImage", "1.3-extensions"},
+ {"VUID-vkCmdCopyImageToBuffer-imageExtent-00207", "For each element of pRegions, if the sum of pname:imageOffset.x and extent.width does not equal the width of the subresource specified by srcSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of pname:srcImage", "1.3-extensions"},
+ {"VUID-vkCmdCopyImageToBuffer-imageExtent-00208", "For each element of pRegions, if the sum of pname:imageOffset.y and extent.height does not equal the height of the subresource specified by srcSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of pname:srcImage", "1.3-extensions"},
+ {"VUID-vkCmdCopyImageToBuffer-imageExtent-00209", "For each element of pRegions, if the sum of pname:imageOffset.z and extent.depth does not equal the depth of the subresource specified by srcSubresource, extent.depth must be a multiple of the texel block extent depth of the VkFormat of pname:srcImage", "1.3-extensions"},
{"VUID-vkCmdCopyImageToBuffer-imageOffset-07747", "The imageOffset and imageExtent members of each element of pname:pRegions must respect the image transfer granularity requirements of commandBuffer's command pool's queue family, as described in VkQueueFamilyProperties", "1.3-extensions"},
+ {"VUID-vkCmdCopyImageToBuffer-imageOffset-09104", "For each element of pRegions, pname:imageOffset.z and (pname:imageExtent.depth + pname:imageOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified pname:imageSubresource of pname:srcImage", "1.3-extensions"},
{"VUID-vkCmdCopyImageToBuffer-imageSubresource-07967", "The pname:imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when pname:srcImage was created", "1.3-extensions"},
{"VUID-vkCmdCopyImageToBuffer-imageSubresource-07968", "The pname:imageSubresource.baseArrayLayer + pname:imageSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when pname:srcImage was created", "1.3-extensions"},
{"VUID-vkCmdCopyImageToBuffer-imageSubresource-07970", "The image region specified by each element of pRegions must be contained within the specified pname:imageSubresource of pname:srcImage", "1.3-extensions"},
- {"VUID-vkCmdCopyImageToBuffer-imageSubresource-07971", "For each element of pRegions, imageOffset.x and (imageExtent.width + imageOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified pname:imageSubresource of pname:srcImage", "1.3-extensions"},
- {"VUID-vkCmdCopyImageToBuffer-imageSubresource-07972", "For each element of pRegions, imageOffset.y and (imageExtent.height + imageOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified pname:imageSubresource of pname:srcImage", "1.3-extensions"},
+ {"VUID-vkCmdCopyImageToBuffer-imageSubresource-07971", "For each element of pRegions, pname:imageOffset.x and (pname:imageExtent.width + pname:imageOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified pname:imageSubresource of pname:srcImage", "1.3-extensions"},
+ {"VUID-vkCmdCopyImageToBuffer-imageSubresource-07972", "For each element of pRegions, pname:imageOffset.y and (pname:imageExtent.height + pname:imageOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified pname:imageSubresource of pname:srcImage", "1.3-extensions"},
+ {"VUID-vkCmdCopyImageToBuffer-imageSubresource-09105", "For each element of pRegions, pname:imageSubresource.aspectMask must specify aspects present in pname:srcImage", "1.3-extensions"},
{"VUID-vkCmdCopyImageToBuffer-pRegions-00183", "dstBuffer must be large enough to contain all buffer locations that are accessed according to Buffer and Image Addressing, for each element of pRegions", "1.3-extensions"},
{"VUID-vkCmdCopyImageToBuffer-pRegions-00184", "The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory", "1.3-extensions"},
- {"VUID-vkCmdCopyImageToBuffer-pRegions-07274", "For each element of pRegions, imageOffset.x must be a multiple of the texel block extent width of the VkFormat of pname:srcImage", "1.3-extensions"},
- {"VUID-vkCmdCopyImageToBuffer-pRegions-07275", "For each element of pRegions, imageOffset.y must be a multiple of the texel block extent height of the VkFormat of pname:srcImage", "1.3-extensions"},
- {"VUID-vkCmdCopyImageToBuffer-pRegions-07276", "For each element of pRegions, imageOffset.z must be a multiple of the texel block extent depth of the VkFormat of pname:srcImage", "1.3-extensions"},
- {"VUID-vkCmdCopyImageToBuffer-pRegions-07277", "For each element of pRegions, bufferRowLength divided by the texel block extent width and then multiplied by the texel block size of pname:srcImage must be less than or equal to 231-1", "1.3-extensions"},
+ {"VUID-vkCmdCopyImageToBuffer-pRegions-07274", "For each element of pRegions, pname:imageOffset.x must be a multiple of the texel block extent width of the VkFormat of pname:srcImage", "1.3-extensions"},
+ {"VUID-vkCmdCopyImageToBuffer-pRegions-07275", "For each element of pRegions, pname:imageOffset.y must be a multiple of the texel block extent height of the VkFormat of pname:srcImage", "1.3-extensions"},
+ {"VUID-vkCmdCopyImageToBuffer-pRegions-07276", "For each element of pRegions, pname:imageOffset.z must be a multiple of the texel block extent depth of the VkFormat of pname:srcImage", "1.3-extensions"},
{"VUID-vkCmdCopyImageToBuffer-pRegions-parameter", "pRegions must be a valid pointer to an array of regionCount valid VkBufferImageCopy structures", "1.3-extensions"},
{"VUID-vkCmdCopyImageToBuffer-regionCount-arraylength", "regionCount must be greater than 0", "1.3-extensions"},
{"VUID-vkCmdCopyImageToBuffer-renderpass", "This command must only be called outside of a render pass instance", "1.3-extensions"},
@@ -7615,11 +7718,11 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdCopyImageToBuffer-srcImage-07975", "If pname:srcImage does not have either a depth/stencil or a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the texel block size", "1.3-extensions"},
{"VUID-vkCmdCopyImageToBuffer-srcImage-07976", "If pname:srcImage has a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the element size of the compatible format for the format and the aspectMask of the imageSubresource as defined in Compatible formats of planes of multi-planar formats", "1.3-extensions"},
{"VUID-vkCmdCopyImageToBuffer-srcImage-07978", "If pname:srcImage has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4", "1.3-extensions"},
- {"VUID-vkCmdCopyImageToBuffer-srcImage-07979", "If pname:srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, imageOffset.y must be 0 and imageExtent.height must be 1", "1.3-extensions"},
- {"VUID-vkCmdCopyImageToBuffer-srcImage-07980", "If pname:srcImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, imageOffset.z must be 0 and imageExtent.depth must be 1", "1.3-extensions"},
- {"VUID-vkCmdCopyImageToBuffer-srcImage-07981", "If pname:srcImage has a VkFormat with two planes then for each element of pRegions, imageSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT", "1.3-extensions"},
- {"VUID-vkCmdCopyImageToBuffer-srcImage-07982", "If pname:srcImage has a VkFormat with three planes then for each element of pRegions, imageSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT", "1.3-extensions"},
- {"VUID-vkCmdCopyImageToBuffer-srcImage-07983", "If pname:srcImage is of type VK_IMAGE_TYPE_3D, for each element of pRegions, imageSubresource.baseArrayLayer must be 0 and imageSubresource.layerCount must be 1", "1.3-extensions"},
+ {"VUID-vkCmdCopyImageToBuffer-srcImage-07979", "If pname:srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, pname:imageOffset.y must be 0 and pname:imageExtent.height must be 1", "1.3-extensions"},
+ {"VUID-vkCmdCopyImageToBuffer-srcImage-07980", "If pname:srcImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, pname:imageOffset.z must be 0 and pname:imageExtent.depth must be 1", "1.3-extensions"},
+ {"VUID-vkCmdCopyImageToBuffer-srcImage-07981", "If pname:srcImage has a VkFormat with two planes then for each element of pRegions, pname:imageSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT", "1.3-extensions"},
+ {"VUID-vkCmdCopyImageToBuffer-srcImage-07982", "If pname:srcImage has a VkFormat with three planes then for each element of pRegions, pname:imageSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT", "1.3-extensions"},
+ {"VUID-vkCmdCopyImageToBuffer-srcImage-07983", "If pname:srcImage is of type VK_IMAGE_TYPE_3D, for each element of pRegions, pname:imageSubresource.baseArrayLayer must be 0 and pname:imageSubresource.layerCount must be 1", "1.3-extensions"},
{"VUID-vkCmdCopyImageToBuffer-srcImage-parameter", "srcImage must be a valid VkImage handle", "1.3-extensions"},
{"VUID-vkCmdCopyImageToBuffer-srcImageLayout-00189", "srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice", "1.3-extensions"},
{"VUID-vkCmdCopyImageToBuffer-srcImageLayout-01397", "srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR", "1.3-extensions"},
@@ -7845,6 +7948,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdDispatch-ConstOffset-06551", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
{"VUID-vkCmdDispatch-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
{"VUID-vkCmdDispatch-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
+ {"VUID-vkCmdDispatch-None-02693", "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "1.3-extensions"},
{"VUID-vkCmdDispatch-None-04115", "If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format", "1.3-extensions"},
{"VUID-vkCmdDispatch-None-06479", "If a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", "1.3-extensions"},
{"VUID-vkCmdDispatch-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
@@ -7911,6 +8015,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdDispatchBase-ConstOffset-06551", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
{"VUID-vkCmdDispatchBase-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
{"VUID-vkCmdDispatchBase-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
+ {"VUID-vkCmdDispatchBase-None-02693", "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "1.3-extensions"},
{"VUID-vkCmdDispatchBase-None-04115", "If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format", "1.3-extensions"},
{"VUID-vkCmdDispatchBase-None-06479", "If a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", "1.3-extensions"},
{"VUID-vkCmdDispatchBase-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
@@ -7981,6 +8086,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdDispatchIndirect-ConstOffset-06551", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
{"VUID-vkCmdDispatchIndirect-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
{"VUID-vkCmdDispatchIndirect-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
+ {"VUID-vkCmdDispatchIndirect-None-02693", "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "1.3-extensions"},
{"VUID-vkCmdDispatchIndirect-None-04115", "If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format", "1.3-extensions"},
{"VUID-vkCmdDispatchIndirect-None-06479", "If a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", "1.3-extensions"},
{"VUID-vkCmdDispatchIndirect-None-06550", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions", "1.3-extensions"},
@@ -8050,6 +8156,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdDraw-Input-08734", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then the numeric type associated with all Input variables of the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must be the same as VkVertexInputAttributeDescription2EXT::format", "1.3-extensions"},
{"VUID-vkCmdDraw-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
{"VUID-vkCmdDraw-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
+ {"VUID-vkCmdDraw-None-02693", "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "1.3-extensions"},
{"VUID-vkCmdDraw-None-02721", "For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description", "1.3-extensions"},
{"VUID-vkCmdDraw-None-04007", "All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point's interface must have either valid or VK_NULL_HANDLE buffers bound", "1.3-extensions"},
{"VUID-vkCmdDraw-None-04008", "If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point's interface must not be VK_NULL_HANDLE", "1.3-extensions"},
@@ -8236,6 +8343,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdDraw-None-09001", "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"},
{"VUID-vkCmdDraw-None-09002", "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"},
{"VUID-vkCmdDraw-None-09003", "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", "1.3-extensions"},
+ {"VUID-vkCmdDraw-None-09116", "If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them", "1.3-extensions"},
{"VUID-vkCmdDraw-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
{"VUID-vkCmdDraw-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
{"VUID-vkCmdDraw-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -8374,6 +8482,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdDrawClusterHUAWEI-ConstOffset-06551", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
{"VUID-vkCmdDrawClusterHUAWEI-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
{"VUID-vkCmdDrawClusterHUAWEI-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
+ {"VUID-vkCmdDrawClusterHUAWEI-None-02693", "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "1.3-extensions"},
{"VUID-vkCmdDrawClusterHUAWEI-None-04115", "If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format", "1.3-extensions"},
{"VUID-vkCmdDrawClusterHUAWEI-None-04876", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
{"VUID-vkCmdDrawClusterHUAWEI-None-04877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
@@ -8551,6 +8660,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdDrawClusterHUAWEI-None-09001", "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"},
{"VUID-vkCmdDrawClusterHUAWEI-None-09002", "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"},
{"VUID-vkCmdDrawClusterHUAWEI-None-09003", "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", "1.3-extensions"},
+ {"VUID-vkCmdDrawClusterHUAWEI-None-09116", "If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them", "1.3-extensions"},
{"VUID-vkCmdDrawClusterHUAWEI-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
{"VUID-vkCmdDrawClusterHUAWEI-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
{"VUID-vkCmdDrawClusterHUAWEI-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -8685,6 +8795,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdDrawClusterIndirectHUAWEI-ConstOffset-06551", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
{"VUID-vkCmdDrawClusterIndirectHUAWEI-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
{"VUID-vkCmdDrawClusterIndirectHUAWEI-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
+ {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-02693", "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "1.3-extensions"},
{"VUID-vkCmdDrawClusterIndirectHUAWEI-None-04115", "If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format", "1.3-extensions"},
{"VUID-vkCmdDrawClusterIndirectHUAWEI-None-04876", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
{"VUID-vkCmdDrawClusterIndirectHUAWEI-None-04877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
@@ -8861,6 +8972,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdDrawClusterIndirectHUAWEI-None-09001", "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"},
{"VUID-vkCmdDrawClusterIndirectHUAWEI-None-09002", "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"},
{"VUID-vkCmdDrawClusterIndirectHUAWEI-None-09003", "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", "1.3-extensions"},
+ {"VUID-vkCmdDrawClusterIndirectHUAWEI-None-09116", "If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them", "1.3-extensions"},
{"VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
{"VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
{"VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -8998,6 +9110,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdDrawIndexed-Input-08734", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then the numeric type associated with all Input variables of the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must be the same as VkVertexInputAttributeDescription2EXT::format", "1.3-extensions"},
{"VUID-vkCmdDrawIndexed-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
{"VUID-vkCmdDrawIndexed-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
+ {"VUID-vkCmdDrawIndexed-None-02693", "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "1.3-extensions"},
{"VUID-vkCmdDrawIndexed-None-02721", "For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description", "1.3-extensions"},
{"VUID-vkCmdDrawIndexed-None-04007", "All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point's interface must have either valid or VK_NULL_HANDLE buffers bound", "1.3-extensions"},
{"VUID-vkCmdDrawIndexed-None-04008", "If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point's interface must not be VK_NULL_HANDLE", "1.3-extensions"},
@@ -9185,6 +9298,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdDrawIndexed-None-09001", "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"},
{"VUID-vkCmdDrawIndexed-None-09002", "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"},
{"VUID-vkCmdDrawIndexed-None-09003", "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", "1.3-extensions"},
+ {"VUID-vkCmdDrawIndexed-None-09116", "If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them", "1.3-extensions"},
{"VUID-vkCmdDrawIndexed-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
{"VUID-vkCmdDrawIndexed-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
{"VUID-vkCmdDrawIndexed-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -9325,6 +9439,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdDrawIndexedIndirect-Input-08734", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then the numeric type associated with all Input variables of the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must be the same as VkVertexInputAttributeDescription2EXT::format", "1.3-extensions"},
{"VUID-vkCmdDrawIndexedIndirect-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
{"VUID-vkCmdDrawIndexedIndirect-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
+ {"VUID-vkCmdDrawIndexedIndirect-None-02693", "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "1.3-extensions"},
{"VUID-vkCmdDrawIndexedIndirect-None-02721", "For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description", "1.3-extensions"},
{"VUID-vkCmdDrawIndexedIndirect-None-04007", "All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point's interface must have either valid or VK_NULL_HANDLE buffers bound", "1.3-extensions"},
{"VUID-vkCmdDrawIndexedIndirect-None-04008", "If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point's interface must not be VK_NULL_HANDLE", "1.3-extensions"},
@@ -9512,6 +9627,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdDrawIndexedIndirect-None-09001", "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"},
{"VUID-vkCmdDrawIndexedIndirect-None-09002", "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"},
{"VUID-vkCmdDrawIndexedIndirect-None-09003", "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", "1.3-extensions"},
+ {"VUID-vkCmdDrawIndexedIndirect-None-09116", "If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them", "1.3-extensions"},
{"VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
{"VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
{"VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -9660,6 +9776,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdDrawIndexedIndirectCount-Input-08734", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then the numeric type associated with all Input variables of the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must be the same as VkVertexInputAttributeDescription2EXT::format", "1.3-extensions"},
{"VUID-vkCmdDrawIndexedIndirectCount-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
{"VUID-vkCmdDrawIndexedIndirectCount-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
+ {"VUID-vkCmdDrawIndexedIndirectCount-None-02693", "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "1.3-extensions"},
{"VUID-vkCmdDrawIndexedIndirectCount-None-02721", "For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description", "1.3-extensions"},
{"VUID-vkCmdDrawIndexedIndirectCount-None-04007", "All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point's interface must have either valid or VK_NULL_HANDLE buffers bound", "1.3-extensions"},
{"VUID-vkCmdDrawIndexedIndirectCount-None-04008", "If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point's interface must not be VK_NULL_HANDLE", "1.3-extensions"},
@@ -9848,6 +9965,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdDrawIndexedIndirectCount-None-09001", "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"},
{"VUID-vkCmdDrawIndexedIndirectCount-None-09002", "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"},
{"VUID-vkCmdDrawIndexedIndirectCount-None-09003", "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", "1.3-extensions"},
+ {"VUID-vkCmdDrawIndexedIndirectCount-None-09116", "If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them", "1.3-extensions"},
{"VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
{"VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
{"VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -10001,6 +10119,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdDrawIndirect-Input-08734", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then the numeric type associated with all Input variables of the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must be the same as VkVertexInputAttributeDescription2EXT::format", "1.3-extensions"},
{"VUID-vkCmdDrawIndirect-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
{"VUID-vkCmdDrawIndirect-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
+ {"VUID-vkCmdDrawIndirect-None-02693", "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "1.3-extensions"},
{"VUID-vkCmdDrawIndirect-None-02721", "For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description", "1.3-extensions"},
{"VUID-vkCmdDrawIndirect-None-04007", "All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point's interface must have either valid or VK_NULL_HANDLE buffers bound", "1.3-extensions"},
{"VUID-vkCmdDrawIndirect-None-04008", "If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point's interface must not be VK_NULL_HANDLE", "1.3-extensions"},
@@ -10187,6 +10306,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdDrawIndirect-None-09001", "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"},
{"VUID-vkCmdDrawIndirect-None-09002", "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"},
{"VUID-vkCmdDrawIndirect-None-09003", "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", "1.3-extensions"},
+ {"VUID-vkCmdDrawIndirect-None-09116", "If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them", "1.3-extensions"},
{"VUID-vkCmdDrawIndirect-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
{"VUID-vkCmdDrawIndirect-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
{"VUID-vkCmdDrawIndirect-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -10334,6 +10454,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdDrawIndirectByteCountEXT-Input-08734", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then the numeric type associated with all Input variables of the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must be the same as VkVertexInputAttributeDescription2EXT::format", "1.3-extensions"},
{"VUID-vkCmdDrawIndirectByteCountEXT-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
{"VUID-vkCmdDrawIndirectByteCountEXT-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
+ {"VUID-vkCmdDrawIndirectByteCountEXT-None-02693", "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "1.3-extensions"},
{"VUID-vkCmdDrawIndirectByteCountEXT-None-02721", "For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description", "1.3-extensions"},
{"VUID-vkCmdDrawIndirectByteCountEXT-None-04007", "All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point's interface must have either valid or VK_NULL_HANDLE buffers bound", "1.3-extensions"},
{"VUID-vkCmdDrawIndirectByteCountEXT-None-04008", "If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point's interface must not be VK_NULL_HANDLE", "1.3-extensions"},
@@ -10520,6 +10641,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdDrawIndirectByteCountEXT-None-09001", "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"},
{"VUID-vkCmdDrawIndirectByteCountEXT-None-09002", "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"},
{"VUID-vkCmdDrawIndirectByteCountEXT-None-09003", "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", "1.3-extensions"},
+ {"VUID-vkCmdDrawIndirectByteCountEXT-None-09116", "If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them", "1.3-extensions"},
{"VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
{"VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
{"VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -10665,6 +10787,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdDrawIndirectCount-Input-08734", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then the numeric type associated with all Input variables of the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must be the same as VkVertexInputAttributeDescription2EXT::format", "1.3-extensions"},
{"VUID-vkCmdDrawIndirectCount-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
{"VUID-vkCmdDrawIndirectCount-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
+ {"VUID-vkCmdDrawIndirectCount-None-02693", "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "1.3-extensions"},
{"VUID-vkCmdDrawIndirectCount-None-02721", "For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description", "1.3-extensions"},
{"VUID-vkCmdDrawIndirectCount-None-04007", "All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point's interface must have either valid or VK_NULL_HANDLE buffers bound", "1.3-extensions"},
{"VUID-vkCmdDrawIndirectCount-None-04008", "If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point's interface must not be VK_NULL_HANDLE", "1.3-extensions"},
@@ -10852,6 +10975,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdDrawIndirectCount-None-09001", "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"},
{"VUID-vkCmdDrawIndirectCount-None-09002", "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"},
{"VUID-vkCmdDrawIndirectCount-None-09003", "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", "1.3-extensions"},
+ {"VUID-vkCmdDrawIndirectCount-None-09116", "If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them", "1.3-extensions"},
{"VUID-vkCmdDrawIndirectCount-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
{"VUID-vkCmdDrawIndirectCount-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
{"VUID-vkCmdDrawIndirectCount-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -11003,6 +11127,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdDrawMeshTasksEXT-MeshEXT-07087", "The current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the MeshEXT {ExecutionModel}", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksEXT-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksEXT-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
+ {"VUID-vkCmdDrawMeshTasksEXT-None-02693", "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksEXT-None-04115", "If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksEXT-None-04876", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksEXT-None-04877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
@@ -11179,6 +11304,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdDrawMeshTasksEXT-None-09001", "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksEXT-None-09002", "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksEXT-None-09003", "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", "1.3-extensions"},
+ {"VUID-vkCmdDrawMeshTasksEXT-None-09116", "If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksEXT-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksEXT-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksEXT-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -11318,6 +11444,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdDrawMeshTasksIndirectCountEXT-MeshEXT-07100", "The current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the MeshEXT {ExecutionModel}", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
+ {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02693", "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-04115", "If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-04445", "If drawIndirectCount is not enabled this function must not be used", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-04876", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
@@ -11495,6 +11622,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09001", "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09002", "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09003", "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", "1.3-extensions"},
+ {"VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09116", "If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -11642,6 +11770,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdDrawMeshTasksIndirectCountNV-MeshNV-07082", "The current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the MeshNV {ExecutionModel}", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
+ {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02693", "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04115", "If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04445", "If drawIndirectCount is not enabled this function must not be used", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04876", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
@@ -11819,6 +11948,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09001", "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09002", "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09003", "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", "1.3-extensions"},
+ {"VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09116", "If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -11966,6 +12096,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdDrawMeshTasksIndirectEXT-MeshEXT-07091", "The current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the MeshEXT {ExecutionModel}", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksIndirectEXT-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksIndirectEXT-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
+ {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-02693", "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksIndirectEXT-None-04115", "If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksIndirectEXT-None-04876", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksIndirectEXT-None-04877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
@@ -12142,6 +12273,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdDrawMeshTasksIndirectEXT-None-09001", "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksIndirectEXT-None-09002", "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksIndirectEXT-None-09003", "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", "1.3-extensions"},
+ {"VUID-vkCmdDrawMeshTasksIndirectEXT-None-09116", "If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -12284,6 +12416,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdDrawMeshTasksIndirectNV-MeshNV-07081", "The current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the MeshNV {ExecutionModel}", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksIndirectNV-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksIndirectNV-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
+ {"VUID-vkCmdDrawMeshTasksIndirectNV-None-02693", "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksIndirectNV-None-04115", "If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksIndirectNV-None-04876", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksIndirectNV-None-04877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
@@ -12460,6 +12593,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdDrawMeshTasksIndirectNV-None-09001", "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksIndirectNV-None-09002", "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksIndirectNV-None-09003", "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", "1.3-extensions"},
+ {"VUID-vkCmdDrawMeshTasksIndirectNV-None-09116", "If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -12602,6 +12736,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdDrawMeshTasksNV-MeshNV-07080", "The current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the MeshNV {ExecutionModel}", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksNV-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksNV-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
+ {"VUID-vkCmdDrawMeshTasksNV-None-02693", "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksNV-None-04115", "If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksNV-None-04876", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksNV-None-04877", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command", "1.3-extensions"},
@@ -12778,6 +12913,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdDrawMeshTasksNV-None-09001", "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksNV-None-09002", "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksNV-None-09003", "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", "1.3-extensions"},
+ {"VUID-vkCmdDrawMeshTasksNV-None-09116", "If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksNV-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksNV-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
{"VUID-vkCmdDrawMeshTasksNV-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -12911,6 +13047,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdDrawMultiEXT-Input-08734", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then the numeric type associated with all Input variables of the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must be the same as VkVertexInputAttributeDescription2EXT::format", "1.3-extensions"},
{"VUID-vkCmdDrawMultiEXT-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
{"VUID-vkCmdDrawMultiEXT-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
+ {"VUID-vkCmdDrawMultiEXT-None-02693", "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "1.3-extensions"},
{"VUID-vkCmdDrawMultiEXT-None-02721", "For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description", "1.3-extensions"},
{"VUID-vkCmdDrawMultiEXT-None-04007", "All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point's interface must have either valid or VK_NULL_HANDLE buffers bound", "1.3-extensions"},
{"VUID-vkCmdDrawMultiEXT-None-04008", "If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point's interface must not be VK_NULL_HANDLE", "1.3-extensions"},
@@ -13098,6 +13235,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdDrawMultiEXT-None-09001", "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"},
{"VUID-vkCmdDrawMultiEXT-None-09002", "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"},
{"VUID-vkCmdDrawMultiEXT-None-09003", "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", "1.3-extensions"},
+ {"VUID-vkCmdDrawMultiEXT-None-09116", "If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them", "1.3-extensions"},
{"VUID-vkCmdDrawMultiEXT-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
{"VUID-vkCmdDrawMultiEXT-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
{"VUID-vkCmdDrawMultiEXT-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -13240,6 +13378,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdDrawMultiIndexedEXT-Input-08734", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then the numeric type associated with all Input variables of the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must be the same as VkVertexInputAttributeDescription2EXT::format", "1.3-extensions"},
{"VUID-vkCmdDrawMultiIndexedEXT-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
{"VUID-vkCmdDrawMultiIndexedEXT-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
+ {"VUID-vkCmdDrawMultiIndexedEXT-None-02693", "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "1.3-extensions"},
{"VUID-vkCmdDrawMultiIndexedEXT-None-02721", "For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description", "1.3-extensions"},
{"VUID-vkCmdDrawMultiIndexedEXT-None-04007", "All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point's interface must have either valid or VK_NULL_HANDLE buffers bound", "1.3-extensions"},
{"VUID-vkCmdDrawMultiIndexedEXT-None-04008", "If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point's interface must not be VK_NULL_HANDLE", "1.3-extensions"},
@@ -13428,6 +13567,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdDrawMultiIndexedEXT-None-09001", "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"},
{"VUID-vkCmdDrawMultiIndexedEXT-None-09002", "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"},
{"VUID-vkCmdDrawMultiIndexedEXT-None-09003", "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", "1.3-extensions"},
+ {"VUID-vkCmdDrawMultiIndexedEXT-None-09116", "If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them", "1.3-extensions"},
{"VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
{"VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
{"VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -13730,6 +13870,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdExecuteGeneratedCommandsNV-Input-08734", "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then the numeric type associated with all Input variables of the corresponding Location in the Vertex {ExecutionModel} OpEntryPoint must be the same as VkVertexInputAttributeDescription2EXT::format", "1.3-extensions"},
{"VUID-vkCmdExecuteGeneratedCommandsNV-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
{"VUID-vkCmdExecuteGeneratedCommandsNV-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
+ {"VUID-vkCmdExecuteGeneratedCommandsNV-None-02693", "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "1.3-extensions"},
{"VUID-vkCmdExecuteGeneratedCommandsNV-None-02721", "For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description", "1.3-extensions"},
{"VUID-vkCmdExecuteGeneratedCommandsNV-None-02910", "Transform feedback must not be active", "1.3-extensions"},
{"VUID-vkCmdExecuteGeneratedCommandsNV-None-04007", "All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point's interface must have either valid or VK_NULL_HANDLE buffers bound", "1.3-extensions"},
@@ -13917,6 +14058,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdExecuteGeneratedCommandsNV-None-09001", "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_DEPTH_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"},
{"VUID-vkCmdExecuteGeneratedCommandsNV-None-09002", "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either: the VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is set on the currently bound pipeline or the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included VK_IMAGE_ASPECT_STENCIL_BIT and there is no currently bound graphics pipeline or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT it must not be accessed in any way other than as an attachment by this command", "1.3-extensions"},
{"VUID-vkCmdExecuteGeneratedCommandsNV-None-09003", "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command", "1.3-extensions"},
+ {"VUID-vkCmdExecuteGeneratedCommandsNV-None-09116", "If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them", "1.3-extensions"},
{"VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchSADQCOM-06975", "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
{"VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchSADQCOM-06976", "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", "1.3-extensions"},
{"VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchSSDQCOM-06974", "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", "1.3-extensions"},
@@ -14518,6 +14660,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdSetDescriptorBufferOffsetsEXT-commandBuffer-recording", "commandBuffer must be in the recording state", "1.3-extensions"},
{"VUID-vkCmdSetDescriptorBufferOffsetsEXT-commonparent", "Both of commandBuffer, and layout must have been created, allocated, or retrieved from the same VkDevice", "1.3-extensions"},
{"VUID-vkCmdSetDescriptorBufferOffsetsEXT-firstSet-08066", "The sum of firstSet and setCount must be less than or equal to VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created", "1.3-extensions"},
+ {"VUID-vkCmdSetDescriptorBufferOffsetsEXT-firstSet-09006", "The VkDescriptorSetLayout for each set from firstSet to firstSet + setCount when layout was created must have been created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT bit set", "1.3-extensions"},
{"VUID-vkCmdSetDescriptorBufferOffsetsEXT-layout-parameter", "layout must be a valid VkPipelineLayout handle", "1.3-extensions"},
{"VUID-vkCmdSetDescriptorBufferOffsetsEXT-pBufferIndices-08064", "Each element of pBufferIndices must be less than VkPhysicalDeviceDescriptorBufferPropertiesEXT::maxDescriptorBufferBindings", "1.3-extensions"},
{"VUID-vkCmdSetDescriptorBufferOffsetsEXT-pBufferIndices-08065", "Each element of pBufferIndices must reference a valid descriptor buffer binding set by a previous call to vkCmdBindDescriptorBuffersEXT in commandBuffer", "1.3-extensions"},
@@ -14923,6 +15066,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdSubpassShadingHUAWEI-ConstOffset-06551", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
{"VUID-vkCmdSubpassShadingHUAWEI-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
{"VUID-vkCmdSubpassShadingHUAWEI-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
+ {"VUID-vkCmdSubpassShadingHUAWEI-None-02693", "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "1.3-extensions"},
{"VUID-vkCmdSubpassShadingHUAWEI-None-04115", "If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format", "1.3-extensions"},
{"VUID-vkCmdSubpassShadingHUAWEI-None-04931", "This command must be called in a subpass with bind point VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI. No draw commands can be called in the same subpass. Only one vkCmdSubpassShadingHUAWEI command can be called in a subpass", "1.3-extensions"},
{"VUID-vkCmdSubpassShadingHUAWEI-None-06479", "If a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", "1.3-extensions"},
@@ -14984,6 +15128,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdTraceRaysIndirect2KHR-ConstOffset-06551", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
{"VUID-vkCmdTraceRaysIndirect2KHR-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
{"VUID-vkCmdTraceRaysIndirect2KHR-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
+ {"VUID-vkCmdTraceRaysIndirect2KHR-None-02693", "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "1.3-extensions"},
{"VUID-vkCmdTraceRaysIndirect2KHR-None-03429", "Any shader group handle referenced by this call must have been queried from the currently bound ray tracing pipeline", "1.3-extensions"},
{"VUID-vkCmdTraceRaysIndirect2KHR-None-04115", "If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format", "1.3-extensions"},
{"VUID-vkCmdTraceRaysIndirect2KHR-None-06479", "If a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", "1.3-extensions"},
@@ -15053,6 +15198,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdTraceRaysIndirectKHR-ConstOffset-06551", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
{"VUID-vkCmdTraceRaysIndirectKHR-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
{"VUID-vkCmdTraceRaysIndirectKHR-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
+ {"VUID-vkCmdTraceRaysIndirectKHR-None-02693", "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "1.3-extensions"},
{"VUID-vkCmdTraceRaysIndirectKHR-None-03429", "Any shader group handle referenced by this call must have been queried from the currently bound ray tracing pipeline", "1.3-extensions"},
{"VUID-vkCmdTraceRaysIndirectKHR-None-04115", "If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format", "1.3-extensions"},
{"VUID-vkCmdTraceRaysIndirectKHR-None-06479", "If a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", "1.3-extensions"},
@@ -15153,6 +15299,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdTraceRaysKHR-ConstOffset-06551", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
{"VUID-vkCmdTraceRaysKHR-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
{"VUID-vkCmdTraceRaysKHR-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
+ {"VUID-vkCmdTraceRaysKHR-None-02693", "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "1.3-extensions"},
{"VUID-vkCmdTraceRaysKHR-None-03429", "Any shader group handle referenced by this call must have been queried from the currently bound ray tracing pipeline", "1.3-extensions"},
{"VUID-vkCmdTraceRaysKHR-None-04115", "If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format", "1.3-extensions"},
{"VUID-vkCmdTraceRaysKHR-None-06479", "If a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", "1.3-extensions"},
@@ -15251,6 +15398,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdTraceRaysNV-ConstOffset-06551", "If a bound shader accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands", "1.3-extensions"},
{"VUID-vkCmdTraceRaysNV-None-02691", "If a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", "1.3-extensions"},
{"VUID-vkCmdTraceRaysNV-None-02692", "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", "1.3-extensions"},
+ {"VUID-vkCmdTraceRaysNV-None-02693", "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", "1.3-extensions"},
{"VUID-vkCmdTraceRaysNV-None-03429", "Any shader group handle referenced by this call must have been queried from the currently bound ray tracing pipeline", "1.3-extensions"},
{"VUID-vkCmdTraceRaysNV-None-04115", "If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view's format", "1.3-extensions"},
{"VUID-vkCmdTraceRaysNV-None-06479", "If a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", "1.3-extensions"},
@@ -15355,6 +15503,18 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkCmdUpdateBuffer-pData-parameter", "pData must be a valid pointer to an array of dataSize bytes", "1.3-extensions"},
{"VUID-vkCmdUpdateBuffer-renderpass", "This command must only be called outside of a render pass instance", "1.3-extensions"},
{"VUID-vkCmdUpdateBuffer-videocoding", "This command must only be called outside of a video coding scope", "1.3-extensions"},
+ {"VUID-vkCmdUpdatePipelineIndirectBuffer-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations", "1.3-extensions"},
+ {"VUID-vkCmdUpdatePipelineIndirectBuffer-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.3-extensions"},
+ {"VUID-vkCmdUpdatePipelineIndirectBuffer-commandBuffer-recording", "commandBuffer must be in the recording state", "1.3-extensions"},
+ {"VUID-vkCmdUpdatePipelineIndirectBuffer-commonparent", "Both of commandBuffer, and pipeline must have been created, allocated, or retrieved from the same VkDevice", "1.3-extensions"},
+ {"VUID-vkCmdUpdatePipelineIndirectBuffer-deviceGeneratedComputePipelines-09021", "The VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputePipelines feature must be enabled", "1.3-extensions"},
+ {"VUID-vkCmdUpdatePipelineIndirectBuffer-pipeline-09019", "pipeline must have been created with VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV flag set", "1.3-extensions"},
+ {"VUID-vkCmdUpdatePipelineIndirectBuffer-pipeline-09020", "pipeline must have been created with VkComputePipelineIndirectBufferInfoNV structure specifying a valid address where its metadata will be saved", "1.3-extensions"},
+ {"VUID-vkCmdUpdatePipelineIndirectBuffer-pipeline-parameter", "pipeline must be a valid VkPipeline handle", "1.3-extensions"},
+ {"VUID-vkCmdUpdatePipelineIndirectBuffer-pipelineBindPoint-09018", "pipelineBindPoint must be VK_PIPELINE_BIND_POINT_COMPUTE", "1.3-extensions"},
+ {"VUID-vkCmdUpdatePipelineIndirectBuffer-pipelineBindPoint-parameter", "pipelineBindPoint must be a valid VkPipelineBindPoint value", "1.3-extensions"},
+ {"VUID-vkCmdUpdatePipelineIndirectBuffer-renderpass", "This command must only be called outside of a render pass instance", "1.3-extensions"},
+ {"VUID-vkCmdUpdatePipelineIndirectBuffer-videocoding", "This command must only be called outside of a video coding scope", "1.3-extensions"},
{"VUID-vkCmdWaitEvents-commandBuffer-01167", "commandBuffer's current device mask must include exactly one physical device", "1.3-extensions"},
{"VUID-vkCmdWaitEvents-commandBuffer-cmdpool", "The VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations", "1.3-extensions"},
{"VUID-vkCmdWaitEvents-commandBuffer-parameter", "commandBuffer must be a valid VkCommandBuffer handle", "1.3-extensions"},
@@ -16489,6 +16649,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkGetFramebufferTilePropertiesQCOM-pPropertiesCount-parameter", "pPropertiesCount must be a valid pointer to a uint32_t value", "1.3-extensions"},
{"VUID-vkGetGeneratedCommandsMemoryRequirementsNV-device-parameter", "device must be a valid VkDevice handle", "1.3-extensions"},
{"VUID-vkGetGeneratedCommandsMemoryRequirementsNV-deviceGeneratedCommands-02906", "The VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled", "1.3-extensions"},
+ {"VUID-vkGetGeneratedCommandsMemoryRequirementsNV-pInfo-09074", "If pInfo::pipelineBindPoint is of type VK_PIPELINE_BIND_POINT_COMPUTE, then the VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedCompute feature must be enabled", "1.3-extensions"},
{"VUID-vkGetGeneratedCommandsMemoryRequirementsNV-pInfo-parameter", "pInfo must be a valid pointer to a valid VkGeneratedCommandsMemoryRequirementsInfoNV structure", "1.3-extensions"},
{"VUID-vkGetGeneratedCommandsMemoryRequirementsNV-pMemoryRequirements-parameter", "pMemoryRequirements must be a valid pointer to a VkMemoryRequirements2 structure", "1.3-extensions"},
{"VUID-vkGetImageDrmFormatModifierPropertiesEXT-device-parameter", "device must be a valid VkDevice handle", "1.3-extensions"},
@@ -16693,6 +16854,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkGetPhysicalDeviceImageFormatProperties2-pImageFormatInfo-parameter", "pImageFormatInfo must be a valid pointer to a valid VkPhysicalDeviceImageFormatInfo2 structure", "1.3-extensions"},
{"VUID-vkGetPhysicalDeviceImageFormatProperties2-pImageFormatProperties-parameter", "pImageFormatProperties must be a valid pointer to a VkImageFormatProperties2 structure", "1.3-extensions"},
{"VUID-vkGetPhysicalDeviceImageFormatProperties2-pNext-01868", "If the pNext chain of pImageFormatProperties includes a VkAndroidHardwareBufferUsageANDROID structure, the pNext chain of pImageFormatInfo must include a VkPhysicalDeviceExternalImageFormatInfo structure with handleType set to VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID", "1.3-extensions"},
+ {"VUID-vkGetPhysicalDeviceImageFormatProperties2-pNext-09004", "If the pNext chain of pImageFormatProperties includes a VkHostImageCopyDevicePerformanceQueryEXT structure, pImageFormatInfo->usage must contain VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT", "1.3-extensions"},
{"VUID-vkGetPhysicalDeviceImageFormatProperties2-physicalDevice-parameter", "physicalDevice must be a valid VkPhysicalDevice handle", "1.3-extensions"},
{"VUID-vkGetPhysicalDeviceMemoryProperties-pMemoryProperties-parameter", "pMemoryProperties must be a valid pointer to a VkPhysicalDeviceMemoryProperties structure", "1.3-extensions"},
{"VUID-vkGetPhysicalDeviceMemoryProperties-physicalDevice-parameter", "physicalDevice must be a valid VkPhysicalDevice handle", "1.3-extensions"},
@@ -16854,6 +17016,9 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkGetPipelineExecutableStatisticsKHR-pipeline-03273", "The pipeline member of pExecutableInfo must have been created with device", "1.3-extensions"},
{"VUID-vkGetPipelineExecutableStatisticsKHR-pipeline-03274", "The pipeline member of pExecutableInfo must have been created with VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR", "1.3-extensions"},
{"VUID-vkGetPipelineExecutableStatisticsKHR-pipelineExecutableInfo-03272", "The pipelineExecutableInfo feature must be enabled", "1.3-extensions"},
+ {"VUID-vkGetPipelineIndirectDeviceAddressNV-device-parameter", "device must be a valid VkDevice handle", "1.3-extensions"},
+ {"VUID-vkGetPipelineIndirectDeviceAddressNV-deviceGeneratedComputePipelines-09078", "The VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputePipelines feature must be enabled", "1.3-extensions"},
+ {"VUID-vkGetPipelineIndirectDeviceAddressNV-pInfo-parameter", "pInfo must be a valid pointer to a valid VkPipelineIndirectDeviceAddressInfoNV structure", "1.3-extensions"},
{"VUID-vkGetPipelinePropertiesEXT-None-06766", "The pipelinePropertiesIdentifier feature must be enabled", "1.3-extensions"},
{"VUID-vkGetPipelinePropertiesEXT-device-parameter", "device must be a valid VkDevice handle", "1.3-extensions"},
{"VUID-vkGetPipelinePropertiesEXT-pPipelineInfo-parameter", "pPipelineInfo must be a valid pointer to a valid VkPipelineInfoEXT structure", "1.3-extensions"},
@@ -17230,6 +17395,9 @@ static const vuid_spec_text_pair vuid_spec_text[] = {
{"VUID-vkSubmitDebugUtilsMessageEXT-messageTypes-requiredbitmask", "messageTypes must not be 0", "1.3-extensions"},
{"VUID-vkSubmitDebugUtilsMessageEXT-objectType-02591", "The objectType member of each element of pCallbackData->pObjects must not be VK_OBJECT_TYPE_UNKNOWN", "1.3-extensions"},
{"VUID-vkSubmitDebugUtilsMessageEXT-pCallbackData-parameter", "pCallbackData must be a valid pointer to a valid VkDebugUtilsMessengerCallbackDataEXT structure", "1.3-extensions"},
+ {"VUID-vkTransitionImageLayoutEXT-device-parameter", "device must be a valid VkDevice handle", "1.3-extensions"},
+ {"VUID-vkTransitionImageLayoutEXT-pTransitions-parameter", "pTransitions must be a valid pointer to an array of transitionCount valid VkHostImageLayoutTransitionInfoEXT structures", "1.3-extensions"},
+ {"VUID-vkTransitionImageLayoutEXT-transitionCount-arraylength", "transitionCount must be greater than 0", "1.3-extensions"},
{"VUID-vkTrimCommandPool-commandPool-parameter", "commandPool must be a valid VkCommandPool handle", "1.3-extensions"},
{"VUID-vkTrimCommandPool-commandPool-parent", "commandPool must have been created, allocated, or retrieved from device", "1.3-extensions"},
{"VUID-vkTrimCommandPool-device-parameter", "device must be a valid VkDevice handle", "1.3-extensions"},
diff --git a/scripts/known_good.json b/scripts/known_good.json
index 3d70ff4dfd3..5c500f98eb1 100755
--- a/scripts/known_good.json
+++ b/scripts/known_good.json
@@ -18,7 +18,7 @@
"sub_dir": "Vulkan-Headers",
"build_dir": "Vulkan-Headers/build",
"install_dir": "Vulkan-Headers/build/install",
- "commit": "v1.3.257"
+ "commit": "v1.3.258"
},
{
"name": "SPIRV-Headers",
@@ -26,7 +26,7 @@
"sub_dir": "SPIRV-Headers",
"build_dir": "SPIRV-Headers/build",
"install_dir": "SPIRV-Headers/build/install",
- "commit": "3469b164e25cee24435029a569933cb42578db5d"
+ "commit": "f1ba373ef03752ee9f6f2b898bea1213f93e1ef2"
},
{
"name": "SPIRV-Tools",
@@ -40,7 +40,7 @@
"-DSPIRV_SKIP_TESTS=ON",
"-DSPIRV_SKIP_EXECUTABLES=ON"
],
- "commit": "04cdb2d344706052c7a2d359294e830ebac63e74"
+ "commit": "4b6bd5a665ba0529747af3a0bc808732b7e78f48"
},
{
"name": "SPIRV-Reflect",
@@ -48,7 +48,7 @@
"sub_dir": "SPIRV-Reflect",
"install_dir": "SPIRV-Reflect",
"build_step": "skip",
- "commit": "87442baff70befd0523a0e7148fc4e68b71f4bb9",
+ "commit": "d7e316e7d592d16ac58f1fe39b1df7babfe65c0d",
"optional": [
"tests"
]
diff --git a/tests/layers/VkLayer_device_profile_api.json.in b/tests/layers/VkLayer_device_profile_api.json.in
index 35c59f3bc7d..d9c0182da82 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.3.257",
+ "api_version": "1.3.258",
"implementation_version": "2",
"description": "LunarG Device Profile Api Layer",
"device_extensions": [