Skip to content

Commit

Permalink
build: Update to header 1.3.274
Browse files Browse the repository at this point in the history
- Update known-good
- Fix crash in extension_helper_generator when an extension has an explicit
  dependency on VK_VERSION_1_0
- Stub out safe struct constructor for VkPushDescriptorSetWithTemplateInfoKHR
  until it can be properly implemented #7169
- VUID renames:
  - VUID-VkDescriptorSetLayoutBinding-descriptorCount-00283 -> 09465
  - UNASSIGNED-vkCmdDrawIndirectByteCountEXT-counterOffset -> 09474
  - UNASSIGNED-vkCmdDrawIndirectByteCountEXT-vertexStride -> 09475
- Generate source
  • Loading branch information
mikes-lunarg committed Dec 19, 2023
1 parent 71cf255 commit bb9744e
Show file tree
Hide file tree
Showing 45 changed files with 13,343 additions and 10,361 deletions.
4 changes: 2 additions & 2 deletions layers/VkLayer_khronos_validation.json.in
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"name": "VK_LAYER_KHRONOS_validation",
"type": "GLOBAL",
"library_path": "@JSON_LIBRARY_PATH@",
"api_version": "1.3.273",
"api_version": "1.3.274",
"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.",
Expand Down Expand Up @@ -1405,4 +1405,4 @@
]
}
}
}
}
4 changes: 2 additions & 2 deletions layers/core_checks/cc_drawdispatch.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -601,12 +601,12 @@ bool CoreChecks::PreCallValidateCmdDrawIndirectByteCountEXT(VkCommandBuffer comm
}
// VUs being added in https://gitlab.khronos.org/vulkan/vulkan/-/merge_requests/6310
if (SafeModulo(counterOffset, 4) != 0) {
skip |= LogError("UNASSIGNED-vkCmdDrawIndirectByteCountEXT-counterOffset",
skip |= LogError("VUID-vkCmdDrawIndirectByteCountEXT-counterOffset-09474",
cb_state.GetObjectList(VK_PIPELINE_BIND_POINT_GRAPHICS), error_obj.location.dot(Field::counterOffset),
"(%" PRIu32 ") must be a multiple of 4.", counterOffset);
}
if (SafeModulo(vertexStride, 4) != 0) {
skip |= LogError("UNASSIGNED-vkCmdDrawIndirectByteCountEXT-vertexStride",
skip |= LogError("VUID-vkCmdDrawIndirectByteCountEXT-vertexStride-09475",
cb_state.GetObjectList(VK_PIPELINE_BIND_POINT_GRAPHICS), error_obj.location.dot(Field::vertexStride),
"(%" PRIu32 ") must be a multiple of 4.", vertexStride);
}
Expand Down
4 changes: 2 additions & 2 deletions layers/core_checks/cc_video.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -217,8 +217,8 @@ bool CoreChecks::ValidateVideoProfileListInfo(const VkVideoProfileListInfoKHR *p
has_decode_profile = true;
break;

case VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT:
case VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT:
case VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR:
case VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR:
has_encode_profile = true;
break;

Expand Down
2 changes: 1 addition & 1 deletion layers/stateless/sl_descriptor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -502,7 +502,7 @@ bool StatelessValidation::manual_PreCallValidateCreateDescriptorSetLayout(VkDevi
// If descriptorCount is not 0, stageFlags must be a valid combination of VkShaderStageFlagBits values
if ((pCreateInfo->pBindings[i].stageFlags != 0) &&
((pCreateInfo->pBindings[i].stageFlags & (~AllVkShaderStageFlagBits)) != 0)) {
skip |= LogError("VUID-VkDescriptorSetLayoutBinding-descriptorCount-00283", device,
skip |= LogError("VUID-VkDescriptorSetLayoutBinding-descriptorCount-09465", device,
binding_loc.dot(Field::descriptorCount),
"is %" PRIu32 " but stageFlags is invalid (0x%" PRIx32 ").",
pCreateInfo->pBindings[i].descriptorCount, pCreateInfo->pBindings[i].stageFlags);
Expand Down
2 changes: 0 additions & 2 deletions layers/vulkan/generated/best_practices.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1569,7 +1569,6 @@ void BestPractices::PostCallRecordMapMemory2KHR(VkDevice device, const VkMemoryM
}
}

#ifdef VK_ENABLE_BETA_EXTENSIONS
void BestPractices::PostCallRecordGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(
VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo,
VkVideoEncodeQualityLevelPropertiesKHR* pQualityLevelProperties, const RecordObject& record_obj) {
Expand All @@ -1595,7 +1594,6 @@ void BestPractices::PostCallRecordGetEncodedVideoSessionParametersKHR(
LogErrorCode(record_obj);
}
}
#endif // VK_ENABLE_BETA_EXTENSIONS

void BestPractices::PostCallRecordQueueSubmit2KHR(VkQueue queue, uint32_t submitCount, const VkSubmitInfo2* pSubmits, VkFence fence,
const RecordObject& record_obj) {
Expand Down
2 changes: 0 additions & 2 deletions layers/vulkan/generated/best_practices.h
Original file line number Diff line number Diff line change
Expand Up @@ -533,7 +533,6 @@ void PostCallRecordGetPipelineExecutableInternalRepresentationsKHR(
void PostCallRecordMapMemory2KHR(VkDevice device, const VkMemoryMapInfoKHR* pMemoryMapInfo, void** ppData,
const RecordObject& record_obj) override;

#ifdef VK_ENABLE_BETA_EXTENSIONS
void PostCallRecordGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(
VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo,
VkVideoEncodeQualityLevelPropertiesKHR* pQualityLevelProperties, const RecordObject& record_obj) override;
Expand All @@ -543,7 +542,6 @@ void PostCallRecordGetEncodedVideoSessionParametersKHR(VkDevice device,
VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo,
size_t* pDataSize, void* pData, const RecordObject& record_obj) override;

#endif // VK_ENABLE_BETA_EXTENSIONS
void PostCallRecordQueueSubmit2KHR(VkQueue queue, uint32_t submitCount, const VkSubmitInfo2* pSubmits, VkFence fence,
const RecordObject& record_obj) override;

Expand Down
157 changes: 153 additions & 4 deletions layers/vulkan/generated/chassis.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8760,7 +8760,6 @@ VKAPI_ATTR VkResult VKAPI_CALL UnmapMemory2KHR(VkDevice device, const VkMemoryUn
return result;
}

#ifdef VK_ENABLE_BETA_EXTENSIONS
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(
VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo,
VkVideoEncodeQualityLevelPropertiesKHR* pQualityLevelProperties) {
Expand Down Expand Up @@ -8843,7 +8842,6 @@ VKAPI_ATTR void VKAPI_CALL CmdEncodeVideoKHR(VkCommandBuffer commandBuffer, cons
}
}

#endif // VK_ENABLE_BETA_EXTENSIONS
VKAPI_ATTR void VKAPI_CALL CmdSetEvent2KHR(VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo* pDependencyInfo) {
auto layer_data = GetLayerDataPtr(get_dispatch_key(commandBuffer), layer_data_map);
bool skip = false;
Expand Down Expand Up @@ -9423,6 +9421,153 @@ VKAPI_ATTR VkResult VKAPI_CALL GetCalibratedTimestampsKHR(VkDevice device, uint3
return result;
}

VKAPI_ATTR void VKAPI_CALL CmdBindDescriptorSets2KHR(VkCommandBuffer commandBuffer,
const VkBindDescriptorSetsInfoKHR* pBindDescriptorSetsInfo) {
auto layer_data = GetLayerDataPtr(get_dispatch_key(commandBuffer), layer_data_map);
bool skip = false;
ErrorObject error_obj(vvl::Func::vkCmdBindDescriptorSets2KHR, VulkanTypedHandle(commandBuffer, kVulkanObjectTypeCommandBuffer));
for (const ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPreCallValidateCmdBindDescriptorSets2KHR]) {
auto lock = intercept->ReadLock();
skip |= intercept->PreCallValidateCmdBindDescriptorSets2KHR(commandBuffer, pBindDescriptorSetsInfo, error_obj);
if (skip) return;
}
RecordObject record_obj(vvl::Func::vkCmdBindDescriptorSets2KHR);
for (ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPreCallRecordCmdBindDescriptorSets2KHR]) {
auto lock = intercept->WriteLock();
intercept->PreCallRecordCmdBindDescriptorSets2KHR(commandBuffer, pBindDescriptorSetsInfo, record_obj);
}
DispatchCmdBindDescriptorSets2KHR(commandBuffer, pBindDescriptorSetsInfo);
for (ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPostCallRecordCmdBindDescriptorSets2KHR]) {
auto lock = intercept->WriteLock();
intercept->PostCallRecordCmdBindDescriptorSets2KHR(commandBuffer, pBindDescriptorSetsInfo, record_obj);
}
}

VKAPI_ATTR void VKAPI_CALL CmdPushConstants2KHR(VkCommandBuffer commandBuffer, const VkPushConstantsInfoKHR* pPushConstantsInfo) {
auto layer_data = GetLayerDataPtr(get_dispatch_key(commandBuffer), layer_data_map);
bool skip = false;
ErrorObject error_obj(vvl::Func::vkCmdPushConstants2KHR, VulkanTypedHandle(commandBuffer, kVulkanObjectTypeCommandBuffer));
for (const ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPreCallValidateCmdPushConstants2KHR]) {
auto lock = intercept->ReadLock();
skip |= intercept->PreCallValidateCmdPushConstants2KHR(commandBuffer, pPushConstantsInfo, error_obj);
if (skip) return;
}
RecordObject record_obj(vvl::Func::vkCmdPushConstants2KHR);
for (ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPreCallRecordCmdPushConstants2KHR]) {
auto lock = intercept->WriteLock();
intercept->PreCallRecordCmdPushConstants2KHR(commandBuffer, pPushConstantsInfo, record_obj);
}
DispatchCmdPushConstants2KHR(commandBuffer, pPushConstantsInfo);
for (ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPostCallRecordCmdPushConstants2KHR]) {
auto lock = intercept->WriteLock();
intercept->PostCallRecordCmdPushConstants2KHR(commandBuffer, pPushConstantsInfo, record_obj);
}
}

VKAPI_ATTR void VKAPI_CALL CmdPushDescriptorSet2KHR(VkCommandBuffer commandBuffer,
const VkPushDescriptorSetInfoKHR* pPushDescriptorSetInfo) {
auto layer_data = GetLayerDataPtr(get_dispatch_key(commandBuffer), layer_data_map);
bool skip = false;
ErrorObject error_obj(vvl::Func::vkCmdPushDescriptorSet2KHR, VulkanTypedHandle(commandBuffer, kVulkanObjectTypeCommandBuffer));
for (const ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPreCallValidateCmdPushDescriptorSet2KHR]) {
auto lock = intercept->ReadLock();
skip |= intercept->PreCallValidateCmdPushDescriptorSet2KHR(commandBuffer, pPushDescriptorSetInfo, error_obj);
if (skip) return;
}
RecordObject record_obj(vvl::Func::vkCmdPushDescriptorSet2KHR);
for (ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPreCallRecordCmdPushDescriptorSet2KHR]) {
auto lock = intercept->WriteLock();
intercept->PreCallRecordCmdPushDescriptorSet2KHR(commandBuffer, pPushDescriptorSetInfo, record_obj);
}
DispatchCmdPushDescriptorSet2KHR(commandBuffer, pPushDescriptorSetInfo);
for (ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPostCallRecordCmdPushDescriptorSet2KHR]) {
auto lock = intercept->WriteLock();
intercept->PostCallRecordCmdPushDescriptorSet2KHR(commandBuffer, pPushDescriptorSetInfo, record_obj);
}
}

VKAPI_ATTR void VKAPI_CALL CmdPushDescriptorSetWithTemplate2KHR(
VkCommandBuffer commandBuffer, const VkPushDescriptorSetWithTemplateInfoKHR* pPushDescriptorSetWithTemplateInfo) {
auto layer_data = GetLayerDataPtr(get_dispatch_key(commandBuffer), layer_data_map);
bool skip = false;
ErrorObject error_obj(vvl::Func::vkCmdPushDescriptorSetWithTemplate2KHR,
VulkanTypedHandle(commandBuffer, kVulkanObjectTypeCommandBuffer));
for (const ValidationObject* intercept :
layer_data->intercept_vectors[InterceptIdPreCallValidateCmdPushDescriptorSetWithTemplate2KHR]) {
auto lock = intercept->ReadLock();
skip |= intercept->PreCallValidateCmdPushDescriptorSetWithTemplate2KHR(commandBuffer, pPushDescriptorSetWithTemplateInfo,
error_obj);
if (skip) return;
}
RecordObject record_obj(vvl::Func::vkCmdPushDescriptorSetWithTemplate2KHR);
for (ValidationObject* intercept :
layer_data->intercept_vectors[InterceptIdPreCallRecordCmdPushDescriptorSetWithTemplate2KHR]) {
auto lock = intercept->WriteLock();
intercept->PreCallRecordCmdPushDescriptorSetWithTemplate2KHR(commandBuffer, pPushDescriptorSetWithTemplateInfo, record_obj);
}
DispatchCmdPushDescriptorSetWithTemplate2KHR(commandBuffer, pPushDescriptorSetWithTemplateInfo);
for (ValidationObject* intercept :
layer_data->intercept_vectors[InterceptIdPostCallRecordCmdPushDescriptorSetWithTemplate2KHR]) {
auto lock = intercept->WriteLock();
intercept->PostCallRecordCmdPushDescriptorSetWithTemplate2KHR(commandBuffer, pPushDescriptorSetWithTemplateInfo,
record_obj);
}
}

VKAPI_ATTR void VKAPI_CALL CmdSetDescriptorBufferOffsets2EXT(
VkCommandBuffer commandBuffer, const VkSetDescriptorBufferOffsetsInfoEXT* pSetDescriptorBufferOffsetsInfo) {
auto layer_data = GetLayerDataPtr(get_dispatch_key(commandBuffer), layer_data_map);
bool skip = false;
ErrorObject error_obj(vvl::Func::vkCmdSetDescriptorBufferOffsets2EXT,
VulkanTypedHandle(commandBuffer, kVulkanObjectTypeCommandBuffer));
for (const ValidationObject* intercept :
layer_data->intercept_vectors[InterceptIdPreCallValidateCmdSetDescriptorBufferOffsets2EXT]) {
auto lock = intercept->ReadLock();
skip |=
intercept->PreCallValidateCmdSetDescriptorBufferOffsets2EXT(commandBuffer, pSetDescriptorBufferOffsetsInfo, error_obj);
if (skip) return;
}
RecordObject record_obj(vvl::Func::vkCmdSetDescriptorBufferOffsets2EXT);
for (ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPreCallRecordCmdSetDescriptorBufferOffsets2EXT]) {
auto lock = intercept->WriteLock();
intercept->PreCallRecordCmdSetDescriptorBufferOffsets2EXT(commandBuffer, pSetDescriptorBufferOffsetsInfo, record_obj);
}
DispatchCmdSetDescriptorBufferOffsets2EXT(commandBuffer, pSetDescriptorBufferOffsetsInfo);
for (ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPostCallRecordCmdSetDescriptorBufferOffsets2EXT]) {
auto lock = intercept->WriteLock();
intercept->PostCallRecordCmdSetDescriptorBufferOffsets2EXT(commandBuffer, pSetDescriptorBufferOffsetsInfo, record_obj);
}
}

VKAPI_ATTR void VKAPI_CALL CmdBindDescriptorBufferEmbeddedSamplers2EXT(
VkCommandBuffer commandBuffer, const VkBindDescriptorBufferEmbeddedSamplersInfoEXT* pBindDescriptorBufferEmbeddedSamplersInfo) {
auto layer_data = GetLayerDataPtr(get_dispatch_key(commandBuffer), layer_data_map);
bool skip = false;
ErrorObject error_obj(vvl::Func::vkCmdBindDescriptorBufferEmbeddedSamplers2EXT,
VulkanTypedHandle(commandBuffer, kVulkanObjectTypeCommandBuffer));
for (const ValidationObject* intercept :
layer_data->intercept_vectors[InterceptIdPreCallValidateCmdBindDescriptorBufferEmbeddedSamplers2EXT]) {
auto lock = intercept->ReadLock();
skip |= intercept->PreCallValidateCmdBindDescriptorBufferEmbeddedSamplers2EXT(
commandBuffer, pBindDescriptorBufferEmbeddedSamplersInfo, error_obj);
if (skip) return;
}
RecordObject record_obj(vvl::Func::vkCmdBindDescriptorBufferEmbeddedSamplers2EXT);
for (ValidationObject* intercept :
layer_data->intercept_vectors[InterceptIdPreCallRecordCmdBindDescriptorBufferEmbeddedSamplers2EXT]) {
auto lock = intercept->WriteLock();
intercept->PreCallRecordCmdBindDescriptorBufferEmbeddedSamplers2EXT(commandBuffer,
pBindDescriptorBufferEmbeddedSamplersInfo, record_obj);
}
DispatchCmdBindDescriptorBufferEmbeddedSamplers2EXT(commandBuffer, pBindDescriptorBufferEmbeddedSamplersInfo);
for (ValidationObject* intercept :
layer_data->intercept_vectors[InterceptIdPostCallRecordCmdBindDescriptorBufferEmbeddedSamplers2EXT]) {
auto lock = intercept->WriteLock();
intercept->PostCallRecordCmdBindDescriptorBufferEmbeddedSamplers2EXT(commandBuffer,
pBindDescriptorBufferEmbeddedSamplersInfo, record_obj);
}
}

VKAPI_ATTR VkResult VKAPI_CALL CreateDebugReportCallbackEXT(VkInstance instance,
const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
const VkAllocationCallbacks* pAllocator,
Expand Down Expand Up @@ -17215,11 +17360,9 @@ const vvl::unordered_map<std::string, function_data> name_to_funcptr_map = {
{"vkGetPipelineExecutableInternalRepresentationsKHR", {kFuncTypeDev, (void*)GetPipelineExecutableInternalRepresentationsKHR}},
{"vkMapMemory2KHR", {kFuncTypeDev, (void*)MapMemory2KHR}},
{"vkUnmapMemory2KHR", {kFuncTypeDev, (void*)UnmapMemory2KHR}},
#ifdef VK_ENABLE_BETA_EXTENSIONS
{"vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR", {kFuncTypePdev, (void*)GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR}},
{"vkGetEncodedVideoSessionParametersKHR", {kFuncTypeDev, (void*)GetEncodedVideoSessionParametersKHR}},
{"vkCmdEncodeVideoKHR", {kFuncTypeDev, (void*)CmdEncodeVideoKHR}},
#endif // VK_ENABLE_BETA_EXTENSIONS
{"vkCmdSetEvent2KHR", {kFuncTypeDev, (void*)CmdSetEvent2KHR}},
{"vkCmdResetEvent2KHR", {kFuncTypeDev, (void*)CmdResetEvent2KHR}},
{"vkCmdWaitEvents2KHR", {kFuncTypeDev, (void*)CmdWaitEvents2KHR}},
Expand All @@ -17245,6 +17388,12 @@ const vvl::unordered_map<std::string, function_data> name_to_funcptr_map = {
{"vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR", {kFuncTypePdev, (void*)GetPhysicalDeviceCooperativeMatrixPropertiesKHR}},
{"vkGetPhysicalDeviceCalibrateableTimeDomainsKHR", {kFuncTypePdev, (void*)GetPhysicalDeviceCalibrateableTimeDomainsKHR}},
{"vkGetCalibratedTimestampsKHR", {kFuncTypeDev, (void*)GetCalibratedTimestampsKHR}},
{"vkCmdBindDescriptorSets2KHR", {kFuncTypeDev, (void*)CmdBindDescriptorSets2KHR}},
{"vkCmdPushConstants2KHR", {kFuncTypeDev, (void*)CmdPushConstants2KHR}},
{"vkCmdPushDescriptorSet2KHR", {kFuncTypeDev, (void*)CmdPushDescriptorSet2KHR}},
{"vkCmdPushDescriptorSetWithTemplate2KHR", {kFuncTypeDev, (void*)CmdPushDescriptorSetWithTemplate2KHR}},
{"vkCmdSetDescriptorBufferOffsets2EXT", {kFuncTypeDev, (void*)CmdSetDescriptorBufferOffsets2EXT}},
{"vkCmdBindDescriptorBufferEmbeddedSamplers2EXT", {kFuncTypeDev, (void*)CmdBindDescriptorBufferEmbeddedSamplers2EXT}},
{"vkCreateDebugReportCallbackEXT", {kFuncTypeInst, (void*)CreateDebugReportCallbackEXT}},
{"vkDestroyDebugReportCallbackEXT", {kFuncTypeInst, (void*)DestroyDebugReportCallbackEXT}},
{"vkDebugReportMessageEXT", {kFuncTypeInst, (void*)DebugReportMessageEXT}},
Expand Down
Loading

0 comments on commit bb9744e

Please sign in to comment.