build: Update to header 1.3.295
diff --git a/layers/VkLayer_khronos_validation.json.in b/layers/VkLayer_khronos_validation.json.in
index f7094b8..45cb263 100644
--- a/layers/VkLayer_khronos_validation.json.in
+++ b/layers/VkLayer_khronos_validation.json.in
@@ -4,7 +4,7 @@
"name": "@JSON_LAYER_NAME@",
"type": "GLOBAL",
"library_path": "@JSON_LIBRARY_PATH@",
- "api_version": "1.3.294",
+ "api_version": "1.3.295",
"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 e79ec40..4f58be3 100644
--- a/layers/vulkan/generated/best_practices.cpp
+++ b/layers/vulkan/generated/best_practices.cpp
@@ -112,6 +112,8 @@
{vvl::Extension::_VK_EXT_vertex_attribute_divisor,
{DeprecationReason::Promoted, {vvl::Extension::_VK_KHR_vertex_attribute_divisor}}},
{vvl::Extension::_VK_EXT_pipeline_creation_feedback, {DeprecationReason::Promoted, {vvl::Version::_VK_VERSION_1_3}}},
+ {vvl::Extension::_VK_NV_compute_shader_derivatives,
+ {DeprecationReason::Promoted, {vvl::Extension::_VK_KHR_compute_shader_derivatives}}},
{vvl::Extension::_VK_NV_fragment_shader_barycentric,
{DeprecationReason::Promoted, {vvl::Extension::_VK_KHR_fragment_shader_barycentric}}},
{vvl::Extension::_VK_EXT_scalar_block_layout, {DeprecationReason::Promoted, {vvl::Version::_VK_VERSION_1_2}}},
diff --git a/layers/vulkan/generated/device_features.cpp b/layers/vulkan/generated/device_features.cpp
index 22f0aac..061bb32 100644
--- a/layers/vulkan/generated/device_features.cpp
+++ b/layers/vulkan/generated/device_features.cpp
@@ -595,6 +595,13 @@
features->cooperativeMatrixRobustBufferAccess |= enabled->cooperativeMatrixRobustBufferAccess == VK_TRUE;
break;
}
+ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR: {
+ const VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR *enabled =
+ reinterpret_cast<const VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR *>(pNext);
+ features->computeDerivativeGroupQuads |= enabled->computeDerivativeGroupQuads == VK_TRUE;
+ features->computeDerivativeGroupLinear |= enabled->computeDerivativeGroupLinear == VK_TRUE;
+ break;
+ }
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR: {
const VkPhysicalDeviceVideoMaintenance1FeaturesKHR *enabled =
reinterpret_cast<const VkPhysicalDeviceVideoMaintenance1FeaturesKHR *>(pNext);
@@ -732,13 +739,6 @@
features->representativeFragmentTest |= enabled->representativeFragmentTest == VK_TRUE;
break;
}
- case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV: {
- const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV *enabled =
- reinterpret_cast<const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV *>(pNext);
- features->computeDerivativeGroupQuads |= enabled->computeDerivativeGroupQuads == VK_TRUE;
- features->computeDerivativeGroupLinear |= enabled->computeDerivativeGroupLinear == VK_TRUE;
- break;
- }
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV: {
const VkPhysicalDeviceMeshShaderFeaturesNV *enabled =
reinterpret_cast<const VkPhysicalDeviceMeshShaderFeaturesNV *>(pNext);
diff --git a/layers/vulkan/generated/device_features.h b/layers/vulkan/generated/device_features.h
index 7c13920..da8e2ad 100644
--- a/layers/vulkan/generated/device_features.h
+++ b/layers/vulkan/generated/device_features.h
@@ -95,9 +95,9 @@
bool colorWriteEnable;
// VkPhysicalDeviceCommandBufferInheritanceFeaturesNV
bool commandBufferInheritance;
- // VkPhysicalDeviceComputeShaderDerivativesFeaturesNV
+ // VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR
bool computeDerivativeGroupLinear;
- // VkPhysicalDeviceComputeShaderDerivativesFeaturesNV
+ // VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR
bool computeDerivativeGroupQuads;
// VkPhysicalDeviceConditionalRenderingFeaturesEXT
bool conditionalRendering;
diff --git a/layers/vulkan/generated/enum_flag_bits.h b/layers/vulkan/generated/enum_flag_bits.h
index 4280e91..4f59683 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"
// clang-format off
-const uint32_t GeneratedVulkanHeaderVersion = 294;
+const uint32_t GeneratedVulkanHeaderVersion = 295;
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;
diff --git a/layers/vulkan/generated/error_location_helper.cpp b/layers/vulkan/generated/error_location_helper.cpp
index 3bab32f..2ff60df 100644
--- a/layers/vulkan/generated/error_location_helper.cpp
+++ b/layers/vulkan/generated/error_location_helper.cpp
@@ -1182,7 +1182,8 @@
{"VkPhysicalDeviceCoherentMemoryFeaturesAMD", 42},
{"VkPhysicalDeviceColorWriteEnableFeaturesEXT", 44},
{"VkPhysicalDeviceCommandBufferInheritanceFeaturesNV", 51},
- {"VkPhysicalDeviceComputeShaderDerivativesFeaturesNV", 51},
+ {"VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR", 52},
+ {"VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR", 54},
{"VkPhysicalDeviceConditionalRenderingFeaturesEXT", 48},
{"VkPhysicalDeviceConservativeRasterizationPropertiesEXT", 55},
{"VkPhysicalDeviceCooperativeMatrixFeaturesKHR", 45},
@@ -2944,6 +2945,7 @@
{"memoryTypeIndex", 16},
{"memoryTypes", 12},
{"memoryUnmapReserve", 19},
+ {"meshAndTaskShaderDerivatives", 29},
{"meshOutputPerPrimitiveGranularity", 34},
{"meshOutputPerVertexGranularity", 31},
{"meshShader", 11},
@@ -4923,6 +4925,7 @@
{"VK_KHR_bind_memory2", 20},
{"VK_KHR_buffer_device_address", 29},
{"VK_KHR_calibrated_timestamps", 29},
+ {"VK_KHR_compute_shader_derivatives", 34},
{"VK_KHR_cooperative_matrix", 26},
{"VK_KHR_copy_commands2", 22},
{"VK_KHR_create_renderpass2", 26},
diff --git a/layers/vulkan/generated/error_location_helper.h b/layers/vulkan/generated/error_location_helper.h
index 5b40562..0072887 100644
--- a/layers/vulkan/generated/error_location_helper.h
+++ b/layers/vulkan/generated/error_location_helper.h
@@ -1178,7 +1178,8 @@
VkPhysicalDeviceCoherentMemoryFeaturesAMD,
VkPhysicalDeviceColorWriteEnableFeaturesEXT,
VkPhysicalDeviceCommandBufferInheritanceFeaturesNV,
- VkPhysicalDeviceComputeShaderDerivativesFeaturesNV,
+ VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR,
+ VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR,
VkPhysicalDeviceConditionalRenderingFeaturesEXT,
VkPhysicalDeviceConservativeRasterizationPropertiesEXT,
VkPhysicalDeviceCooperativeMatrixFeaturesKHR,
@@ -2937,6 +2938,7 @@
memoryTypeIndex,
memoryTypes,
memoryUnmapReserve,
+ meshAndTaskShaderDerivatives,
meshOutputPerPrimitiveGranularity,
meshOutputPerVertexGranularity,
meshShader,
@@ -4907,6 +4909,7 @@
_VK_KHR_bind_memory2,
_VK_KHR_buffer_device_address,
_VK_KHR_calibrated_timestamps,
+ _VK_KHR_compute_shader_derivatives,
_VK_KHR_cooperative_matrix,
_VK_KHR_copy_commands2,
_VK_KHR_create_renderpass2,
diff --git a/layers/vulkan/generated/feature_requirements_helper.cpp b/layers/vulkan/generated/feature_requirements_helper.cpp
index e2f5b28..2e7d9cc 100644
--- a/layers/vulkan/generated/feature_requirements_helper.cpp
+++ b/layers/vulkan/generated/feature_requirements_helper.cpp
@@ -626,10 +626,10 @@
"VkPhysicalDeviceCommandBufferInheritanceFeaturesNV::commandBufferInheritance"};
}
case Feature::computeDerivativeGroupLinear: {
- auto vk_struct = const_cast<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV *>(
- vku::FindStructInPNextChain<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV>(*inout_pnext_chain));
+ auto vk_struct = const_cast<VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR *>(
+ vku::FindStructInPNextChain<VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
- vk_struct = new VkPhysicalDeviceComputeShaderDerivativesFeaturesNV;
+ vk_struct = new VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
@@ -638,13 +638,13 @@
}
}
return {&vk_struct->computeDerivativeGroupLinear,
- "VkPhysicalDeviceComputeShaderDerivativesFeaturesNV::computeDerivativeGroupLinear"};
+ "VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR::computeDerivativeGroupLinear"};
}
case Feature::computeDerivativeGroupQuads: {
- auto vk_struct = const_cast<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV *>(
- vku::FindStructInPNextChain<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV>(*inout_pnext_chain));
+ auto vk_struct = const_cast<VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR *>(
+ vku::FindStructInPNextChain<VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
- vk_struct = new VkPhysicalDeviceComputeShaderDerivativesFeaturesNV;
+ vk_struct = new VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
@@ -653,7 +653,7 @@
}
}
return {&vk_struct->computeDerivativeGroupQuads,
- "VkPhysicalDeviceComputeShaderDerivativesFeaturesNV::computeDerivativeGroupQuads"};
+ "VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR::computeDerivativeGroupQuads"};
}
case Feature::conditionalRendering: {
auto vk_struct = const_cast<VkPhysicalDeviceConditionalRenderingFeaturesEXT *>(
diff --git a/layers/vulkan/generated/feature_requirements_helper.h b/layers/vulkan/generated/feature_requirements_helper.h
index 4389aed..0d4392d 100644
--- a/layers/vulkan/generated/feature_requirements_helper.h
+++ b/layers/vulkan/generated/feature_requirements_helper.h
@@ -90,9 +90,9 @@
colorWriteEnable,
// VkPhysicalDeviceCommandBufferInheritanceFeaturesNV
commandBufferInheritance,
- // VkPhysicalDeviceComputeShaderDerivativesFeaturesNV
+ // VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR
computeDerivativeGroupLinear,
- // VkPhysicalDeviceComputeShaderDerivativesFeaturesNV
+ // VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR
computeDerivativeGroupQuads,
// VkPhysicalDeviceConditionalRenderingFeaturesEXT
conditionalRendering,
diff --git a/layers/vulkan/generated/layer_chassis_dispatch.cpp b/layers/vulkan/generated/layer_chassis_dispatch.cpp
index 81a0532..72f5dfa 100644
--- a/layers/vulkan/generated/layer_chassis_dispatch.cpp
+++ b/layers/vulkan/generated/layer_chassis_dispatch.cpp
@@ -262,118 +262,6 @@
safe_struct->queryPool = layer_data->Unwrap(safe_struct->queryPool);
}
} break;
- case VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO: {
- auto* safe_struct = reinterpret_cast<vku::safe_VkComputePipelineCreateInfo*>(cur_pnext);
-
- if (safe_struct->stage.module) {
- safe_struct->stage.module = layer_data->Unwrap(safe_struct->stage.module);
- }
- UnwrapPnextChainHandles(layer_data, safe_struct->stage.pNext);
-
- if (safe_struct->layout) {
- safe_struct->layout = layer_data->Unwrap(safe_struct->layout);
- }
- if (safe_struct->basePipelineHandle) {
- safe_struct->basePipelineHandle = layer_data->Unwrap(safe_struct->basePipelineHandle);
- }
- } break;
-#ifdef VK_ENABLE_BETA_EXTENSIONS
- case VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX: {
- auto* safe_struct = reinterpret_cast<vku::safe_VkExecutionGraphPipelineCreateInfoAMDX*>(cur_pnext);
- if (safe_struct->pStages) {
- for (uint32_t index0 = 0; index0 < safe_struct->stageCount; ++index0) {
- UnwrapPnextChainHandles(layer_data, safe_struct->pStages[index0].pNext);
-
- if (safe_struct->pStages[index0].module) {
- safe_struct->pStages[index0].module = layer_data->Unwrap(safe_struct->pStages[index0].module);
- }
- }
- }
- if (safe_struct->pLibraryInfo) {
- if (safe_struct->pLibraryInfo->pLibraries) {
- for (uint32_t index1 = 0; index1 < safe_struct->pLibraryInfo->libraryCount; ++index1) {
- safe_struct->pLibraryInfo->pLibraries[index1] =
- layer_data->Unwrap(safe_struct->pLibraryInfo->pLibraries[index1]);
- }
- }
- }
-
- if (safe_struct->layout) {
- safe_struct->layout = layer_data->Unwrap(safe_struct->layout);
- }
- if (safe_struct->basePipelineHandle) {
- safe_struct->basePipelineHandle = layer_data->Unwrap(safe_struct->basePipelineHandle);
- }
- } break;
-#endif // VK_ENABLE_BETA_EXTENSIONS
- case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO: {
- auto* safe_struct = reinterpret_cast<vku::safe_VkGraphicsPipelineCreateInfo*>(cur_pnext);
- if (safe_struct->pStages) {
- for (uint32_t index0 = 0; index0 < safe_struct->stageCount; ++index0) {
- UnwrapPnextChainHandles(layer_data, safe_struct->pStages[index0].pNext);
-
- if (safe_struct->pStages[index0].module) {
- safe_struct->pStages[index0].module = layer_data->Unwrap(safe_struct->pStages[index0].module);
- }
- }
- }
-
- if (safe_struct->layout) {
- safe_struct->layout = layer_data->Unwrap(safe_struct->layout);
- }
- if (safe_struct->renderPass) {
- safe_struct->renderPass = layer_data->Unwrap(safe_struct->renderPass);
- }
- if (safe_struct->basePipelineHandle) {
- safe_struct->basePipelineHandle = layer_data->Unwrap(safe_struct->basePipelineHandle);
- }
- } break;
- case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR: {
- auto* safe_struct = reinterpret_cast<vku::safe_VkRayTracingPipelineCreateInfoKHR*>(cur_pnext);
- if (safe_struct->pStages) {
- for (uint32_t index0 = 0; index0 < safe_struct->stageCount; ++index0) {
- UnwrapPnextChainHandles(layer_data, safe_struct->pStages[index0].pNext);
-
- if (safe_struct->pStages[index0].module) {
- safe_struct->pStages[index0].module = layer_data->Unwrap(safe_struct->pStages[index0].module);
- }
- }
- }
- if (safe_struct->pLibraryInfo) {
- if (safe_struct->pLibraryInfo->pLibraries) {
- for (uint32_t index1 = 0; index1 < safe_struct->pLibraryInfo->libraryCount; ++index1) {
- safe_struct->pLibraryInfo->pLibraries[index1] =
- layer_data->Unwrap(safe_struct->pLibraryInfo->pLibraries[index1]);
- }
- }
- }
-
- if (safe_struct->layout) {
- safe_struct->layout = layer_data->Unwrap(safe_struct->layout);
- }
- if (safe_struct->basePipelineHandle) {
- safe_struct->basePipelineHandle = layer_data->Unwrap(safe_struct->basePipelineHandle);
- }
- } break;
- case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV: {
- auto* safe_struct = reinterpret_cast<vku::safe_VkRayTracingPipelineCreateInfoNV*>(cur_pnext);
- if (safe_struct->pStages) {
- for (uint32_t index0 = 0; index0 < safe_struct->stageCount; ++index0) {
- UnwrapPnextChainHandles(layer_data, safe_struct->pStages[index0].pNext);
-
- if (safe_struct->pStages[index0].module) {
- safe_struct->pStages[index0].module = layer_data->Unwrap(safe_struct->pStages[index0].module);
- }
- }
- }
-
- if (safe_struct->layout) {
- safe_struct->layout = layer_data->Unwrap(safe_struct->layout);
- }
- if (safe_struct->basePipelineHandle) {
- safe_struct->basePipelineHandle = layer_data->Unwrap(safe_struct->basePipelineHandle);
- }
- } break;
case VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO: {
auto* safe_struct = reinterpret_cast<vku::safe_VkPipelineLayoutCreateInfo*>(cur_pnext);
if (safe_struct->pSetLayouts) {
@@ -5309,18 +5197,8 @@
VkResult DispatchGetPipelineKeyKHR(VkDevice device, const VkPipelineCreateInfoKHR* pPipelineCreateInfo,
VkPipelineBinaryKeyKHR* pPipelineKey) {
auto layer_data = GetLayerDataPtr(GetDispatchKey(device), layer_data_map);
- if (!wrap_handles) return layer_data->device_dispatch_table.GetPipelineKeyKHR(device, pPipelineCreateInfo, pPipelineKey);
- vku::safe_VkPipelineCreateInfoKHR var_local_pPipelineCreateInfo;
- vku::safe_VkPipelineCreateInfoKHR* local_pPipelineCreateInfo = nullptr;
- {
- if (pPipelineCreateInfo) {
- local_pPipelineCreateInfo = &var_local_pPipelineCreateInfo;
- local_pPipelineCreateInfo->initialize(pPipelineCreateInfo);
- UnwrapPnextChainHandles(layer_data, local_pPipelineCreateInfo->pNext);
- }
- }
- VkResult result = layer_data->device_dispatch_table.GetPipelineKeyKHR(
- device, (const VkPipelineCreateInfoKHR*)local_pPipelineCreateInfo, pPipelineKey);
+
+ VkResult result = layer_data->device_dispatch_table.GetPipelineKeyKHR(device, pPipelineCreateInfo, pPipelineKey);
return result;
}
diff --git a/layers/vulkan/generated/object_tracker.cpp b/layers/vulkan/generated/object_tracker.cpp
index 85d236b..af1e9de 100644
--- a/layers/vulkan/generated/object_tracker.cpp
+++ b/layers/vulkan/generated/object_tracker.cpp
@@ -4366,64 +4366,6 @@
skip |= ValidateObject(pCreateInfo->pipeline, kVulkanObjectTypePipeline, true,
"VUID-VkPipelineBinaryCreateInfoKHR-pipeline-parameter",
"UNASSIGNED-VkPipelineBinaryCreateInfoKHR-pipeline-parent", pCreateInfo_loc.dot(Field::pipeline));
- if (pCreateInfo->pPipelineCreateInfo) {
- [[maybe_unused]] const Location pPipelineCreateInfo_loc = pCreateInfo_loc.dot(Field::pPipelineCreateInfo);
- if ([[maybe_unused]] auto pNext =
- vku::FindStructInPNextChain<VkComputePipelineCreateInfo>(pCreateInfo->pPipelineCreateInfo->pNext)) {
- [[maybe_unused]] const Location pNext_loc = pPipelineCreateInfo_loc.pNext(Struct::VkComputePipelineCreateInfo);
- skip |= ValidateObject(pNext->layout, kVulkanObjectTypePipelineLayout, false,
- "VUID-VkComputePipelineCreateInfo-layout-parameter",
- "VUID-VkComputePipelineCreateInfo-commonparent", pNext_loc.dot(Field::layout));
- if ((pNext->flags & VK_PIPELINE_CREATE_DERIVATIVE_BIT) && (pNext->basePipelineIndex == -1))
- skip |= ValidateObject(pNext->basePipelineHandle, kVulkanObjectTypePipeline, false,
- "VUID-VkComputePipelineCreateInfo-flags-07984",
- "VUID-VkComputePipelineCreateInfo-commonparent", error_obj.location);
- }
-#ifdef VK_ENABLE_BETA_EXTENSIONS
- if ([[maybe_unused]] auto pNext =
- vku::FindStructInPNextChain<VkExecutionGraphPipelineCreateInfoAMDX>(pCreateInfo->pPipelineCreateInfo->pNext)) {
- [[maybe_unused]] const Location pNext_loc =
- pPipelineCreateInfo_loc.pNext(Struct::VkExecutionGraphPipelineCreateInfoAMDX);
- skip |= ValidateObject(pNext->layout, kVulkanObjectTypePipelineLayout, false,
- "VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-parameter",
- "VUID-VkExecutionGraphPipelineCreateInfoAMDX-commonparent", pNext_loc.dot(Field::layout));
- if ((pNext->flags & VK_PIPELINE_CREATE_DERIVATIVE_BIT) && (pNext->basePipelineIndex == -1))
- skip |= ValidateObject(pNext->basePipelineHandle, kVulkanObjectTypePipeline, false, kVUIDUndefined,
- "VUID-VkExecutionGraphPipelineCreateInfoAMDX-commonparent", error_obj.location);
- }
-#endif // VK_ENABLE_BETA_EXTENSIONS
- if ([[maybe_unused]] auto pNext =
- vku::FindStructInPNextChain<VkGraphicsPipelineCreateInfo>(pCreateInfo->pPipelineCreateInfo->pNext)) {
- [[maybe_unused]] const Location pNext_loc = pPipelineCreateInfo_loc.pNext(Struct::VkGraphicsPipelineCreateInfo);
- if ((pNext->flags & VK_PIPELINE_CREATE_DERIVATIVE_BIT) && (pNext->basePipelineIndex == -1))
- skip |= ValidateObject(pNext->basePipelineHandle, kVulkanObjectTypePipeline, false,
- "VUID-VkGraphicsPipelineCreateInfo-flags-07984",
- "VUID-VkGraphicsPipelineCreateInfo-commonparent", error_obj.location);
- }
- if ([[maybe_unused]] auto pNext =
- vku::FindStructInPNextChain<VkRayTracingPipelineCreateInfoKHR>(pCreateInfo->pPipelineCreateInfo->pNext)) {
- [[maybe_unused]] const Location pNext_loc =
- pPipelineCreateInfo_loc.pNext(Struct::VkRayTracingPipelineCreateInfoKHR);
- skip |= ValidateObject(pNext->layout, kVulkanObjectTypePipelineLayout, false,
- "VUID-VkRayTracingPipelineCreateInfoKHR-layout-parameter",
- "VUID-VkRayTracingPipelineCreateInfoKHR-commonparent", pNext_loc.dot(Field::layout));
- if ((pNext->flags & VK_PIPELINE_CREATE_DERIVATIVE_BIT) && (pNext->basePipelineIndex == -1))
- skip |= ValidateObject(pNext->basePipelineHandle, kVulkanObjectTypePipeline, false,
- "VUID-VkRayTracingPipelineCreateInfoKHR-flags-07984",
- "VUID-VkRayTracingPipelineCreateInfoKHR-commonparent", error_obj.location);
- }
- if ([[maybe_unused]] auto pNext =
- vku::FindStructInPNextChain<VkRayTracingPipelineCreateInfoNV>(pCreateInfo->pPipelineCreateInfo->pNext)) {
- [[maybe_unused]] const Location pNext_loc = pPipelineCreateInfo_loc.pNext(Struct::VkRayTracingPipelineCreateInfoNV);
- skip |= ValidateObject(pNext->layout, kVulkanObjectTypePipelineLayout, false,
- "VUID-VkRayTracingPipelineCreateInfoNV-layout-parameter",
- "VUID-VkRayTracingPipelineCreateInfoNV-commonparent", pNext_loc.dot(Field::layout));
- if ((pNext->flags & VK_PIPELINE_CREATE_DERIVATIVE_BIT) && (pNext->basePipelineIndex == -1))
- skip |= ValidateObject(pNext->basePipelineHandle, kVulkanObjectTypePipeline, false,
- "VUID-VkRayTracingPipelineCreateInfoNV-flags-07984",
- "VUID-VkRayTracingPipelineCreateInfoNV-commonparent", error_obj.location);
- }
- }
}
return skip;
@@ -4450,68 +4392,8 @@
RecordDestroyObject(pipelineBinary, kVulkanObjectTypePipelineBinaryKHR);
}
-bool ObjectLifetimes::PreCallValidateGetPipelineKeyKHR(VkDevice device, const VkPipelineCreateInfoKHR* pPipelineCreateInfo,
- VkPipelineBinaryKeyKHR* pPipelineKey, const ErrorObject& error_obj) const {
- bool skip = false;
- // Checked by chassis: device: "VUID-vkGetPipelineKeyKHR-device-parameter"
- if (pPipelineCreateInfo) {
- [[maybe_unused]] const Location pPipelineCreateInfo_loc = error_obj.location.dot(Field::pPipelineCreateInfo);
- if ([[maybe_unused]] auto pNext = vku::FindStructInPNextChain<VkComputePipelineCreateInfo>(pPipelineCreateInfo->pNext)) {
- [[maybe_unused]] const Location pNext_loc = pPipelineCreateInfo_loc.pNext(Struct::VkComputePipelineCreateInfo);
- skip |= ValidateObject(pNext->layout, kVulkanObjectTypePipelineLayout, false,
- "VUID-VkComputePipelineCreateInfo-layout-parameter",
- "VUID-VkComputePipelineCreateInfo-commonparent", pNext_loc.dot(Field::layout));
- if ((pNext->flags & VK_PIPELINE_CREATE_DERIVATIVE_BIT) && (pNext->basePipelineIndex == -1))
- skip |= ValidateObject(pNext->basePipelineHandle, kVulkanObjectTypePipeline, false,
- "VUID-VkComputePipelineCreateInfo-flags-07984",
- "VUID-VkComputePipelineCreateInfo-commonparent", error_obj.location);
- }
-#ifdef VK_ENABLE_BETA_EXTENSIONS
- if ([[maybe_unused]] auto pNext =
- vku::FindStructInPNextChain<VkExecutionGraphPipelineCreateInfoAMDX>(pPipelineCreateInfo->pNext)) {
- [[maybe_unused]] const Location pNext_loc =
- pPipelineCreateInfo_loc.pNext(Struct::VkExecutionGraphPipelineCreateInfoAMDX);
- skip |= ValidateObject(pNext->layout, kVulkanObjectTypePipelineLayout, false,
- "VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-parameter",
- "VUID-VkExecutionGraphPipelineCreateInfoAMDX-commonparent", pNext_loc.dot(Field::layout));
- if ((pNext->flags & VK_PIPELINE_CREATE_DERIVATIVE_BIT) && (pNext->basePipelineIndex == -1))
- skip |= ValidateObject(pNext->basePipelineHandle, kVulkanObjectTypePipeline, false, kVUIDUndefined,
- "VUID-VkExecutionGraphPipelineCreateInfoAMDX-commonparent", error_obj.location);
- }
-#endif // VK_ENABLE_BETA_EXTENSIONS
- if ([[maybe_unused]] auto pNext = vku::FindStructInPNextChain<VkGraphicsPipelineCreateInfo>(pPipelineCreateInfo->pNext)) {
- [[maybe_unused]] const Location pNext_loc = pPipelineCreateInfo_loc.pNext(Struct::VkGraphicsPipelineCreateInfo);
- if ((pNext->flags & VK_PIPELINE_CREATE_DERIVATIVE_BIT) && (pNext->basePipelineIndex == -1))
- skip |= ValidateObject(pNext->basePipelineHandle, kVulkanObjectTypePipeline, false,
- "VUID-VkGraphicsPipelineCreateInfo-flags-07984",
- "VUID-VkGraphicsPipelineCreateInfo-commonparent", error_obj.location);
- }
- if ([[maybe_unused]] auto pNext =
- vku::FindStructInPNextChain<VkRayTracingPipelineCreateInfoKHR>(pPipelineCreateInfo->pNext)) {
- [[maybe_unused]] const Location pNext_loc = pPipelineCreateInfo_loc.pNext(Struct::VkRayTracingPipelineCreateInfoKHR);
- skip |= ValidateObject(pNext->layout, kVulkanObjectTypePipelineLayout, false,
- "VUID-VkRayTracingPipelineCreateInfoKHR-layout-parameter",
- "VUID-VkRayTracingPipelineCreateInfoKHR-commonparent", pNext_loc.dot(Field::layout));
- if ((pNext->flags & VK_PIPELINE_CREATE_DERIVATIVE_BIT) && (pNext->basePipelineIndex == -1))
- skip |= ValidateObject(pNext->basePipelineHandle, kVulkanObjectTypePipeline, false,
- "VUID-VkRayTracingPipelineCreateInfoKHR-flags-07984",
- "VUID-VkRayTracingPipelineCreateInfoKHR-commonparent", error_obj.location);
- }
- if ([[maybe_unused]] auto pNext =
- vku::FindStructInPNextChain<VkRayTracingPipelineCreateInfoNV>(pPipelineCreateInfo->pNext)) {
- [[maybe_unused]] const Location pNext_loc = pPipelineCreateInfo_loc.pNext(Struct::VkRayTracingPipelineCreateInfoNV);
- skip |= ValidateObject(pNext->layout, kVulkanObjectTypePipelineLayout, false,
- "VUID-VkRayTracingPipelineCreateInfoNV-layout-parameter",
- "VUID-VkRayTracingPipelineCreateInfoNV-commonparent", pNext_loc.dot(Field::layout));
- if ((pNext->flags & VK_PIPELINE_CREATE_DERIVATIVE_BIT) && (pNext->basePipelineIndex == -1))
- skip |= ValidateObject(pNext->basePipelineHandle, kVulkanObjectTypePipeline, false,
- "VUID-VkRayTracingPipelineCreateInfoNV-flags-07984",
- "VUID-VkRayTracingPipelineCreateInfoNV-commonparent", error_obj.location);
- }
- }
-
- return skip;
-}
+// vkGetPipelineKeyKHR:
+// Checked by chassis: device: "VUID-vkGetPipelineKeyKHR-device-parameter"
bool ObjectLifetimes::PreCallValidateGetPipelineBinaryDataKHR(VkDevice device, const VkPipelineBinaryDataInfoKHR* pInfo,
VkPipelineBinaryKeyKHR* pPipelineBinaryKey,
diff --git a/layers/vulkan/generated/object_tracker.h b/layers/vulkan/generated/object_tracker.h
index d42f473..1604af1 100644
--- a/layers/vulkan/generated/object_tracker.h
+++ b/layers/vulkan/generated/object_tracker.h
@@ -813,8 +813,6 @@
const VkAllocationCallbacks* pAllocator, const ErrorObject& error_obj) const override;
void PreCallRecordDestroyPipelineBinaryKHR(VkDevice device, VkPipelineBinaryKHR pipelineBinary,
const VkAllocationCallbacks* pAllocator, const RecordObject& record_obj) override;
-bool PreCallValidateGetPipelineKeyKHR(VkDevice device, const VkPipelineCreateInfoKHR* pPipelineCreateInfo,
- VkPipelineBinaryKeyKHR* pPipelineKey, const ErrorObject& error_obj) const override;
bool PreCallValidateGetPipelineBinaryDataKHR(VkDevice device, const VkPipelineBinaryDataInfoKHR* pInfo,
VkPipelineBinaryKeyKHR* pPipelineBinaryKey, size_t* pPipelineBinaryDataSize,
void* pPipelineBinaryData, const ErrorObject& error_obj) const override;
diff --git a/layers/vulkan/generated/pnext_chain_extraction.cpp b/layers/vulkan/generated/pnext_chain_extraction.cpp
index 790a401..8075b96 100644
--- a/layers/vulkan/generated/pnext_chain_extraction.cpp
+++ b/layers/vulkan/generated/pnext_chain_extraction.cpp
@@ -1158,6 +1158,16 @@
header->pNext = nullptr;
delete reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixPropertiesKHR *>(header);
break;
+ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR:
+ PnextChainFree(header->pNext);
+ header->pNext = nullptr;
+ delete reinterpret_cast<const VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR *>(header);
+ break;
+ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR:
+ PnextChainFree(header->pNext);
+ header->pNext = nullptr;
+ delete reinterpret_cast<const VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR *>(header);
+ break;
case VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_KHR:
PnextChainFree(header->pNext);
header->pNext = nullptr;
@@ -1681,11 +1691,6 @@
delete reinterpret_cast<const VkPresentFrameTokenGGP *>(header);
break;
#endif // VK_USE_PLATFORM_GGP
- case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV:
- PnextChainFree(header->pNext);
- header->pNext = nullptr;
- delete reinterpret_cast<const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV *>(header);
- break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV:
PnextChainFree(header->pNext);
header->pNext = nullptr;
diff --git a/layers/vulkan/generated/spirv_validation_helper.cpp b/layers/vulkan/generated/spirv_validation_helper.cpp
index 7d65950..ab9be7f 100644
--- a/layers/vulkan/generated/spirv_validation_helper.cpp
+++ b/layers/vulkan/generated/spirv_validation_helper.cpp
@@ -188,6 +188,10 @@
{spv::CapabilityRoundingModeRTZ, {0, nullptr, nullptr, "(VkPhysicalDeviceVulkan12Properties::shaderRoundingModeRTZFloat64 & VK_TRUE) != 0"}},
{spv::CapabilityComputeDerivativeGroupQuadsNV, {0, &DeviceFeatures::computeDerivativeGroupQuads, nullptr, ""}},
{spv::CapabilityComputeDerivativeGroupLinearNV, {0, &DeviceFeatures::computeDerivativeGroupLinear, nullptr, ""}},
+ // Not found in current SPIR-V Headers
+ // {spv::CapabilityComputeDerivativeGroupQuadsKHR, {0, &DeviceFeatures::computeDerivativeGroupQuads, nullptr, ""}},
+ // Not found in current SPIR-V Headers
+ // {spv::CapabilityComputeDerivativeGroupLinearKHR, {0, &DeviceFeatures::computeDerivativeGroupLinear, nullptr, ""}},
{spv::CapabilityFragmentBarycentricNV, {0, &DeviceFeatures::fragmentShaderBarycentric, nullptr, ""}},
{spv::CapabilityImageFootprintNV, {0, &DeviceFeatures::imageFootprint, nullptr, ""}},
{spv::CapabilityShadingRateNV, {0, &DeviceFeatures::shadingRateImage, nullptr, ""}},
@@ -359,6 +363,7 @@
{"SPV_KHR_float_controls2", {0, nullptr, &DeviceExtensions::vk_khr_shader_float_controls2, ""}},
{"SPV_KHR_quad_control", {0, nullptr, &DeviceExtensions::vk_khr_shader_quad_control, ""}},
{"SPV_NV_raw_access_chains", {0, nullptr, &DeviceExtensions::vk_nv_raw_access_chains, ""}},
+ {"SPV_KHR_compute_shader_derivatives", {0, nullptr, &DeviceExtensions::vk_khr_compute_shader_derivatives, ""}},
{"SPV_EXT_replicated_composites", {0, nullptr, &DeviceExtensions::vk_ext_shader_replicated_composites, ""}},
{"SPV_KHR_relaxed_extended_instruction", {0, nullptr, &DeviceExtensions::vk_khr_shader_relaxed_extended_instruction, ""}},
};
@@ -1067,6 +1072,7 @@
{"SPV_KHR_float_controls2", {{vvl::Extension::_VK_KHR_shader_float_controls2}}},
{"SPV_KHR_quad_control", {{vvl::Extension::_VK_KHR_shader_quad_control}}},
{"SPV_NV_raw_access_chains", {{vvl::Extension::_VK_NV_raw_access_chains}}},
+ {"SPV_KHR_compute_shader_derivatives", {{vvl::Extension::_VK_KHR_compute_shader_derivatives}}},
{"SPV_EXT_replicated_composites", {{vvl::Extension::_VK_EXT_shader_replicated_composites}}},
{"SPV_KHR_relaxed_extended_instruction", {{vvl::Extension::_VK_KHR_shader_relaxed_extended_instruction}}},
};
diff --git a/layers/vulkan/generated/stateless_validation_helper.cpp b/layers/vulkan/generated/stateless_validation_helper.cpp
index 9fff7a9..2bc5bea 100644
--- a/layers/vulkan/generated/stateless_validation_helper.cpp
+++ b/layers/vulkan/generated/stateless_validation_helper.cpp
@@ -1547,6 +1547,27 @@
}
} break;
+ // Validation code for VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR structure members
+ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR: { // Covers
+ // VUID-VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR-sType-sType
+ if (is_const_param) {
+ [[maybe_unused]] const Location pNext_loc = loc.pNext(Struct::VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR);
+ if (!IsExtEnabled(device_extensions.vk_khr_compute_shader_derivatives) &&
+ !IsExtEnabled(device_extensions.vk_nv_compute_shader_derivatives)) {
+ skip |= LogError(pnext_vuid, instance, pNext_loc,
+ "includes a pointer to a VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR, but when "
+ "creating VkDevice, the parent extension "
+ "(VK_KHR_compute_shader_derivatives or VK_NV_compute_shader_derivatives) was not included in "
+ "ppEnabledExtensionNames.");
+ }
+ VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR* structure =
+ (VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR*)header;
+ skip |= ValidateBool32(pNext_loc.dot(Field::computeDerivativeGroupQuads), structure->computeDerivativeGroupQuads);
+
+ skip |= ValidateBool32(pNext_loc.dot(Field::computeDerivativeGroupLinear), structure->computeDerivativeGroupLinear);
+ }
+ } break;
+
// Validation code for VkPhysicalDeviceVideoMaintenance1FeaturesKHR structure members
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR: { // Covers
// VUID-VkPhysicalDeviceVideoMaintenance1FeaturesKHR-sType-sType
@@ -1916,25 +1937,6 @@
}
} break;
- // Validation code for VkPhysicalDeviceComputeShaderDerivativesFeaturesNV structure members
- case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV: { // Covers
- // VUID-VkPhysicalDeviceComputeShaderDerivativesFeaturesNV-sType-sType
- if (is_const_param) {
- [[maybe_unused]] const Location pNext_loc = loc.pNext(Struct::VkPhysicalDeviceComputeShaderDerivativesFeaturesNV);
- if (!IsExtEnabled(device_extensions.vk_nv_compute_shader_derivatives)) {
- skip |= LogError(pnext_vuid, instance, pNext_loc,
- "includes a pointer to a VkPhysicalDeviceComputeShaderDerivativesFeaturesNV, but when "
- "creating VkDevice, the parent extension "
- "(VK_NV_compute_shader_derivatives) was not included in ppEnabledExtensionNames.");
- }
- VkPhysicalDeviceComputeShaderDerivativesFeaturesNV* structure =
- (VkPhysicalDeviceComputeShaderDerivativesFeaturesNV*)header;
- skip |= ValidateBool32(pNext_loc.dot(Field::computeDerivativeGroupQuads), structure->computeDerivativeGroupQuads);
-
- skip |= ValidateBool32(pNext_loc.dot(Field::computeDerivativeGroupLinear), structure->computeDerivativeGroupLinear);
- }
- } break;
-
// Validation code for VkPhysicalDeviceMeshShaderFeaturesNV structure members
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV: { // Covers
// VUID-VkPhysicalDeviceMeshShaderFeaturesNV-sType-sType
@@ -4558,6 +4560,9 @@
// No Validation code for VkPhysicalDeviceCooperativeMatrixPropertiesKHR structure members -- Covers
// VUID-VkPhysicalDeviceCooperativeMatrixPropertiesKHR-sType-sType
+ // No Validation code for VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR structure members -- Covers
+ // VUID-VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR-sType-sType
+
// No Validation code for VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR structure members -- Covers
// VUID-VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR-sType-sType
@@ -9759,7 +9764,7 @@
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV,
- VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR,
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,
@@ -11239,7 +11244,8 @@
skip |= ValidateStructPnext(pCreateInfos_loc, pCreateInfos[createInfoIndex].pNext,
allowed_structs_VkGraphicsPipelineCreateInfo.size(),
allowed_structs_VkGraphicsPipelineCreateInfo.data(), GeneratedVulkanHeaderVersion,
- kVUIDUndefined, kVUIDUndefined, VK_NULL_HANDLE, true);
+ "VUID-VkGraphicsPipelineCreateInfo-pNext-pNext",
+ "VUID-VkGraphicsPipelineCreateInfo-sType-unique", VK_NULL_HANDLE, true);
skip |= ValidateStructType(pCreateInfos_loc.dot(Field::pDynamicState), pCreateInfos[createInfoIndex].pDynamicState,
VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO, false,
@@ -11303,7 +11309,8 @@
skip |= ValidateStructPnext(pCreateInfos_loc, pCreateInfos[createInfoIndex].pNext,
allowed_structs_VkComputePipelineCreateInfo.size(),
allowed_structs_VkComputePipelineCreateInfo.data(), GeneratedVulkanHeaderVersion,
- kVUIDUndefined, kVUIDUndefined, VK_NULL_HANDLE, true);
+ "VUID-VkComputePipelineCreateInfo-pNext-pNext",
+ "VUID-VkComputePipelineCreateInfo-sType-unique", VK_NULL_HANDLE, true);
skip |= ValidateStructType(pCreateInfos_loc.dot(Field::stage), &(pCreateInfos[createInfoIndex].stage),
VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO, false, kVUIDUndefined,
@@ -13180,6 +13187,7 @@
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_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR,
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,
@@ -21123,7 +21131,8 @@
skip |= ValidateStructPnext(pCreateInfos_loc, pCreateInfos[createInfoIndex].pNext,
allowed_structs_VkExecutionGraphPipelineCreateInfoAMDX.size(),
allowed_structs_VkExecutionGraphPipelineCreateInfoAMDX.data(), GeneratedVulkanHeaderVersion,
- kVUIDUndefined, kVUIDUndefined, VK_NULL_HANDLE, true);
+ "VUID-VkExecutionGraphPipelineCreateInfoAMDX-pNext-pNext",
+ "VUID-VkExecutionGraphPipelineCreateInfoAMDX-sType-unique", VK_NULL_HANDLE, true);
skip |= ValidateStructTypeArray(pCreateInfos_loc.dot(Field::stageCount), pCreateInfos_loc.dot(Field::pStages),
pCreateInfos[createInfoIndex].stageCount, pCreateInfos[createInfoIndex].pStages,
@@ -21818,7 +21827,8 @@
skip |= ValidateStructPnext(pCreateInfos_loc, pCreateInfos[createInfoIndex].pNext,
allowed_structs_VkRayTracingPipelineCreateInfoNV.size(),
allowed_structs_VkRayTracingPipelineCreateInfoNV.data(), GeneratedVulkanHeaderVersion,
- kVUIDUndefined, kVUIDUndefined, VK_NULL_HANDLE, true);
+ "VUID-VkRayTracingPipelineCreateInfoNV-pNext-pNext",
+ "VUID-VkRayTracingPipelineCreateInfoNV-sType-unique", VK_NULL_HANDLE, true);
skip |= ValidateStructTypeArray(pCreateInfos_loc.dot(Field::stageCount), pCreateInfos_loc.dot(Field::pStages),
pCreateInfos[createInfoIndex].stageCount, pCreateInfos[createInfoIndex].pStages,
@@ -24865,7 +24875,8 @@
skip |= ValidateStructPnext(pCreateInfo_loc, pCreateInfo->pNext, allowed_structs_VkComputePipelineCreateInfo.size(),
allowed_structs_VkComputePipelineCreateInfo.data(), GeneratedVulkanHeaderVersion,
- kVUIDUndefined, kVUIDUndefined, VK_NULL_HANDLE, true);
+ "VUID-VkComputePipelineCreateInfo-pNext-pNext", "VUID-VkComputePipelineCreateInfo-sType-unique",
+ VK_NULL_HANDLE, true);
skip |= ValidateStructType(pCreateInfo_loc.dot(Field::stage), &(pCreateInfo->stage),
VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO, false, kVUIDUndefined,
@@ -26772,7 +26783,8 @@
skip |= ValidateStructPnext(pCreateInfos_loc, pCreateInfos[createInfoIndex].pNext,
allowed_structs_VkRayTracingPipelineCreateInfoKHR.size(),
allowed_structs_VkRayTracingPipelineCreateInfoKHR.data(), GeneratedVulkanHeaderVersion,
- kVUIDUndefined, kVUIDUndefined, VK_NULL_HANDLE, true);
+ "VUID-VkRayTracingPipelineCreateInfoKHR-pNext-pNext",
+ "VUID-VkRayTracingPipelineCreateInfoKHR-sType-unique", VK_NULL_HANDLE, true);
skip |= ValidateStructTypeArray(pCreateInfos_loc.dot(Field::stageCount), pCreateInfos_loc.dot(Field::pStages),
pCreateInfos[createInfoIndex].stageCount, pCreateInfos[createInfoIndex].pStages,
diff --git a/layers/vulkan/generated/test_icd_helper.h b/layers/vulkan/generated/test_icd_helper.h
index b80b2fc..2ac3854 100644
--- a/layers/vulkan/generated/test_icd_helper.h
+++ b/layers/vulkan/generated/test_icd_helper.h
@@ -201,6 +201,7 @@
{VK_KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME, VK_KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION},
{VK_KHR_PIPELINE_BINARY_EXTENSION_NAME, VK_KHR_PIPELINE_BINARY_SPEC_VERSION},
{VK_KHR_COOPERATIVE_MATRIX_EXTENSION_NAME, VK_KHR_COOPERATIVE_MATRIX_SPEC_VERSION},
+ {VK_KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME, VK_KHR_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION},
{VK_KHR_VIDEO_DECODE_AV1_EXTENSION_NAME, VK_KHR_VIDEO_DECODE_AV1_SPEC_VERSION},
{VK_KHR_VIDEO_MAINTENANCE_1_EXTENSION_NAME, VK_KHR_VIDEO_MAINTENANCE_1_SPEC_VERSION},
{VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME, VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION},
diff --git a/layers/vulkan/generated/vk_extension_helper.cpp b/layers/vulkan/generated/vk_extension_helper.cpp
index 0d96e00..6c0f840 100644
--- a/layers/vulkan/generated/vk_extension_helper.cpp
+++ b/layers/vulkan/generated/vk_extension_helper.cpp
@@ -131,6 +131,7 @@
{"VK_KHR_ray_tracing_position_fetch", vvl::Extension::_VK_KHR_ray_tracing_position_fetch},
{"VK_KHR_pipeline_binary", vvl::Extension::_VK_KHR_pipeline_binary},
{"VK_KHR_cooperative_matrix", vvl::Extension::_VK_KHR_cooperative_matrix},
+ {"VK_KHR_compute_shader_derivatives", vvl::Extension::_VK_KHR_compute_shader_derivatives},
{"VK_KHR_video_decode_av1", vvl::Extension::_VK_KHR_video_decode_av1},
{"VK_KHR_video_maintenance1", vvl::Extension::_VK_KHR_video_maintenance1},
{"VK_KHR_vertex_attribute_divisor", vvl::Extension::_VK_KHR_vertex_attribute_divisor},
diff --git a/layers/vulkan/generated/vk_extension_helper.h b/layers/vulkan/generated/vk_extension_helper.h
index f5ba514..22b24ea 100644
--- a/layers/vulkan/generated/vk_extension_helper.h
+++ b/layers/vulkan/generated/vk_extension_helper.h
@@ -368,6 +368,7 @@
ExtEnabled vk_khr_ray_tracing_position_fetch{kNotEnabled};
ExtEnabled vk_khr_pipeline_binary{kNotEnabled};
ExtEnabled vk_khr_cooperative_matrix{kNotEnabled};
+ ExtEnabled vk_khr_compute_shader_derivatives{kNotEnabled};
ExtEnabled vk_khr_video_decode_av1{kNotEnabled};
ExtEnabled vk_khr_video_maintenance1{kNotEnabled};
ExtEnabled vk_khr_vertex_attribute_divisor{kNotEnabled};
@@ -922,6 +923,10 @@
{vvl::Extension::_VK_KHR_cooperative_matrix,
Info(&DeviceExtensions::vk_khr_cooperative_matrix, {{{&DeviceExtensions::vk_khr_get_physical_device_properties2,
VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME}}})},
+ {vvl::Extension::_VK_KHR_compute_shader_derivatives,
+ Info(&DeviceExtensions::vk_khr_compute_shader_derivatives,
+ {{{&DeviceExtensions::vk_khr_get_physical_device_properties2,
+ VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME}}})},
{vvl::Extension::_VK_KHR_video_decode_av1,
Info(&DeviceExtensions::vk_khr_video_decode_av1,
{{{&DeviceExtensions::vk_khr_video_decode_queue, VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME}}})},
@@ -1841,6 +1846,7 @@
case vvl::Extension::_VK_KHR_ray_tracing_position_fetch:
case vvl::Extension::_VK_KHR_pipeline_binary:
case vvl::Extension::_VK_KHR_cooperative_matrix:
+ case vvl::Extension::_VK_KHR_compute_shader_derivatives:
case vvl::Extension::_VK_KHR_video_decode_av1:
case vvl::Extension::_VK_KHR_video_maintenance1:
case vvl::Extension::_VK_KHR_vertex_attribute_divisor:
diff --git a/layers/vulkan/generated/vk_validation_error_messages.h b/layers/vulkan/generated/vk_validation_error_messages.h
index b98d023..d009882 100644
--- a/layers/vulkan/generated/vk_validation_error_messages.h
+++ b/layers/vulkan/generated/vk_validation_error_messages.h
@@ -1,6 +1,6 @@
// *** THIS FILE IS GENERATED - DO NOT EDIT ***
// See generate_spec_error_message.py for modifications
-// Based on Vulkan specification version: 1.3.294
+// Based on Vulkan specification version: 1.3.295
/***************************************************************************
*
@@ -317,7 +317,6 @@
{"VUID-RuntimeSpirv-MeshNV-07113", "For mesh shaders using the MeshNV Execution Model the OutputVertices OpExecutionMode must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesNV::maxMeshOutputVertices", "1.3-extensions"},
{"VUID-RuntimeSpirv-MeshNV-07114", "For mesh shaders using the MeshNV Execution Model the OutputPrimitivesNV OpExecutionMode must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesNV::maxMeshOutputPrimitives", "1.3-extensions"},
{"VUID-RuntimeSpirv-NodePayloadAMDX-09192", "Variables in the NodePayloadAMDX storage class must only be declared in the GLCompute execution model", "1.3-extensions"},
- {"VUID-RuntimeSpirv-NonUniform-06274", "", "1.3-extensions"},
{"VUID-RuntimeSpirv-NonWritable-06340", "If fragmentStoresAndAtomics is not enabled, then all storage image, storage texel buffer, and storage buffer variables in the fragment stage must be decorated with the NonWritable decoration", "1.3-extensions"},
{"VUID-RuntimeSpirv-NonWritable-06341", "If vertexPipelineStoresAndAtomics is not enabled, then all storage image, storage texel buffer, and storage buffer variables in the vertex, tessellation, and geometry stages must be decorated with the NonWritable decoration", "1.3-extensions"},
{"VUID-RuntimeSpirv-None-06275", "shaderSubgroupExtendedTypes must be enabled for group operations to use 8-bit integer, 16-bit integer, 64-bit integer, 16-bit floating-point, and vectors of these types", "1.3-extensions"},
@@ -463,6 +462,7 @@
{"VUID-RuntimeSpirv-maxTaskPayloadAndSharedMemorySize-08760", "The sum of size in bytes for variables and padding in the TaskPayloadWorkgroupEXT or Workgroup Storage Class in the TaskEXT Execution Model must be less than or equal to maxTaskPayloadAndSharedMemorySize", "1.3-extensions"},
{"VUID-RuntimeSpirv-maxTaskPayloadSize-08758", "The sum of size in bytes for variables and in the TaskPayloadWorkgroupEXT Storage Class in the TaskEXT Execution Model must be less than or equal to maxTaskPayloadSize", "1.3-extensions"},
{"VUID-RuntimeSpirv-maxTaskSharedMemorySize-08759", "The sum of size in bytes for variables and padding in the Workgroup Storage Class in the TaskEXT Execution Model must be less than or equal to maxTaskSharedMemorySize", "1.3-extensions"},
+ {"VUID-RuntimeSpirv-meshAndTaskShaderDerivatives-10153", "If meshAndTaskShaderDerivatives is VK_FALSE, the DerivativeGroupLinearKHR and DerivativeGroupQuadsKHR execution modes must not be used in the MeshEXT, MeshNV, TaskEXT, or TaskNV Execution Model", "1.3-extensions"},
{"VUID-RuntimeSpirv-minSampleShading-08731", "If sample shading is enabled and minSampleShading is 1.0, the sample operand of any OpColorAttachmentReadEXT, OpDepthAttachmentReadEXT, or OpStencilAttachmentReadEXT operation must evaluate to the value of the coverage index for any given fragment invocation", "1.3-extensions"},
{"VUID-RuntimeSpirv-minSampleShading-08732", "If sample shading is enabled and any of the OpColorAttachmentReadEXT, OpDepthAttachmentReadEXT, or OpStencilAttachmentReadEXT operations are used, then minSampleShading must be 1.0", "1.3-extensions"},
{"VUID-RuntimeSpirv-pNext-09226", "If a OpImageBlockMatchWindow*QCOM operation is used, then target sampled image must have been created using asampler object that included VkSamplerBlockMatchWindowCreateInfoQCOM in the pNext chain", "1.3-extensions"},
@@ -564,7 +564,9 @@
{"VUID-StandaloneSpirv-Component-04923", "The Component decorations value must not be 1 or 3 for scalar or two-component 64-bit data types", "1.3-extensions"},
{"VUID-StandaloneSpirv-Component-04924", "The Component decorations must not be used with any type that is not a scalar or vector, or an array of such a type", "1.3-extensions"},
{"VUID-StandaloneSpirv-Component-07703", "The Component decorations must not be used for a 64-bit vector type with more than two components", "1.3-extensions"},
+ {"VUID-StandaloneSpirv-DerivativeGroupLinearKHR-10152", "For compute, mesh, or task shaders using the DerivativeGroupLinearKHR execution mode, the product of the dimensions of the local workgroup size must be a multiple of four", "1.3-extensions"},
{"VUID-StandaloneSpirv-DerivativeGroupLinearNV-04778", "For compute shaders using the DerivativeGroupLinearNV execution mode, the product of the dimensions of the local workgroup size must be a multiple of four", "1.3-extensions"},
+ {"VUID-StandaloneSpirv-DerivativeGroupQuadsKHR-10151", "For compute, mesh, or task shaders using the DerivativeGroupQuadsKHR execution mode, the first two dimensions of the local workgroup size must be a multiple of two", "1.3-extensions"},
{"VUID-StandaloneSpirv-DerivativeGroupQuadsNV-04684", "For compute shaders using the DerivativeGroupQuadsNV execution mode, the first two dimensions of the local workgroup size must be a multiple of two", "1.3-extensions"},
{"VUID-StandaloneSpirv-DescriptorSet-06491", "If a variable is decorated by DescriptorSet or Binding, the Storage Class must correspond to an entry in Shader Resource and Storage Class Correspondence", "1.3-extensions"},
{"VUID-StandaloneSpirv-ExecutionModel-07320", "If the Execution Model is TessellationControl, and the MemoryModel is GLSL450, the Scope for memory must not be Workgroup", "1.3-extensions"},
@@ -1652,9 +1654,11 @@
{"VUID-VkComputePipelineCreateInfo-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-VkComputePipelineCreateInfo-layout-10069", "If a push constant block is declared in a shader, the block must be contained inside the push constant range in layout that matches the stage", "1.3-extensions"},
{"VUID-VkComputePipelineCreateInfo-layout-parameter", "layout must be a valid VkPipelineLayout handle", "1.3-extensions"},
+ {"VUID-VkComputePipelineCreateInfo-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 VkComputePipelineIndirectBufferInfoNV, VkPipelineBinaryInfoKHR, VkPipelineCompilerControlCreateInfoAMD, VkPipelineCreateFlags2CreateInfoKHR, VkPipelineCreationFeedbackCreateInfo, VkPipelineRobustnessCreateInfoEXT, or VkSubpassShadingPipelineCreateInfoHUAWEI", "1.3-extensions"},
{"VUID-VkComputePipelineCreateInfo-pipelineCreationCacheControl-02875", "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-VkComputePipelineCreateInfo-pipelineStageCreationFeedbackCount-06566", "If VkPipelineCreationFeedbackCreateInfo::pipelineStageCreationFeedbackCount is not 0, it must be 1", "1.3-extensions"},
{"VUID-VkComputePipelineCreateInfo-sType-sType", "sType must be VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO", "1.3-extensions"},
+ {"VUID-VkComputePipelineCreateInfo-sType-unique", "The sType value of each struct in the pNext chain must be unique", "1.3-extensions"},
{"VUID-VkComputePipelineCreateInfo-shaderEnqueue-09177", "If shaderEnqueue is not enabled, flags must not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR", "1.3-extensions"},
{"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"},
@@ -2744,10 +2748,12 @@
{"VUID-VkExecutionGraphPipelineCreateInfoAMDX-pLibraryInfo-09131", "If pLibraryInfo is not NULL, each element of its pLibraries member must have been created with a layout that is compatible with the layout in this pipeline", "1.3-extensions"},
{"VUID-VkExecutionGraphPipelineCreateInfoAMDX-pLibraryInfo-09133", "If pLibraryInfo is not NULL, each element of pLibraryInfo->libraries must be either a compute pipeline or an execution graph pipeline", "1.3-extensions"},
{"VUID-VkExecutionGraphPipelineCreateInfoAMDX-pLibraryInfo-parameter", "If pLibraryInfo is not NULL, pLibraryInfo must be a valid pointer to a valid VkPipelineLibraryCreateInfoKHR structure", "1.3-extensions"},
+ {"VUID-VkExecutionGraphPipelineCreateInfoAMDX-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 VkPipelineCompilerControlCreateInfoAMD or VkPipelineCreationFeedbackCreateInfo", "1.3-extensions"},
{"VUID-VkExecutionGraphPipelineCreateInfoAMDX-pStages-09129", "The shader code for the entry point identified by each element of pStages 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-VkExecutionGraphPipelineCreateInfoAMDX-pStages-parameter", "If stageCount is not 0, and pStages is not NULL, pStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures", "1.3-extensions"},
{"VUID-VkExecutionGraphPipelineCreateInfoAMDX-pipelineCreationCacheControl-02875", "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-VkExecutionGraphPipelineCreateInfoAMDX-sType-sType", "sType must be VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX", "1.3-extensions"},
+ {"VUID-VkExecutionGraphPipelineCreateInfoAMDX-sType-unique", "The sType value of each struct in the pNext chain must be unique", "1.3-extensions"},
{"VUID-VkExecutionGraphPipelineCreateInfoAMDX-stage-09128", "The stage member of any element of pStages must be VK_SHADER_STAGE_COMPUTE_BIT", "1.3-extensions"},
{"VUID-VkExecutionGraphPipelineScratchSizeAMDX-sType-sType", "sType must be VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX", "1.3-extensions"},
{"VUID-VkExportFenceCreateInfo-handleTypes-01446", "The bits in handleTypes must be supported and compatible, as reported by VkExternalFenceProperties", "1.3-extensions"},
@@ -3254,6 +3260,7 @@
{"VUID-VkGraphicsPipelineCreateInfo-pLibraries-09567", "If one element of VkPipelineLibraryCreateInfoKHR::pLibraries was created with VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT and a value of pMultisampleState->sampleShadingEnable equal VK_TRUE, and if VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, pMultisampleState must be identically defined to that used to create the library", "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, or VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic states is not set, or alphaToOne is enabled on the device and VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT 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 it 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, VkExternalFormatANDROID, VkGraphicsPipelineLibraryCreateInfoEXT, VkGraphicsPipelineShaderGroupsCreateInfoNV, VkMultiviewPerViewAttributesInfoNVX, VkPipelineBinaryInfoKHR, VkPipelineCompilerControlCreateInfoAMD, VkPipelineCreateFlags2CreateInfoKHR, VkPipelineCreationFeedbackCreateInfo, VkPipelineDiscardRectangleStateCreateInfoEXT, VkPipelineFragmentShadingRateEnumStateCreateInfoNV, VkPipelineFragmentShadingRateStateCreateInfoKHR, VkPipelineLibraryCreateInfoKHR, VkPipelineRenderingCreateInfo, VkPipelineRepresentativeFragmentTestStateCreateInfoNV, VkPipelineRobustnessCreateInfoEXT, VkRenderingAttachmentLocationInfoKHR, or VkRenderingInputAttachmentIndexInfoKHR", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-06601", "If the pipeline requires pre-rasterization shader state, and related dynamic state is not set, pRasterizationState must be a valid pointer to a valid VkPipelineRasterizationStateCreateInfo structure", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-09039", "If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, and related dynamic state is not set, then pMultisampleState must be a valid pointer to a valid VkPipelineMultisampleStateCreateInfo 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"},
@@ -3343,6 +3350,7 @@
{"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 renderPass is not VK_NULL_HANDLE, the pipeline requires fragment shader 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, or VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic states is not set, or alphaToOne is enabled on the device and VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT is not set, then pMultisampleState must be a valid pointer to a valid VkPipelineMultisampleStateCreateInfo structure", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-sType-sType", "sType must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO", "1.3-extensions"},
+ {"VUID-VkGraphicsPipelineCreateInfo-sType-unique", "The sType value of each struct in the pNext chain must be unique", "1.3-extensions"},
{"VUID-VkGraphicsPipelineCreateInfo-sampleLocationsEnable-01524", "If the pipeline requires fragment shader state, and the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT structure included in the pNext chain of pMultisampleState is VK_TRUE, the fragment shader code must not statically use the extended instruction InterpolateAtSample", "1.3-extensions"},
{"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-shaderTessellationAndGeometryPointSize-08776", "If the pipeline is being created with a Geometry Execution Model, uses the OutputPoints Execution Mode, and shaderTessellationAndGeometryPointSize is enabled, a PointSize decorated variable must be written to for every vertex emitted if maintenance5 is not enabled", "1.3-extensions"},
@@ -4683,7 +4691,8 @@
{"VUID-VkPhysicalDeviceCoherentMemoryFeaturesAMD-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD", "1.3-extensions"},
{"VUID-VkPhysicalDeviceColorWriteEnableFeaturesEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT", "1.3-extensions"},
{"VUID-VkPhysicalDeviceCommandBufferInheritanceFeaturesNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV", "1.3-extensions"},
- {"VUID-VkPhysicalDeviceComputeShaderDerivativesFeaturesNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV", "1.3-extensions"},
+ {"VUID-VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR", "1.3-extensions"},
+ {"VUID-VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR", "1.3-extensions"},
{"VUID-VkPhysicalDeviceConditionalRenderingFeaturesEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT", "1.3-extensions"},
{"VUID-VkPhysicalDeviceConservativeRasterizationPropertiesEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT", "1.3-extensions"},
{"VUID-VkPhysicalDeviceCooperativeMatrixFeaturesKHR-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR", "1.3-extensions"},
@@ -5133,7 +5142,7 @@
{"VUID-VkPipelineCreateFlags2CreateInfoKHR-flags-parameter", "flags must be a valid combination of VkPipelineCreateFlagBits2KHR values", "1.3-extensions"},
{"VUID-VkPipelineCreateFlags2CreateInfoKHR-flags-requiredbitmask", "flags must not be 0", "1.3-extensions"},
{"VUID-VkPipelineCreateFlags2CreateInfoKHR-sType-sType", "sType must be VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR", "1.3-extensions"},
- {"VUID-VkPipelineCreateInfoKHR-pNext-09604", "pNext must be pointer to a valid instance of VkGraphicsPipelineCreateInfo, VkExecutionGraphPipelineCreateInfoAMDX, VkRayTracingPipelineCreateInfoNV, VkRayTracingPipelineCreateInfoKHR, or VkComputePipelineCreateInfo", "1.3-extensions"},
+ {"VUID-VkPipelineCreateInfoKHR-pNext-09604", "pNext must be pointer to a valid instance of VkGraphicsPipelineCreateInfo, VkExecutionGraphPipelineCreateInfoAMDX, VkRayTracingPipelineCreateInfoKHR, or VkComputePipelineCreateInfo", "1.3-extensions"},
{"VUID-VkPipelineCreateInfoKHR-sType-sType", "sType must be VK_STRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHR", "1.3-extensions"},
{"VUID-VkPipelineCreationFeedbackCreateInfo-pPipelineCreationFeedback-parameter", "pPipelineCreationFeedback must be a valid pointer to a VkPipelineCreationFeedback structure", "1.3-extensions"},
{"VUID-VkPipelineCreationFeedbackCreateInfo-pPipelineStageCreationFeedbacks-parameter", "If pipelineStageCreationFeedbackCount is not 0, pPipelineStageCreationFeedbacks must be a valid pointer to an array of pipelineStageCreationFeedbackCount VkPipelineCreationFeedback structures", "1.3-extensions"},
@@ -5590,6 +5599,7 @@
{"VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-07999", "If pLibraryInfo is NULL or its libraryCount is 0, stageCount must not be 0", "1.3-extensions"},
{"VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-parameter", "If pLibraryInfo is not NULL, pLibraryInfo must be a valid pointer to a valid VkPipelineLibraryCreateInfoKHR structure", "1.3-extensions"},
{"VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInterface-parameter", "If pLibraryInterface is not NULL, pLibraryInterface must be a valid pointer to a valid VkRayTracingPipelineInterfaceCreateInfoKHR structure", "1.3-extensions"},
+ {"VUID-VkRayTracingPipelineCreateInfoKHR-pNext-pNext", "Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkPipelineBinaryInfoKHR, VkPipelineCreateFlags2CreateInfoKHR, VkPipelineCreationFeedbackCreateInfo, or VkPipelineRobustnessCreateInfoEXT", "1.3-extensions"},
{"VUID-VkRayTracingPipelineCreateInfoKHR-pStages-03426", "The shader code for the entry points identified by pStages, and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter", "1.3-extensions"},
{"VUID-VkRayTracingPipelineCreateInfoKHR-pStages-parameter", "If stageCount is not 0, pStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures", "1.3-extensions"},
{"VUID-VkRayTracingPipelineCreateInfoKHR-pipelineCreationCacheControl-02905", "If the pipelineCreationCacheControl feature is not enabled, flags must not include VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT or VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT", "1.3-extensions"},
@@ -5598,6 +5608,7 @@
{"VUID-VkRayTracingPipelineCreateInfoKHR-rayTraversalPrimitiveCulling-03596", "If the rayTraversalPrimitiveCulling feature is not enabled, flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR", "1.3-extensions"},
{"VUID-VkRayTracingPipelineCreateInfoKHR-rayTraversalPrimitiveCulling-03597", "If the rayTraversalPrimitiveCulling feature is not enabled, flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR", "1.3-extensions"},
{"VUID-VkRayTracingPipelineCreateInfoKHR-sType-sType", "sType must be VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR", "1.3-extensions"},
+ {"VUID-VkRayTracingPipelineCreateInfoKHR-sType-unique", "The sType value of each struct in the pNext chain must be unique", "1.3-extensions"},
{"VUID-VkRayTracingPipelineCreateInfoKHR-stage-03425", "If flags does not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR, the stage member of at least one element of pStages, including those implicitly added by pLibraryInfo, must be VK_SHADER_STAGE_RAYGEN_BIT_KHR", "1.3-extensions"},
{"VUID-VkRayTracingPipelineCreateInfoKHR-stage-06899", "The stage value in all pStages elements must be one of VK_SHADER_STAGE_RAYGEN_BIT_KHR, VK_SHADER_STAGE_ANY_HIT_BIT_KHR, VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR, VK_SHADER_STAGE_MISS_BIT_KHR, VK_SHADER_STAGE_INTERSECTION_BIT_KHR, or VK_SHADER_STAGE_CALLABLE_BIT_KHR", "1.3-extensions"},
{"VUID-VkRayTracingPipelineCreateInfoNV-None-09497", "If the pNext chain does not include a VkPipelineCreateFlags2CreateInfoKHR structure, flags must be a valid combination of VkPipelineCreateFlagBits values", "1.3-extensions"},
@@ -5628,11 +5639,13 @@
{"VUID-VkRayTracingPipelineCreateInfoNV-layout-parameter", "layout must be a valid VkPipelineLayout handle", "1.3-extensions"},
{"VUID-VkRayTracingPipelineCreateInfoNV-maxRecursionDepth-03457", "maxRecursionDepth must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxRecursionDepth", "1.3-extensions"},
{"VUID-VkRayTracingPipelineCreateInfoNV-pGroups-parameter", "pGroups must be a valid pointer to an array of groupCount valid VkRayTracingShaderGroupCreateInfoNV structures", "1.3-extensions"},
+ {"VUID-VkRayTracingPipelineCreateInfoNV-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 VkPipelineCreateFlags2CreateInfoKHR or VkPipelineCreationFeedbackCreateInfo", "1.3-extensions"},
{"VUID-VkRayTracingPipelineCreateInfoNV-pStages-03426", "The shader code for the entry points identified by pStages, and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter", "1.3-extensions"},
{"VUID-VkRayTracingPipelineCreateInfoNV-pStages-parameter", "pStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures", "1.3-extensions"},
{"VUID-VkRayTracingPipelineCreateInfoNV-pipelineCreationCacheControl-02905", "If the pipelineCreationCacheControl feature is not enabled, flags must not include VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT or VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT", "1.3-extensions"},
{"VUID-VkRayTracingPipelineCreateInfoNV-pipelineStageCreationFeedbackCount-06651", "If VkPipelineCreationFeedbackCreateInfo::pipelineStageCreationFeedbackCount is not 0, it must be equal to stageCount", "1.3-extensions"},
{"VUID-VkRayTracingPipelineCreateInfoNV-sType-sType", "sType must be VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV", "1.3-extensions"},
+ {"VUID-VkRayTracingPipelineCreateInfoNV-sType-unique", "The sType value of each struct in the pNext chain must be unique", "1.3-extensions"},
{"VUID-VkRayTracingPipelineCreateInfoNV-stage-06232", "The stage member of at least one element of pStages must be VK_SHADER_STAGE_RAYGEN_BIT_KHR", "1.3-extensions"},
{"VUID-VkRayTracingPipelineCreateInfoNV-stage-06898", "The stage value in all pStages elements must be one of VK_SHADER_STAGE_RAYGEN_BIT_KHR, VK_SHADER_STAGE_ANY_HIT_BIT_KHR, VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR, VK_SHADER_STAGE_MISS_BIT_KHR, VK_SHADER_STAGE_INTERSECTION_BIT_KHR, or VK_SHADER_STAGE_CALLABLE_BIT_KHR", "1.3-extensions"},
{"VUID-VkRayTracingPipelineCreateInfoNV-stageCount-arraylength", "stageCount must be greater than 0", "1.3-extensions"},
@@ -17521,6 +17534,7 @@
{"VUID-vkCreateRayTracingPipelinesNV-pCreateInfos-parameter", "pCreateInfos must be a valid pointer to an array of createInfoCount valid VkRayTracingPipelineCreateInfoNV structures", "1.3-extensions"},
{"VUID-vkCreateRayTracingPipelinesNV-pNext-09616", "If VkPipelineBinaryInfoKHR::binaryCount is not 0 for any element of pCreateInfos, pipelineCache must be VK_NULL_HANDLE", "1.3-extensions"},
{"VUID-vkCreateRayTracingPipelinesNV-pNext-09617", "If a VkPipelineCreateFlags2CreateInfoKHR structure with the VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR flag set is included in the pNext chain of any element of pCreateInfos, pipelineCache must be VK_NULL_HANDLE", "1.3-extensions"},
+ {"VUID-vkCreateRayTracingPipelinesNV-pNext-10150", "If a VkPipelineCreateFlags2CreateInfoKHR structure is included in the pNext chain of any element of pCreateInfos, VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR flag must not be set", "1.3-extensions"},
{"VUID-vkCreateRayTracingPipelinesNV-pPipelines-parameter", "pPipelines must be a valid pointer to an array of createInfoCount VkPipeline handles", "1.3-extensions"},
{"VUID-vkCreateRayTracingPipelinesNV-pipelineCache-02903", "If pipelineCache was created with VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT, host access to pipelineCache must be externally synchronized", "1.3-extensions"},
{"VUID-vkCreateRayTracingPipelinesNV-pipelineCache-parameter", "If pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle", "1.3-extensions"},
diff --git a/scripts/generators/base_generator.py b/scripts/generators/base_generator.py
index 6301bbb..5a87018 100644
--- a/scripts/generators/base_generator.py
+++ b/scripts/generators/base_generator.py
@@ -574,11 +574,6 @@
allowDuplicate = boolGet(typeElem, 'allowduplicate')
extends = splitIfGet(typeElem, 'structextends')
- # This is a workaround for https://gitlab.khronos.org/vulkan/vulkan/-/issues/3979
- # The spec change is done in the XML in https://gitlab.khronos.org/vulkan/vulkan/-/merge_requests/6847
- # TODO - The 1.3.295 Headers will have this and these 2 lines may be removed
- if (extends and 'VkPipelineCreateInfoKHR' in extends):
- extends = None
extendedBy = self.registry.validextensionstructs[typeName] if len(self.registry.validextensionstructs[typeName]) > 0 else None
membersElem = typeInfo.elem.findall('.//member')
diff --git a/scripts/known_good.json b/scripts/known_good.json
index 1d55b5e..1a78f0d 100755
--- a/scripts/known_good.json
+++ b/scripts/known_good.json
@@ -7,7 +7,7 @@
"sub_dir": "Vulkan-Headers",
"build_dir": "Vulkan-Headers/build",
"install_dir": "Vulkan-Headers/build/install",
- "commit": "v1.3.294"
+ "commit": "v1.3.295"
},
{
"name": "Vulkan-Utility-Libraries",
@@ -15,7 +15,7 @@
"sub_dir": "Vulkan-Utility-Libraries",
"build_dir": "Vulkan-Utility-Libraries/build",
"install_dir": "Vulkan-Utility-Libraries/build/install",
- "commit": "v1.3.294",
+ "commit": "v1.3.295",
"deps": [
{
"var_name": "VULKAN_HEADERS_INSTALL_DIR",
@@ -110,7 +110,7 @@
"sub_dir": "Vulkan-Loader",
"build_dir": "Vulkan-Loader/build",
"install_dir": "Vulkan-Loader/build/install",
- "commit": "v1.3.294",
+ "commit": "v1.3.295",
"build_step": "skip",
"optional": [
"tests"
@@ -136,7 +136,7 @@
"sub_dir": "Vulkan-Tools",
"build_dir": "Vulkan-Tools/build",
"install_dir": "Vulkan-Tools/build/install",
- "commit": "v1.3.294",
+ "commit": "v1.3.295",
"build_step": "skip",
"optional": [
"tests"
@@ -153,4 +153,4 @@
"googletest": "GOOGLETEST_INSTALL_DIR",
"mimalloc": "MIMALLOC_INSTALL_DIR"
}
-}
+}
\ No newline at end of file
diff --git a/tests/layers/VkLayer_device_profile_api.json.in b/tests/layers/VkLayer_device_profile_api.json.in
index cb6f285..795467c 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.294",
+ "api_version": "1.3.295",
"implementation_version": "2",
"description": "LunarG Device Profile Api Layer",
"device_extensions": [