diff --git a/layers/VkLayer_khronos_validation.json.in b/layers/VkLayer_khronos_validation.json.in index e5cd16a3050..407a1f5ec9d 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.272", + "api_version": "1.3.273", "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/core_checks/cc_device.cpp b/layers/core_checks/cc_device.cpp index ac4f553d30b..a535ef59b56 100644 --- a/layers/core_checks/cc_device.cpp +++ b/layers/core_checks/cc_device.cpp @@ -818,12 +818,12 @@ bool CoreChecks::PreCallValidateGetCalibratedTimestampsEXT(VkDevice device, uint skip |= LogError("VUID-vkGetCalibratedTimestampsEXT-timeDomain-09246", device, error_obj.location.dot(Field::pTimestampInfos, i).dot(Field::timeDomain), "and pTimestampInfos[%" PRIu32 "].timeDomain are both %s.", it->second, - string_VkTimeDomainEXT(time_domain)); + string_VkTimeDomainKHR(time_domain)); break; // no reason to check after finding 1 duplicate } else if (!IsValueIn(time_domain, valid_time_domains)) { skip |= LogError("VUID-VkCalibratedTimestampInfoEXT-timeDomain-02354", device, error_obj.location.dot(Field::pTimestampInfos, i).dot(Field::timeDomain), "is %s.", - string_VkTimeDomainEXT(time_domain)); + string_VkTimeDomainKHR(time_domain)); } time_domain_map[time_domain] = i; } diff --git a/layers/core_checks/cc_pipeline_graphics.cpp b/layers/core_checks/cc_pipeline_graphics.cpp index d1d4fc8e139..6237e402283 100644 --- a/layers/core_checks/cc_pipeline_graphics.cpp +++ b/layers/core_checks/cc_pipeline_graphics.cpp @@ -3594,26 +3594,26 @@ bool CoreChecks::ValidatePipelineVertexDivisors(const safe_VkPipelineVertexInput } const VkPhysicalDeviceLimits *device_limits = &phys_dev_props.limits; for (uint32_t j = 0; j < divisor_state_info->vertexBindingDivisorCount; j++) { - const Location divisor_loc = loc.pNext(Struct::VkVertexInputBindingDivisorDescriptionEXT, Field::pVertexBindingDivisors, j); + const Location divisor_loc = loc.pNext(Struct::VkVertexInputBindingDivisorDescriptionKHR, Field::pVertexBindingDivisors, j); const auto *vibdd = &(divisor_state_info->pVertexBindingDivisors[j]); if (vibdd->binding >= device_limits->maxVertexInputBindings) { - skip |= LogError("VUID-VkVertexInputBindingDivisorDescriptionEXT-binding-01869", device, + skip |= LogError("VUID-VkVertexInputBindingDivisorDescriptionKHR-binding-01869", device, divisor_loc.dot(Field::binding), "(%" PRIu32 ") exceeds device maxVertexInputBindings (%" PRIu32 ").", vibdd->binding, device_limits->maxVertexInputBindings); } if (vibdd->divisor > phys_dev_ext_props.vtx_attrib_divisor_props.maxVertexAttribDivisor) { - skip |= LogError("VUID-VkVertexInputBindingDivisorDescriptionEXT-divisor-01870", device, + skip |= LogError("VUID-VkVertexInputBindingDivisorDescriptionKHR-divisor-01870", device, divisor_loc.dot(Field::divisor), "(%" PRIu32 ") exceeds device maxVertexAttribDivisor (%" PRIu32 ").", vibdd->divisor, phys_dev_ext_props.vtx_attrib_divisor_props.maxVertexAttribDivisor); } if ((0 == vibdd->divisor) && !enabled_features.vertexAttributeInstanceRateZeroDivisor) { skip |= - LogError("VUID-VkVertexInputBindingDivisorDescriptionEXT-vertexAttributeInstanceRateZeroDivisor-02228", device, + LogError("VUID-VkVertexInputBindingDivisorDescriptionKHR-vertexAttributeInstanceRateZeroDivisor-02228", device, divisor_loc.dot(Field::divisor), "is (%" PRIu32 ") but vertexAttributeInstanceRateZeroDivisor feature was not enabled.", vibdd->divisor); } if ((1 != vibdd->divisor) && !enabled_features.vertexAttributeInstanceRateDivisor) { - skip |= LogError("VUID-VkVertexInputBindingDivisorDescriptionEXT-vertexAttributeInstanceRateDivisor-02229", device, + skip |= LogError("VUID-VkVertexInputBindingDivisorDescriptionKHR-vertexAttributeInstanceRateDivisor-02229", device, divisor_loc.dot(Field::divisor), "is (%" PRIu32 ") but vertexAttributeInstanceRateDivisor feature was not enabled.", vibdd->divisor); } @@ -3629,7 +3629,7 @@ bool CoreChecks::ValidatePipelineVertexDivisors(const safe_VkPipelineVertexInput } if (failed_01871) { // Description not found, or has incorrect inputRate value skip |= - LogError("VUID-VkVertexInputBindingDivisorDescriptionEXT-inputRate-01871", device, divisor_loc.dot(Field::binding), + LogError("VUID-VkVertexInputBindingDivisorDescriptionKHR-inputRate-01871", device, divisor_loc.dot(Field::binding), "is %" PRIu32 ", but inputRate is not VK_VERTEX_INPUT_RATE_INSTANCE.", vibdd->binding); } } diff --git a/layers/vulkan/generated/best_practices.cpp b/layers/vulkan/generated/best_practices.cpp index 9bf6062e648..0be801c6ca1 100644 --- a/layers/vulkan/generated/best_practices.cpp +++ b/layers/vulkan/generated/best_practices.cpp @@ -1618,6 +1618,34 @@ void BestPractices::PostCallRecordGetPhysicalDeviceCooperativeMatrixPropertiesKH } } +void BestPractices::PostCallRecordGetPhysicalDeviceCalibrateableTimeDomainsKHR(VkPhysicalDevice physicalDevice, + uint32_t* pTimeDomainCount, + VkTimeDomainKHR* pTimeDomains, + const RecordObject& record_obj) { + ValidationStateTracker::PostCallRecordGetPhysicalDeviceCalibrateableTimeDomainsKHR(physicalDevice, pTimeDomainCount, + pTimeDomains, record_obj); + + if (record_obj.result > VK_SUCCESS) { + LogPositiveSuccessCode(record_obj); + return; + } + if (record_obj.result < VK_SUCCESS) { + LogErrorCode(record_obj); + } +} + +void BestPractices::PostCallRecordGetCalibratedTimestampsKHR(VkDevice device, uint32_t timestampCount, + const VkCalibratedTimestampInfoKHR* pTimestampInfos, + uint64_t* pTimestamps, uint64_t* pMaxDeviation, + const RecordObject& record_obj) { + ValidationStateTracker::PostCallRecordGetCalibratedTimestampsKHR(device, timestampCount, pTimestampInfos, pTimestamps, + pMaxDeviation, record_obj); + + if (record_obj.result < VK_SUCCESS) { + LogErrorCode(record_obj); + } +} + void BestPractices::PostCallRecordCreateDebugReportCallbackEXT(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, @@ -2058,30 +2086,16 @@ void BestPractices::PostCallRecordGetMemoryHostPointerPropertiesEXT(VkDevice dev void BestPractices::PostCallRecordGetPhysicalDeviceCalibrateableTimeDomainsEXT(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, - VkTimeDomainEXT* pTimeDomains, + VkTimeDomainKHR* pTimeDomains, const RecordObject& record_obj) { - ValidationStateTracker::PostCallRecordGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, - pTimeDomains, record_obj); - - if (record_obj.result > VK_SUCCESS) { - LogPositiveSuccessCode(record_obj); - return; - } - if (record_obj.result < VK_SUCCESS) { - LogErrorCode(record_obj); - } + PostCallRecordGetPhysicalDeviceCalibrateableTimeDomainsKHR(physicalDevice, pTimeDomainCount, pTimeDomains, record_obj); } void BestPractices::PostCallRecordGetCalibratedTimestampsEXT(VkDevice device, uint32_t timestampCount, - const VkCalibratedTimestampInfoEXT* pTimestampInfos, + const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation, const RecordObject& record_obj) { - ValidationStateTracker::PostCallRecordGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, - pMaxDeviation, record_obj); - - if (record_obj.result < VK_SUCCESS) { - LogErrorCode(record_obj); - } + PostCallRecordGetCalibratedTimestampsKHR(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation, record_obj); } void BestPractices::PostCallRecordInitializePerformanceApiINTEL(VkDevice device, diff --git a/layers/vulkan/generated/best_practices.h b/layers/vulkan/generated/best_practices.h index a9ccc6006ce..a40aaab3aff 100644 --- a/layers/vulkan/generated/best_practices.h +++ b/layers/vulkan/generated/best_practices.h @@ -551,6 +551,14 @@ void PostCallRecordGetPhysicalDeviceCooperativeMatrixPropertiesKHR(VkPhysicalDev VkCooperativeMatrixPropertiesKHR* pProperties, const RecordObject& record_obj) override; +void PostCallRecordGetPhysicalDeviceCalibrateableTimeDomainsKHR(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, + VkTimeDomainKHR* pTimeDomains, + const RecordObject& record_obj) override; + +void PostCallRecordGetCalibratedTimestampsKHR(VkDevice device, uint32_t timestampCount, + const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, + uint64_t* pMaxDeviation, const RecordObject& record_obj) override; + void PostCallRecordCreateDebugReportCallbackEXT(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback, const RecordObject& record_obj) override; @@ -715,11 +723,11 @@ void PostCallRecordGetMemoryHostPointerPropertiesEXT(VkDevice device, VkExternal const RecordObject& record_obj) override; void PostCallRecordGetPhysicalDeviceCalibrateableTimeDomainsEXT(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, - VkTimeDomainEXT* pTimeDomains, + VkTimeDomainKHR* pTimeDomains, const RecordObject& record_obj) override; void PostCallRecordGetCalibratedTimestampsEXT(VkDevice device, uint32_t timestampCount, - const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, + const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation, const RecordObject& record_obj) override; void PostCallRecordInitializePerformanceApiINTEL(VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo, @@ -1090,6 +1098,8 @@ const vvl::unordered_map deprecated_extensions = { {"VK_EXT_descriptor_indexing", {kExtPromoted, "VK_VERSION_1_2"}}, {"VK_EXT_shader_viewport_index_layer", {kExtPromoted, "VK_VERSION_1_2"}}, {"VK_EXT_global_priority", {kExtPromoted, "VK_KHR_global_priority"}}, + {"VK_EXT_calibrated_timestamps", {kExtPromoted, "VK_KHR_calibrated_timestamps"}}, + {"VK_EXT_vertex_attribute_divisor", {kExtPromoted, "VK_KHR_vertex_attribute_divisor"}}, {"VK_EXT_pipeline_creation_feedback", {kExtPromoted, "VK_VERSION_1_3"}}, {"VK_NV_fragment_shader_barycentric", {kExtPromoted, "VK_KHR_fragment_shader_barycentric"}}, {"VK_EXT_scalar_block_layout", {kExtPromoted, "VK_VERSION_1_2"}}, diff --git a/layers/vulkan/generated/chassis.cpp b/layers/vulkan/generated/chassis.cpp index b78b7bb5b02..925251ff79b 100644 --- a/layers/vulkan/generated/chassis.cpp +++ b/layers/vulkan/generated/chassis.cpp @@ -9366,6 +9366,63 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCooperativeMatrixPropertiesKHR(V return result; } +VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCalibrateableTimeDomainsKHR(VkPhysicalDevice physicalDevice, + uint32_t* pTimeDomainCount, + VkTimeDomainKHR* pTimeDomains) { + auto layer_data = GetLayerDataPtr(get_dispatch_key(physicalDevice), layer_data_map); + bool skip = false; + ErrorObject error_obj(vvl::Func::vkGetPhysicalDeviceCalibrateableTimeDomainsKHR, + VulkanTypedHandle(physicalDevice, kVulkanObjectTypePhysicalDevice)); + for (const ValidationObject* intercept : layer_data->object_dispatch) { + auto lock = intercept->ReadLock(); + skip |= intercept->PreCallValidateGetPhysicalDeviceCalibrateableTimeDomainsKHR(physicalDevice, pTimeDomainCount, + pTimeDomains, error_obj); + if (skip) return VK_ERROR_VALIDATION_FAILED_EXT; + } + RecordObject record_obj(vvl::Func::vkGetPhysicalDeviceCalibrateableTimeDomainsKHR); + for (ValidationObject* intercept : layer_data->object_dispatch) { + auto lock = intercept->WriteLock(); + intercept->PreCallRecordGetPhysicalDeviceCalibrateableTimeDomainsKHR(physicalDevice, pTimeDomainCount, pTimeDomains, + record_obj); + } + VkResult result = DispatchGetPhysicalDeviceCalibrateableTimeDomainsKHR(physicalDevice, pTimeDomainCount, pTimeDomains); + record_obj.result = result; + for (ValidationObject* intercept : layer_data->object_dispatch) { + auto lock = intercept->WriteLock(); + intercept->PostCallRecordGetPhysicalDeviceCalibrateableTimeDomainsKHR(physicalDevice, pTimeDomainCount, pTimeDomains, + record_obj); + } + return result; +} + +VKAPI_ATTR VkResult VKAPI_CALL GetCalibratedTimestampsKHR(VkDevice device, uint32_t timestampCount, + const VkCalibratedTimestampInfoKHR* pTimestampInfos, + uint64_t* pTimestamps, uint64_t* pMaxDeviation) { + auto layer_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map); + bool skip = false; + ErrorObject error_obj(vvl::Func::vkGetCalibratedTimestampsKHR, VulkanTypedHandle(device, kVulkanObjectTypeDevice)); + for (const ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPreCallValidateGetCalibratedTimestampsKHR]) { + auto lock = intercept->ReadLock(); + skip |= intercept->PreCallValidateGetCalibratedTimestampsKHR(device, timestampCount, pTimestampInfos, pTimestamps, + pMaxDeviation, error_obj); + if (skip) return VK_ERROR_VALIDATION_FAILED_EXT; + } + RecordObject record_obj(vvl::Func::vkGetCalibratedTimestampsKHR); + for (ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPreCallRecordGetCalibratedTimestampsKHR]) { + auto lock = intercept->WriteLock(); + intercept->PreCallRecordGetCalibratedTimestampsKHR(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation, + record_obj); + } + VkResult result = DispatchGetCalibratedTimestampsKHR(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation); + record_obj.result = result; + for (ValidationObject* intercept : layer_data->intercept_vectors[InterceptIdPostCallRecordGetCalibratedTimestampsKHR]) { + auto lock = intercept->WriteLock(); + intercept->PostCallRecordGetCalibratedTimestampsKHR(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation, + record_obj); + } + return result; +} + VKAPI_ATTR VkResult VKAPI_CALL CreateDebugReportCallbackEXT(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, @@ -11565,7 +11622,7 @@ VKAPI_ATTR void VKAPI_CALL CmdWriteBufferMarkerAMD(VkCommandBuffer commandBuffer VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCalibrateableTimeDomainsEXT(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, - VkTimeDomainEXT* pTimeDomains) { + VkTimeDomainKHR* pTimeDomains) { auto layer_data = GetLayerDataPtr(get_dispatch_key(physicalDevice), layer_data_map); bool skip = false; ErrorObject error_obj(vvl::Func::vkGetPhysicalDeviceCalibrateableTimeDomainsEXT, @@ -11593,7 +11650,7 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCalibrateableTimeDomainsEXT(VkPh } VKAPI_ATTR VkResult VKAPI_CALL GetCalibratedTimestampsEXT(VkDevice device, uint32_t timestampCount, - const VkCalibratedTimestampInfoEXT* pTimestampInfos, + const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation) { auto layer_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map); bool skip = false; @@ -17186,6 +17243,8 @@ const vvl::unordered_map name_to_funcptr_map = { {"vkGetDeviceImageSubresourceLayoutKHR", {kFuncTypeDev, (void*)GetDeviceImageSubresourceLayoutKHR}}, {"vkGetImageSubresourceLayout2KHR", {kFuncTypeDev, (void*)GetImageSubresourceLayout2KHR}}, {"vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR", {kFuncTypePdev, (void*)GetPhysicalDeviceCooperativeMatrixPropertiesKHR}}, + {"vkGetPhysicalDeviceCalibrateableTimeDomainsKHR", {kFuncTypePdev, (void*)GetPhysicalDeviceCalibrateableTimeDomainsKHR}}, + {"vkGetCalibratedTimestampsKHR", {kFuncTypeDev, (void*)GetCalibratedTimestampsKHR}}, {"vkCreateDebugReportCallbackEXT", {kFuncTypeInst, (void*)CreateDebugReportCallbackEXT}}, {"vkDestroyDebugReportCallbackEXT", {kFuncTypeInst, (void*)DestroyDebugReportCallbackEXT}}, {"vkDebugReportMessageEXT", {kFuncTypeInst, (void*)DebugReportMessageEXT}}, diff --git a/layers/vulkan/generated/chassis.h b/layers/vulkan/generated/chassis.h index 552e5134ef6..e96fd69086a 100644 --- a/layers/vulkan/generated/chassis.h +++ b/layers/vulkan/generated/chassis.h @@ -1138,6 +1138,14 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCooperativeMatrixPropertiesKHR(V uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesKHR* pProperties); +VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCalibrateableTimeDomainsKHR(VkPhysicalDevice physicalDevice, + uint32_t* pTimeDomainCount, + VkTimeDomainKHR* pTimeDomains); + +VKAPI_ATTR VkResult VKAPI_CALL GetCalibratedTimestampsKHR(VkDevice device, uint32_t timestampCount, + const VkCalibratedTimestampInfoKHR* pTimestampInfos, + uint64_t* pTimestamps, uint64_t* pMaxDeviation); + VKAPI_ATTR VkResult VKAPI_CALL CreateDebugReportCallbackEXT(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, @@ -1449,10 +1457,10 @@ VKAPI_ATTR void VKAPI_CALL CmdWriteBufferMarkerAMD(VkCommandBuffer commandBuffer VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCalibrateableTimeDomainsEXT(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, - VkTimeDomainEXT* pTimeDomains); + VkTimeDomainKHR* pTimeDomains); VKAPI_ATTR VkResult VKAPI_CALL GetCalibratedTimestampsEXT(VkDevice device, uint32_t timestampCount, - const VkCalibratedTimestampInfoEXT* pTimestampInfos, + const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation); VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksNV(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask); @@ -3544,6 +3552,12 @@ class ValidationObject { virtual bool PreCallValidateGetPhysicalDeviceCooperativeMatrixPropertiesKHR(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesKHR* pProperties, const ErrorObject& error_obj) const { return false; }; virtual void PreCallRecordGetPhysicalDeviceCooperativeMatrixPropertiesKHR(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesKHR* pProperties, const RecordObject& record_obj) {}; virtual void PostCallRecordGetPhysicalDeviceCooperativeMatrixPropertiesKHR(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesKHR* pProperties, const RecordObject& record_obj) {}; + virtual bool PreCallValidateGetPhysicalDeviceCalibrateableTimeDomainsKHR(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainKHR* pTimeDomains, const ErrorObject& error_obj) const { return false; }; + virtual void PreCallRecordGetPhysicalDeviceCalibrateableTimeDomainsKHR(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainKHR* pTimeDomains, const RecordObject& record_obj) {}; + virtual void PostCallRecordGetPhysicalDeviceCalibrateableTimeDomainsKHR(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainKHR* pTimeDomains, const RecordObject& record_obj) {}; + virtual bool PreCallValidateGetCalibratedTimestampsKHR(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation, const ErrorObject& error_obj) const { return false; }; + virtual void PreCallRecordGetCalibratedTimestampsKHR(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation, const RecordObject& record_obj) {}; + virtual void PostCallRecordGetCalibratedTimestampsKHR(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation, const RecordObject& record_obj) {}; virtual bool PreCallValidateCreateDebugReportCallbackEXT(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback, const ErrorObject& error_obj) const { return false; }; virtual void PreCallRecordCreateDebugReportCallbackEXT(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback, const RecordObject& record_obj) {}; virtual void PostCallRecordCreateDebugReportCallbackEXT(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback, const RecordObject& record_obj) {}; @@ -3824,12 +3838,12 @@ class ValidationObject { virtual bool PreCallValidateCmdWriteBufferMarkerAMD(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker, const ErrorObject& error_obj) const { return false; }; virtual void PreCallRecordCmdWriteBufferMarkerAMD(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker, const RecordObject& record_obj) {}; virtual void PostCallRecordCmdWriteBufferMarkerAMD(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker, const RecordObject& record_obj) {}; - virtual bool PreCallValidateGetPhysicalDeviceCalibrateableTimeDomainsEXT(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains, const ErrorObject& error_obj) const { return false; }; - virtual void PreCallRecordGetPhysicalDeviceCalibrateableTimeDomainsEXT(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains, const RecordObject& record_obj) {}; - virtual void PostCallRecordGetPhysicalDeviceCalibrateableTimeDomainsEXT(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains, const RecordObject& record_obj) {}; - virtual bool PreCallValidateGetCalibratedTimestampsEXT(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation, const ErrorObject& error_obj) const { return false; }; - virtual void PreCallRecordGetCalibratedTimestampsEXT(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation, const RecordObject& record_obj) {}; - virtual void PostCallRecordGetCalibratedTimestampsEXT(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation, const RecordObject& record_obj) {}; + virtual bool PreCallValidateGetPhysicalDeviceCalibrateableTimeDomainsEXT(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainKHR* pTimeDomains, const ErrorObject& error_obj) const { return false; }; + virtual void PreCallRecordGetPhysicalDeviceCalibrateableTimeDomainsEXT(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainKHR* pTimeDomains, const RecordObject& record_obj) {}; + virtual void PostCallRecordGetPhysicalDeviceCalibrateableTimeDomainsEXT(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainKHR* pTimeDomains, const RecordObject& record_obj) {}; + virtual bool PreCallValidateGetCalibratedTimestampsEXT(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation, const ErrorObject& error_obj) const { return false; }; + virtual void PreCallRecordGetCalibratedTimestampsEXT(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation, const RecordObject& record_obj) {}; + virtual void PostCallRecordGetCalibratedTimestampsEXT(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation, const RecordObject& record_obj) {}; virtual bool PreCallValidateCmdDrawMeshTasksNV(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask, const ErrorObject& error_obj) const { return false; }; virtual void PreCallRecordCmdDrawMeshTasksNV(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask, const RecordObject& record_obj) {}; virtual void PostCallRecordCmdDrawMeshTasksNV(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask, const RecordObject& record_obj) {}; diff --git a/layers/vulkan/generated/chassis_dispatch_helper.h b/layers/vulkan/generated/chassis_dispatch_helper.h index e2778a3b8b0..2a72c5762d5 100644 --- a/layers/vulkan/generated/chassis_dispatch_helper.h +++ b/layers/vulkan/generated/chassis_dispatch_helper.h @@ -873,6 +873,9 @@ typedef enum InterceptId { InterceptIdPreCallValidateGetImageSubresourceLayout2KHR, InterceptIdPreCallRecordGetImageSubresourceLayout2KHR, InterceptIdPostCallRecordGetImageSubresourceLayout2KHR, + InterceptIdPreCallValidateGetCalibratedTimestampsKHR, + InterceptIdPreCallRecordGetCalibratedTimestampsKHR, + InterceptIdPostCallRecordGetCalibratedTimestampsKHR, InterceptIdPreCallValidateDebugMarkerSetObjectTagEXT, InterceptIdPreCallRecordDebugMarkerSetObjectTagEXT, InterceptIdPostCallRecordDebugMarkerSetObjectTagEXT, @@ -2586,6 +2589,9 @@ void ValidationObject::InitObjectDispatchVectors() { BUILD_DISPATCH_VECTOR(PreCallValidateGetImageSubresourceLayout2KHR); BUILD_DISPATCH_VECTOR(PreCallRecordGetImageSubresourceLayout2KHR); BUILD_DISPATCH_VECTOR(PostCallRecordGetImageSubresourceLayout2KHR); + BUILD_DISPATCH_VECTOR(PreCallValidateGetCalibratedTimestampsKHR); + BUILD_DISPATCH_VECTOR(PreCallRecordGetCalibratedTimestampsKHR); + BUILD_DISPATCH_VECTOR(PostCallRecordGetCalibratedTimestampsKHR); BUILD_DISPATCH_VECTOR(PreCallValidateDebugMarkerSetObjectTagEXT); BUILD_DISPATCH_VECTOR(PreCallRecordDebugMarkerSetObjectTagEXT); BUILD_DISPATCH_VECTOR(PostCallRecordDebugMarkerSetObjectTagEXT); diff --git a/layers/vulkan/generated/enum_flag_bits.h b/layers/vulkan/generated/enum_flag_bits.h index e19cbff4404..6b07dd8d752 100644 --- a/layers/vulkan/generated/enum_flag_bits.h +++ b/layers/vulkan/generated/enum_flag_bits.h @@ -24,7 +24,7 @@ #include #include "vulkan/vulkan.h" // clang-format off -const uint32_t GeneratedVulkanHeaderVersion = 272; +const uint32_t GeneratedVulkanHeaderVersion = 273; 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 cc2970fce57..743cfac86d3 100644 --- a/layers/vulkan/generated/error_location_helper.cpp +++ b/layers/vulkan/generated/error_location_helper.cpp @@ -458,6 +458,7 @@ const char* String(Func func) { {"vkGetBufferOpaqueCaptureAddressKHR", 35}, {"vkGetBufferOpaqueCaptureDescriptorDataEXT", 42}, {"vkGetCalibratedTimestampsEXT", 29}, + {"vkGetCalibratedTimestampsKHR", 29}, {"vkGetCudaModuleCacheNV", 23}, {"vkGetDeferredOperationMaxConcurrencyKHR", 40}, {"vkGetDeferredOperationResultKHR", 32}, @@ -536,6 +537,7 @@ const char* String(Func func) { {"vkGetPastPresentationTimingGOOGLE", 34}, {"vkGetPerformanceParameterINTEL", 31}, {"vkGetPhysicalDeviceCalibrateableTimeDomainsEXT", 47}, + {"vkGetPhysicalDeviceCalibrateableTimeDomainsKHR", 47}, {"vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR", 50}, {"vkGetPhysicalDeviceCooperativeMatrixPropertiesNV", 49}, {"vkGetPhysicalDeviceDirectFBPresentationSupportEXT", 50}, @@ -788,7 +790,7 @@ const char* String(Struct structure) { {"VkBufferOpaqueCaptureAddressCreateInfo", 39}, {"VkBufferUsageFlags2CreateInfoKHR", 33}, {"VkBufferViewCreateInfo", 23}, - {"VkCalibratedTimestampInfoEXT", 29}, + {"VkCalibratedTimestampInfoKHR", 29}, {"VkCheckpointData2NV", 20}, {"VkCheckpointDataNV", 19}, {"VkClearAttachment", 18}, @@ -1401,8 +1403,9 @@ const char* String(Struct structure) { {"VkPhysicalDeviceTransformFeedbackPropertiesEXT", 47}, {"VkPhysicalDeviceUniformBufferStandardLayoutFeatures", 52}, {"VkPhysicalDeviceVariablePointersFeatures", 41}, - {"VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT", 50}, + {"VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR", 50}, {"VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT", 52}, + {"VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR", 52}, {"VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT", 51}, {"VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR", 47}, {"VkPhysicalDeviceVideoFormatInfoKHR", 35}, @@ -1465,7 +1468,7 @@ const char* String(Struct structure) { {"VkPipelineShaderStageRequiredSubgroupSizeCreateInfo", 52}, {"VkPipelineTessellationDomainOriginStateCreateInfo", 50}, {"VkPipelineTessellationStateCreateInfo", 38}, - {"VkPipelineVertexInputDivisorStateCreateInfoEXT", 47}, + {"VkPipelineVertexInputDivisorStateCreateInfoKHR", 47}, {"VkPipelineVertexInputStateCreateInfo", 37}, {"VkPipelineViewportCoarseSampleOrderStateCreateInfoNV", 53}, {"VkPipelineViewportDepthClipControlCreateInfoEXT", 48}, @@ -1629,7 +1632,7 @@ const char* String(Struct structure) { {"VkVertexInputAttributeDescription2EXT", 38}, {"VkVertexInputBindingDescription", 32}, {"VkVertexInputBindingDescription2EXT", 36}, - {"VkVertexInputBindingDivisorDescriptionEXT", 42}, + {"VkVertexInputBindingDivisorDescriptionKHR", 42}, {"VkViSurfaceCreateInfoNN", 24}, {"VkVideoBeginCodingInfoKHR", 26}, {"VkVideoCapabilitiesKHR", 23}, @@ -4092,6 +4095,7 @@ const char* String(Field field) { {"supportedSurfaceCounters", 25}, {"supportedTransforms", 20}, {"supportedUsageFlags", 20}, + {"supportsNonZeroFirstInstance", 29}, {"supportsProtected", 18}, {"supportsTextureGatherLODBiasAMD", 32}, {"surface", 8}, diff --git a/layers/vulkan/generated/error_location_helper.h b/layers/vulkan/generated/error_location_helper.h index 98698d1a86e..41d2b9b047c 100644 --- a/layers/vulkan/generated/error_location_helper.h +++ b/layers/vulkan/generated/error_location_helper.h @@ -455,248 +455,250 @@ enum class Func { vkGetBufferOpaqueCaptureAddressKHR = 425, vkGetBufferOpaqueCaptureDescriptorDataEXT = 426, vkGetCalibratedTimestampsEXT = 427, - vkGetCudaModuleCacheNV = 428, - vkGetDeferredOperationMaxConcurrencyKHR = 429, - vkGetDeferredOperationResultKHR = 430, - vkGetDescriptorEXT = 431, - vkGetDescriptorSetHostMappingVALVE = 432, - vkGetDescriptorSetLayoutBindingOffsetEXT = 433, - vkGetDescriptorSetLayoutHostMappingInfoVALVE = 434, - vkGetDescriptorSetLayoutSizeEXT = 435, - vkGetDescriptorSetLayoutSupport = 436, - vkGetDescriptorSetLayoutSupportKHR = 437, - vkGetDeviceAccelerationStructureCompatibilityKHR = 438, - vkGetDeviceBufferMemoryRequirements = 439, - vkGetDeviceBufferMemoryRequirementsKHR = 440, - vkGetDeviceFaultInfoEXT = 441, - vkGetDeviceGroupPeerMemoryFeatures = 442, - vkGetDeviceGroupPeerMemoryFeaturesKHR = 443, - vkGetDeviceGroupPresentCapabilitiesKHR = 444, - vkGetDeviceGroupSurfacePresentModes2EXT = 445, - vkGetDeviceGroupSurfacePresentModesKHR = 446, - vkGetDeviceImageMemoryRequirements = 447, - vkGetDeviceImageMemoryRequirementsKHR = 448, - vkGetDeviceImageSparseMemoryRequirements = 449, - vkGetDeviceImageSparseMemoryRequirementsKHR = 450, - vkGetDeviceImageSubresourceLayoutKHR = 451, - vkGetDeviceMemoryCommitment = 452, - vkGetDeviceMemoryOpaqueCaptureAddress = 453, - vkGetDeviceMemoryOpaqueCaptureAddressKHR = 454, - vkGetDeviceMicromapCompatibilityEXT = 455, - vkGetDeviceProcAddr = 456, - vkGetDeviceQueue = 457, - vkGetDeviceQueue2 = 458, - vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = 459, - vkGetDisplayModeProperties2KHR = 460, - vkGetDisplayModePropertiesKHR = 461, - vkGetDisplayPlaneCapabilities2KHR = 462, - vkGetDisplayPlaneCapabilitiesKHR = 463, - vkGetDisplayPlaneSupportedDisplaysKHR = 464, - vkGetDrmDisplayEXT = 465, - vkGetDynamicRenderingTilePropertiesQCOM = 466, - vkGetEncodedVideoSessionParametersKHR = 467, - vkGetEventStatus = 468, - vkGetExecutionGraphPipelineNodeIndexAMDX = 469, - vkGetExecutionGraphPipelineScratchSizeAMDX = 470, - vkGetFenceFdKHR = 471, - vkGetFenceStatus = 472, - vkGetFenceWin32HandleKHR = 473, - vkGetFramebufferTilePropertiesQCOM = 474, - vkGetGeneratedCommandsMemoryRequirementsNV = 475, - vkGetImageDrmFormatModifierPropertiesEXT = 476, - vkGetImageMemoryRequirements = 477, - vkGetImageMemoryRequirements2 = 478, - vkGetImageMemoryRequirements2KHR = 479, - vkGetImageOpaqueCaptureDescriptorDataEXT = 480, - vkGetImageSparseMemoryRequirements = 481, - vkGetImageSparseMemoryRequirements2 = 482, - vkGetImageSparseMemoryRequirements2KHR = 483, - vkGetImageSubresourceLayout = 484, - vkGetImageSubresourceLayout2EXT = 485, - vkGetImageSubresourceLayout2KHR = 486, - vkGetImageViewAddressNVX = 487, - vkGetImageViewHandleNVX = 488, - vkGetImageViewOpaqueCaptureDescriptorDataEXT = 489, - vkGetInstanceProcAddr = 490, - vkGetLatencyTimingsNV = 491, - vkGetMemoryAndroidHardwareBufferANDROID = 492, - vkGetMemoryFdKHR = 493, - vkGetMemoryFdPropertiesKHR = 494, - vkGetMemoryHostPointerPropertiesEXT = 495, - vkGetMemoryRemoteAddressNV = 496, - vkGetMemoryWin32HandleKHR = 497, - vkGetMemoryWin32HandleNV = 498, - vkGetMemoryWin32HandlePropertiesKHR = 499, - vkGetMemoryZirconHandleFUCHSIA = 500, - vkGetMemoryZirconHandlePropertiesFUCHSIA = 501, - vkGetMicromapBuildSizesEXT = 502, - vkGetPastPresentationTimingGOOGLE = 503, - vkGetPerformanceParameterINTEL = 504, - vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = 505, - vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR = 506, - vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = 507, - vkGetPhysicalDeviceDirectFBPresentationSupportEXT = 508, - vkGetPhysicalDeviceDisplayPlaneProperties2KHR = 509, - vkGetPhysicalDeviceDisplayPlanePropertiesKHR = 510, - vkGetPhysicalDeviceDisplayProperties2KHR = 511, - vkGetPhysicalDeviceDisplayPropertiesKHR = 512, - vkGetPhysicalDeviceExternalBufferProperties = 513, - vkGetPhysicalDeviceExternalBufferPropertiesKHR = 514, - vkGetPhysicalDeviceExternalFenceProperties = 515, - vkGetPhysicalDeviceExternalFencePropertiesKHR = 516, - vkGetPhysicalDeviceExternalImageFormatPropertiesNV = 517, - vkGetPhysicalDeviceExternalSemaphoreProperties = 518, - vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = 519, - vkGetPhysicalDeviceFeatures = 520, - vkGetPhysicalDeviceFeatures2 = 521, - vkGetPhysicalDeviceFeatures2KHR = 522, - vkGetPhysicalDeviceFormatProperties = 523, - vkGetPhysicalDeviceFormatProperties2 = 524, - vkGetPhysicalDeviceFormatProperties2KHR = 525, - vkGetPhysicalDeviceFragmentShadingRatesKHR = 526, - vkGetPhysicalDeviceImageFormatProperties = 527, - vkGetPhysicalDeviceImageFormatProperties2 = 528, - vkGetPhysicalDeviceImageFormatProperties2KHR = 529, - vkGetPhysicalDeviceMemoryProperties = 530, - vkGetPhysicalDeviceMemoryProperties2 = 531, - vkGetPhysicalDeviceMemoryProperties2KHR = 532, - vkGetPhysicalDeviceMultisamplePropertiesEXT = 533, - vkGetPhysicalDeviceOpticalFlowImageFormatsNV = 534, - vkGetPhysicalDevicePresentRectanglesKHR = 535, - vkGetPhysicalDeviceProperties = 536, - vkGetPhysicalDeviceProperties2 = 537, - vkGetPhysicalDeviceProperties2KHR = 538, - vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = 539, - vkGetPhysicalDeviceQueueFamilyProperties = 540, - vkGetPhysicalDeviceQueueFamilyProperties2 = 541, - vkGetPhysicalDeviceQueueFamilyProperties2KHR = 542, - vkGetPhysicalDeviceScreenPresentationSupportQNX = 543, - vkGetPhysicalDeviceSparseImageFormatProperties = 544, - vkGetPhysicalDeviceSparseImageFormatProperties2 = 545, - vkGetPhysicalDeviceSparseImageFormatProperties2KHR = 546, - vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = 547, - vkGetPhysicalDeviceSurfaceCapabilities2EXT = 548, - vkGetPhysicalDeviceSurfaceCapabilities2KHR = 549, - vkGetPhysicalDeviceSurfaceCapabilitiesKHR = 550, - vkGetPhysicalDeviceSurfaceFormats2KHR = 551, - vkGetPhysicalDeviceSurfaceFormatsKHR = 552, - vkGetPhysicalDeviceSurfacePresentModes2EXT = 553, - vkGetPhysicalDeviceSurfacePresentModesKHR = 554, - vkGetPhysicalDeviceSurfaceSupportKHR = 555, - vkGetPhysicalDeviceToolProperties = 556, - vkGetPhysicalDeviceToolPropertiesEXT = 557, - vkGetPhysicalDeviceVideoCapabilitiesKHR = 558, - vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR = 559, - vkGetPhysicalDeviceVideoFormatPropertiesKHR = 560, - vkGetPhysicalDeviceWaylandPresentationSupportKHR = 561, - vkGetPhysicalDeviceWin32PresentationSupportKHR = 562, - vkGetPhysicalDeviceXcbPresentationSupportKHR = 563, - vkGetPhysicalDeviceXlibPresentationSupportKHR = 564, - vkGetPipelineCacheData = 565, - vkGetPipelineExecutableInternalRepresentationsKHR = 566, - vkGetPipelineExecutablePropertiesKHR = 567, - vkGetPipelineExecutableStatisticsKHR = 568, - vkGetPipelineIndirectDeviceAddressNV = 569, - vkGetPipelineIndirectMemoryRequirementsNV = 570, - vkGetPipelinePropertiesEXT = 571, - vkGetPrivateData = 572, - vkGetPrivateDataEXT = 573, - vkGetQueryPoolResults = 574, - vkGetQueueCheckpointData2NV = 575, - vkGetQueueCheckpointDataNV = 576, - vkGetRandROutputDisplayEXT = 577, - vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = 578, - vkGetRayTracingShaderGroupHandlesKHR = 579, - vkGetRayTracingShaderGroupHandlesNV = 580, - vkGetRayTracingShaderGroupStackSizeKHR = 581, - vkGetRefreshCycleDurationGOOGLE = 582, - vkGetRenderAreaGranularity = 583, - vkGetRenderingAreaGranularityKHR = 584, - vkGetSamplerOpaqueCaptureDescriptorDataEXT = 585, - vkGetScreenBufferPropertiesQNX = 586, - vkGetSemaphoreCounterValue = 587, - vkGetSemaphoreCounterValueKHR = 588, - vkGetSemaphoreFdKHR = 589, - vkGetSemaphoreWin32HandleKHR = 590, - vkGetSemaphoreZirconHandleFUCHSIA = 591, - vkGetShaderBinaryDataEXT = 592, - vkGetShaderInfoAMD = 593, - vkGetShaderModuleCreateInfoIdentifierEXT = 594, - vkGetShaderModuleIdentifierEXT = 595, - vkGetSwapchainCounterEXT = 596, - vkGetSwapchainImagesKHR = 597, - vkGetSwapchainStatusKHR = 598, - vkGetValidationCacheDataEXT = 599, - vkGetVideoSessionMemoryRequirementsKHR = 600, - vkGetWinrtDisplayNV = 601, - vkImportFenceFdKHR = 602, - vkImportFenceWin32HandleKHR = 603, - vkImportSemaphoreFdKHR = 604, - vkImportSemaphoreWin32HandleKHR = 605, - vkImportSemaphoreZirconHandleFUCHSIA = 606, - vkInitializePerformanceApiINTEL = 607, - vkInvalidateMappedMemoryRanges = 608, - vkLatencySleepNV = 609, - vkMapMemory = 610, - vkMapMemory2KHR = 611, - vkMergePipelineCaches = 612, - vkMergeValidationCachesEXT = 613, - vkQueueBeginDebugUtilsLabelEXT = 614, - vkQueueBindSparse = 615, - vkQueueEndDebugUtilsLabelEXT = 616, - vkQueueInsertDebugUtilsLabelEXT = 617, - vkQueueNotifyOutOfBandNV = 618, - vkQueuePresentKHR = 619, - vkQueueSetPerformanceConfigurationINTEL = 620, - vkQueueSubmit = 621, - vkQueueSubmit2 = 622, - vkQueueSubmit2KHR = 623, - vkQueueWaitIdle = 624, - vkRegisterDeviceEventEXT = 625, - vkRegisterDisplayEventEXT = 626, - vkReleaseDisplayEXT = 627, - vkReleaseFullScreenExclusiveModeEXT = 628, - vkReleasePerformanceConfigurationINTEL = 629, - vkReleaseProfilingLockKHR = 630, - vkReleaseSwapchainImagesEXT = 631, - vkResetCommandBuffer = 632, - vkResetCommandPool = 633, - vkResetDescriptorPool = 634, - vkResetEvent = 635, - vkResetFences = 636, - vkResetQueryPool = 637, - vkResetQueryPoolEXT = 638, - vkSetBufferCollectionBufferConstraintsFUCHSIA = 639, - vkSetBufferCollectionImageConstraintsFUCHSIA = 640, - vkSetDebugUtilsObjectNameEXT = 641, - vkSetDebugUtilsObjectTagEXT = 642, - vkSetDeviceMemoryPriorityEXT = 643, - vkSetEvent = 644, - vkSetHdrMetadataEXT = 645, - vkSetLatencyMarkerNV = 646, - vkSetLatencySleepModeNV = 647, - vkSetLocalDimmingAMD = 648, - vkSetPrivateData = 649, - vkSetPrivateDataEXT = 650, - vkSignalSemaphore = 651, - vkSignalSemaphoreKHR = 652, - vkSubmitDebugUtilsMessageEXT = 653, - vkTransitionImageLayoutEXT = 654, - vkTrimCommandPool = 655, - vkTrimCommandPoolKHR = 656, - vkUninitializePerformanceApiINTEL = 657, - vkUnmapMemory = 658, - vkUnmapMemory2KHR = 659, - vkUpdateDescriptorSetWithTemplate = 660, - vkUpdateDescriptorSetWithTemplateKHR = 661, - vkUpdateDescriptorSets = 662, - vkUpdateVideoSessionParametersKHR = 663, - vkWaitForFences = 664, - vkWaitForPresentKHR = 665, - vkWaitSemaphores = 666, - vkWaitSemaphoresKHR = 667, - vkWriteAccelerationStructuresPropertiesKHR = 668, - vkWriteMicromapsPropertiesEXT = 669, + vkGetCalibratedTimestampsKHR = 428, + vkGetCudaModuleCacheNV = 429, + vkGetDeferredOperationMaxConcurrencyKHR = 430, + vkGetDeferredOperationResultKHR = 431, + vkGetDescriptorEXT = 432, + vkGetDescriptorSetHostMappingVALVE = 433, + vkGetDescriptorSetLayoutBindingOffsetEXT = 434, + vkGetDescriptorSetLayoutHostMappingInfoVALVE = 435, + vkGetDescriptorSetLayoutSizeEXT = 436, + vkGetDescriptorSetLayoutSupport = 437, + vkGetDescriptorSetLayoutSupportKHR = 438, + vkGetDeviceAccelerationStructureCompatibilityKHR = 439, + vkGetDeviceBufferMemoryRequirements = 440, + vkGetDeviceBufferMemoryRequirementsKHR = 441, + vkGetDeviceFaultInfoEXT = 442, + vkGetDeviceGroupPeerMemoryFeatures = 443, + vkGetDeviceGroupPeerMemoryFeaturesKHR = 444, + vkGetDeviceGroupPresentCapabilitiesKHR = 445, + vkGetDeviceGroupSurfacePresentModes2EXT = 446, + vkGetDeviceGroupSurfacePresentModesKHR = 447, + vkGetDeviceImageMemoryRequirements = 448, + vkGetDeviceImageMemoryRequirementsKHR = 449, + vkGetDeviceImageSparseMemoryRequirements = 450, + vkGetDeviceImageSparseMemoryRequirementsKHR = 451, + vkGetDeviceImageSubresourceLayoutKHR = 452, + vkGetDeviceMemoryCommitment = 453, + vkGetDeviceMemoryOpaqueCaptureAddress = 454, + vkGetDeviceMemoryOpaqueCaptureAddressKHR = 455, + vkGetDeviceMicromapCompatibilityEXT = 456, + vkGetDeviceProcAddr = 457, + vkGetDeviceQueue = 458, + vkGetDeviceQueue2 = 459, + vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = 460, + vkGetDisplayModeProperties2KHR = 461, + vkGetDisplayModePropertiesKHR = 462, + vkGetDisplayPlaneCapabilities2KHR = 463, + vkGetDisplayPlaneCapabilitiesKHR = 464, + vkGetDisplayPlaneSupportedDisplaysKHR = 465, + vkGetDrmDisplayEXT = 466, + vkGetDynamicRenderingTilePropertiesQCOM = 467, + vkGetEncodedVideoSessionParametersKHR = 468, + vkGetEventStatus = 469, + vkGetExecutionGraphPipelineNodeIndexAMDX = 470, + vkGetExecutionGraphPipelineScratchSizeAMDX = 471, + vkGetFenceFdKHR = 472, + vkGetFenceStatus = 473, + vkGetFenceWin32HandleKHR = 474, + vkGetFramebufferTilePropertiesQCOM = 475, + vkGetGeneratedCommandsMemoryRequirementsNV = 476, + vkGetImageDrmFormatModifierPropertiesEXT = 477, + vkGetImageMemoryRequirements = 478, + vkGetImageMemoryRequirements2 = 479, + vkGetImageMemoryRequirements2KHR = 480, + vkGetImageOpaqueCaptureDescriptorDataEXT = 481, + vkGetImageSparseMemoryRequirements = 482, + vkGetImageSparseMemoryRequirements2 = 483, + vkGetImageSparseMemoryRequirements2KHR = 484, + vkGetImageSubresourceLayout = 485, + vkGetImageSubresourceLayout2EXT = 486, + vkGetImageSubresourceLayout2KHR = 487, + vkGetImageViewAddressNVX = 488, + vkGetImageViewHandleNVX = 489, + vkGetImageViewOpaqueCaptureDescriptorDataEXT = 490, + vkGetInstanceProcAddr = 491, + vkGetLatencyTimingsNV = 492, + vkGetMemoryAndroidHardwareBufferANDROID = 493, + vkGetMemoryFdKHR = 494, + vkGetMemoryFdPropertiesKHR = 495, + vkGetMemoryHostPointerPropertiesEXT = 496, + vkGetMemoryRemoteAddressNV = 497, + vkGetMemoryWin32HandleKHR = 498, + vkGetMemoryWin32HandleNV = 499, + vkGetMemoryWin32HandlePropertiesKHR = 500, + vkGetMemoryZirconHandleFUCHSIA = 501, + vkGetMemoryZirconHandlePropertiesFUCHSIA = 502, + vkGetMicromapBuildSizesEXT = 503, + vkGetPastPresentationTimingGOOGLE = 504, + vkGetPerformanceParameterINTEL = 505, + vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = 506, + vkGetPhysicalDeviceCalibrateableTimeDomainsKHR = 507, + vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR = 508, + vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = 509, + vkGetPhysicalDeviceDirectFBPresentationSupportEXT = 510, + vkGetPhysicalDeviceDisplayPlaneProperties2KHR = 511, + vkGetPhysicalDeviceDisplayPlanePropertiesKHR = 512, + vkGetPhysicalDeviceDisplayProperties2KHR = 513, + vkGetPhysicalDeviceDisplayPropertiesKHR = 514, + vkGetPhysicalDeviceExternalBufferProperties = 515, + vkGetPhysicalDeviceExternalBufferPropertiesKHR = 516, + vkGetPhysicalDeviceExternalFenceProperties = 517, + vkGetPhysicalDeviceExternalFencePropertiesKHR = 518, + vkGetPhysicalDeviceExternalImageFormatPropertiesNV = 519, + vkGetPhysicalDeviceExternalSemaphoreProperties = 520, + vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = 521, + vkGetPhysicalDeviceFeatures = 522, + vkGetPhysicalDeviceFeatures2 = 523, + vkGetPhysicalDeviceFeatures2KHR = 524, + vkGetPhysicalDeviceFormatProperties = 525, + vkGetPhysicalDeviceFormatProperties2 = 526, + vkGetPhysicalDeviceFormatProperties2KHR = 527, + vkGetPhysicalDeviceFragmentShadingRatesKHR = 528, + vkGetPhysicalDeviceImageFormatProperties = 529, + vkGetPhysicalDeviceImageFormatProperties2 = 530, + vkGetPhysicalDeviceImageFormatProperties2KHR = 531, + vkGetPhysicalDeviceMemoryProperties = 532, + vkGetPhysicalDeviceMemoryProperties2 = 533, + vkGetPhysicalDeviceMemoryProperties2KHR = 534, + vkGetPhysicalDeviceMultisamplePropertiesEXT = 535, + vkGetPhysicalDeviceOpticalFlowImageFormatsNV = 536, + vkGetPhysicalDevicePresentRectanglesKHR = 537, + vkGetPhysicalDeviceProperties = 538, + vkGetPhysicalDeviceProperties2 = 539, + vkGetPhysicalDeviceProperties2KHR = 540, + vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = 541, + vkGetPhysicalDeviceQueueFamilyProperties = 542, + vkGetPhysicalDeviceQueueFamilyProperties2 = 543, + vkGetPhysicalDeviceQueueFamilyProperties2KHR = 544, + vkGetPhysicalDeviceScreenPresentationSupportQNX = 545, + vkGetPhysicalDeviceSparseImageFormatProperties = 546, + vkGetPhysicalDeviceSparseImageFormatProperties2 = 547, + vkGetPhysicalDeviceSparseImageFormatProperties2KHR = 548, + vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = 549, + vkGetPhysicalDeviceSurfaceCapabilities2EXT = 550, + vkGetPhysicalDeviceSurfaceCapabilities2KHR = 551, + vkGetPhysicalDeviceSurfaceCapabilitiesKHR = 552, + vkGetPhysicalDeviceSurfaceFormats2KHR = 553, + vkGetPhysicalDeviceSurfaceFormatsKHR = 554, + vkGetPhysicalDeviceSurfacePresentModes2EXT = 555, + vkGetPhysicalDeviceSurfacePresentModesKHR = 556, + vkGetPhysicalDeviceSurfaceSupportKHR = 557, + vkGetPhysicalDeviceToolProperties = 558, + vkGetPhysicalDeviceToolPropertiesEXT = 559, + vkGetPhysicalDeviceVideoCapabilitiesKHR = 560, + vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR = 561, + vkGetPhysicalDeviceVideoFormatPropertiesKHR = 562, + vkGetPhysicalDeviceWaylandPresentationSupportKHR = 563, + vkGetPhysicalDeviceWin32PresentationSupportKHR = 564, + vkGetPhysicalDeviceXcbPresentationSupportKHR = 565, + vkGetPhysicalDeviceXlibPresentationSupportKHR = 566, + vkGetPipelineCacheData = 567, + vkGetPipelineExecutableInternalRepresentationsKHR = 568, + vkGetPipelineExecutablePropertiesKHR = 569, + vkGetPipelineExecutableStatisticsKHR = 570, + vkGetPipelineIndirectDeviceAddressNV = 571, + vkGetPipelineIndirectMemoryRequirementsNV = 572, + vkGetPipelinePropertiesEXT = 573, + vkGetPrivateData = 574, + vkGetPrivateDataEXT = 575, + vkGetQueryPoolResults = 576, + vkGetQueueCheckpointData2NV = 577, + vkGetQueueCheckpointDataNV = 578, + vkGetRandROutputDisplayEXT = 579, + vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = 580, + vkGetRayTracingShaderGroupHandlesKHR = 581, + vkGetRayTracingShaderGroupHandlesNV = 582, + vkGetRayTracingShaderGroupStackSizeKHR = 583, + vkGetRefreshCycleDurationGOOGLE = 584, + vkGetRenderAreaGranularity = 585, + vkGetRenderingAreaGranularityKHR = 586, + vkGetSamplerOpaqueCaptureDescriptorDataEXT = 587, + vkGetScreenBufferPropertiesQNX = 588, + vkGetSemaphoreCounterValue = 589, + vkGetSemaphoreCounterValueKHR = 590, + vkGetSemaphoreFdKHR = 591, + vkGetSemaphoreWin32HandleKHR = 592, + vkGetSemaphoreZirconHandleFUCHSIA = 593, + vkGetShaderBinaryDataEXT = 594, + vkGetShaderInfoAMD = 595, + vkGetShaderModuleCreateInfoIdentifierEXT = 596, + vkGetShaderModuleIdentifierEXT = 597, + vkGetSwapchainCounterEXT = 598, + vkGetSwapchainImagesKHR = 599, + vkGetSwapchainStatusKHR = 600, + vkGetValidationCacheDataEXT = 601, + vkGetVideoSessionMemoryRequirementsKHR = 602, + vkGetWinrtDisplayNV = 603, + vkImportFenceFdKHR = 604, + vkImportFenceWin32HandleKHR = 605, + vkImportSemaphoreFdKHR = 606, + vkImportSemaphoreWin32HandleKHR = 607, + vkImportSemaphoreZirconHandleFUCHSIA = 608, + vkInitializePerformanceApiINTEL = 609, + vkInvalidateMappedMemoryRanges = 610, + vkLatencySleepNV = 611, + vkMapMemory = 612, + vkMapMemory2KHR = 613, + vkMergePipelineCaches = 614, + vkMergeValidationCachesEXT = 615, + vkQueueBeginDebugUtilsLabelEXT = 616, + vkQueueBindSparse = 617, + vkQueueEndDebugUtilsLabelEXT = 618, + vkQueueInsertDebugUtilsLabelEXT = 619, + vkQueueNotifyOutOfBandNV = 620, + vkQueuePresentKHR = 621, + vkQueueSetPerformanceConfigurationINTEL = 622, + vkQueueSubmit = 623, + vkQueueSubmit2 = 624, + vkQueueSubmit2KHR = 625, + vkQueueWaitIdle = 626, + vkRegisterDeviceEventEXT = 627, + vkRegisterDisplayEventEXT = 628, + vkReleaseDisplayEXT = 629, + vkReleaseFullScreenExclusiveModeEXT = 630, + vkReleasePerformanceConfigurationINTEL = 631, + vkReleaseProfilingLockKHR = 632, + vkReleaseSwapchainImagesEXT = 633, + vkResetCommandBuffer = 634, + vkResetCommandPool = 635, + vkResetDescriptorPool = 636, + vkResetEvent = 637, + vkResetFences = 638, + vkResetQueryPool = 639, + vkResetQueryPoolEXT = 640, + vkSetBufferCollectionBufferConstraintsFUCHSIA = 641, + vkSetBufferCollectionImageConstraintsFUCHSIA = 642, + vkSetDebugUtilsObjectNameEXT = 643, + vkSetDebugUtilsObjectTagEXT = 644, + vkSetDeviceMemoryPriorityEXT = 645, + vkSetEvent = 646, + vkSetHdrMetadataEXT = 647, + vkSetLatencyMarkerNV = 648, + vkSetLatencySleepModeNV = 649, + vkSetLocalDimmingAMD = 650, + vkSetPrivateData = 651, + vkSetPrivateDataEXT = 652, + vkSignalSemaphore = 653, + vkSignalSemaphoreKHR = 654, + vkSubmitDebugUtilsMessageEXT = 655, + vkTransitionImageLayoutEXT = 656, + vkTrimCommandPool = 657, + vkTrimCommandPoolKHR = 658, + vkUninitializePerformanceApiINTEL = 659, + vkUnmapMemory = 660, + vkUnmapMemory2KHR = 661, + vkUpdateDescriptorSetWithTemplate = 662, + vkUpdateDescriptorSetWithTemplateKHR = 663, + vkUpdateDescriptorSets = 664, + vkUpdateVideoSessionParametersKHR = 665, + vkWaitForFences = 666, + vkWaitForPresentKHR = 667, + vkWaitSemaphores = 668, + vkWaitSemaphoresKHR = 669, + vkWriteAccelerationStructuresPropertiesKHR = 670, + vkWriteMicromapsPropertiesEXT = 671, }; enum class Struct { @@ -782,7 +784,7 @@ enum class Struct { VkBufferOpaqueCaptureAddressCreateInfo, VkBufferUsageFlags2CreateInfoKHR, VkBufferViewCreateInfo, - VkCalibratedTimestampInfoEXT, + VkCalibratedTimestampInfoKHR, VkCheckpointData2NV, VkCheckpointDataNV, VkClearAttachment, @@ -1395,8 +1397,9 @@ enum class Struct { VkPhysicalDeviceTransformFeedbackPropertiesEXT, VkPhysicalDeviceUniformBufferStandardLayoutFeatures, VkPhysicalDeviceVariablePointersFeatures, - VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT, + VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR, VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, + VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR, VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT, VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR, VkPhysicalDeviceVideoFormatInfoKHR, @@ -1459,7 +1462,7 @@ enum class Struct { VkPipelineShaderStageRequiredSubgroupSizeCreateInfo, VkPipelineTessellationDomainOriginStateCreateInfo, VkPipelineTessellationStateCreateInfo, - VkPipelineVertexInputDivisorStateCreateInfoEXT, + VkPipelineVertexInputDivisorStateCreateInfoKHR, VkPipelineVertexInputStateCreateInfo, VkPipelineViewportCoarseSampleOrderStateCreateInfoNV, VkPipelineViewportDepthClipControlCreateInfoEXT, @@ -1623,7 +1626,7 @@ enum class Struct { VkVertexInputAttributeDescription2EXT, VkVertexInputBindingDescription, VkVertexInputBindingDescription2EXT, - VkVertexInputBindingDivisorDescriptionEXT, + VkVertexInputBindingDivisorDescriptionKHR, VkViSurfaceCreateInfoNN, VkVideoBeginCodingInfoKHR, VkVideoCapabilitiesKHR, @@ -4083,6 +4086,7 @@ enum class Field { supportedSurfaceCounters, supportedTransforms, supportedUsageFlags, + supportsNonZeroFirstInstance, supportsProtected, supportsTextureGatherLODBiasAMD, surface, diff --git a/layers/vulkan/generated/layer_chassis_dispatch.cpp b/layers/vulkan/generated/layer_chassis_dispatch.cpp index 42f5cef4f51..26f3892d9d1 100644 --- a/layers/vulkan/generated/layer_chassis_dispatch.cpp +++ b/layers/vulkan/generated/layer_chassis_dispatch.cpp @@ -5065,6 +5065,27 @@ VkResult DispatchGetPhysicalDeviceCooperativeMatrixPropertiesKHR(VkPhysicalDevic return result; } +VkResult DispatchGetPhysicalDeviceCalibrateableTimeDomainsKHR(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, + VkTimeDomainKHR* pTimeDomains) { + auto layer_data = GetLayerDataPtr(get_dispatch_key(physicalDevice), layer_data_map); + + VkResult result = layer_data->instance_dispatch_table.GetPhysicalDeviceCalibrateableTimeDomainsKHR( + physicalDevice, pTimeDomainCount, pTimeDomains); + + return result; +} + +VkResult DispatchGetCalibratedTimestampsKHR(VkDevice device, uint32_t timestampCount, + const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, + uint64_t* pMaxDeviation) { + auto layer_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map); + + VkResult result = layer_data->device_dispatch_table.GetCalibratedTimestampsKHR(device, timestampCount, pTimestampInfos, + pTimestamps, pMaxDeviation); + + return result; +} + VkResult DispatchCreateDebugReportCallbackEXT(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback) { auto layer_data = GetLayerDataPtr(get_dispatch_key(instance), layer_data_map); @@ -6249,7 +6270,7 @@ void DispatchCmdWriteBufferMarkerAMD(VkCommandBuffer commandBuffer, VkPipelineSt } VkResult DispatchGetPhysicalDeviceCalibrateableTimeDomainsEXT(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, - VkTimeDomainEXT* pTimeDomains) { + VkTimeDomainKHR* pTimeDomains) { auto layer_data = GetLayerDataPtr(get_dispatch_key(physicalDevice), layer_data_map); VkResult result = layer_data->instance_dispatch_table.GetPhysicalDeviceCalibrateableTimeDomainsEXT( @@ -6259,7 +6280,7 @@ VkResult DispatchGetPhysicalDeviceCalibrateableTimeDomainsEXT(VkPhysicalDevice p } VkResult DispatchGetCalibratedTimestampsEXT(VkDevice device, uint32_t timestampCount, - const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, + const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation) { auto layer_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map); diff --git a/layers/vulkan/generated/layer_chassis_dispatch.h b/layers/vulkan/generated/layer_chassis_dispatch.h index bc6a815171d..9d960cfcf92 100644 --- a/layers/vulkan/generated/layer_chassis_dispatch.h +++ b/layers/vulkan/generated/layer_chassis_dispatch.h @@ -650,6 +650,11 @@ void DispatchGetImageSubresourceLayout2KHR(VkDevice device, VkImage image, const VkSubresourceLayout2KHR* pLayout); VkResult DispatchGetPhysicalDeviceCooperativeMatrixPropertiesKHR(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesKHR* pProperties); +VkResult DispatchGetPhysicalDeviceCalibrateableTimeDomainsKHR(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, + VkTimeDomainKHR* pTimeDomains); +VkResult DispatchGetCalibratedTimestampsKHR(VkDevice device, uint32_t timestampCount, + const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, + uint64_t* pMaxDeviation); VkResult DispatchCreateDebugReportCallbackEXT(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback); void DispatchDestroyDebugReportCallbackEXT(VkInstance instance, VkDebugReportCallbackEXT callback, @@ -839,9 +844,9 @@ VkResult DispatchGetMemoryHostPointerPropertiesEXT(VkDevice device, VkExternalMe void DispatchCmdWriteBufferMarkerAMD(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker); VkResult DispatchGetPhysicalDeviceCalibrateableTimeDomainsEXT(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, - VkTimeDomainEXT* pTimeDomains); + VkTimeDomainKHR* pTimeDomains); VkResult DispatchGetCalibratedTimestampsEXT(VkDevice device, uint32_t timestampCount, - const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, + const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation); void DispatchCmdDrawMeshTasksNV(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask); void DispatchCmdDrawMeshTasksIndirectNV(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, diff --git a/layers/vulkan/generated/object_tracker.cpp b/layers/vulkan/generated/object_tracker.cpp index ede3e43ca50..e80c1e50a90 100644 --- a/layers/vulkan/generated/object_tracker.cpp +++ b/layers/vulkan/generated/object_tracker.cpp @@ -4203,6 +4203,12 @@ bool ObjectLifetimes::PreCallValidateGetImageSubresourceLayout2KHR(VkDevice devi // vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR: // Checked by chassis: physicalDevice: "VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR-physicalDevice-parameter" +// vkGetPhysicalDeviceCalibrateableTimeDomainsKHR: +// Checked by chassis: physicalDevice: "VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsKHR-physicalDevice-parameter" + +// vkGetCalibratedTimestampsKHR: +// Checked by chassis: device: "VUID-vkGetCalibratedTimestampsKHR-device-parameter" + // vkCreateDebugReportCallbackEXT: // Checked by chassis: instance: "VUID-vkCreateDebugReportCallbackEXT-instance-parameter" @@ -5329,10 +5335,10 @@ bool ObjectLifetimes::PreCallValidateCmdWriteBufferMarkerAMD(VkCommandBuffer com } // vkGetPhysicalDeviceCalibrateableTimeDomainsEXT: -// Checked by chassis: physicalDevice: "VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsEXT-physicalDevice-parameter" +// Checked by chassis: physicalDevice: "VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsKHR-physicalDevice-parameter" // vkGetCalibratedTimestampsEXT: -// Checked by chassis: device: "VUID-vkGetCalibratedTimestampsEXT-device-parameter" +// Checked by chassis: device: "VUID-vkGetCalibratedTimestampsKHR-device-parameter" // vkCmdDrawMeshTasksNV: // Checked by chassis: commandBuffer: "VUID-vkCmdDrawMeshTasksNV-commandBuffer-parameter" diff --git a/layers/vulkan/generated/state_tracker_helper.cpp b/layers/vulkan/generated/state_tracker_helper.cpp index 30007096248..5a74b4471b3 100644 --- a/layers/vulkan/generated/state_tracker_helper.cpp +++ b/layers/vulkan/generated/state_tracker_helper.cpp @@ -564,6 +564,13 @@ void GetEnabledDeviceFeatures(const VkDeviceCreateInfo *pCreateInfo, DeviceFeatu features->cooperativeMatrixRobustBufferAccess |= enabled->cooperativeMatrixRobustBufferAccess == VK_TRUE; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR: { + const VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR *enabled = + reinterpret_cast(pNext); + features->vertexAttributeInstanceRateDivisor |= enabled->vertexAttributeInstanceRateDivisor == VK_TRUE; + features->vertexAttributeInstanceRateZeroDivisor |= enabled->vertexAttributeInstanceRateZeroDivisor == VK_TRUE; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT: { const VkPhysicalDeviceTransformFeedbackFeaturesEXT *enabled = reinterpret_cast(pNext); @@ -641,13 +648,6 @@ void GetEnabledDeviceFeatures(const VkDeviceCreateInfo *pCreateInfo, DeviceFeatu features->representativeFragmentTest |= enabled->representativeFragmentTest == VK_TRUE; break; } - case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT: { - const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT *enabled = - reinterpret_cast(pNext); - features->vertexAttributeInstanceRateDivisor |= enabled->vertexAttributeInstanceRateDivisor == VK_TRUE; - features->vertexAttributeInstanceRateZeroDivisor |= enabled->vertexAttributeInstanceRateZeroDivisor == VK_TRUE; - break; - } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV: { const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV *enabled = reinterpret_cast(pNext); diff --git a/layers/vulkan/generated/state_tracker_helper.h b/layers/vulkan/generated/state_tracker_helper.h index aa9a3dede03..d0cc3eaeb72 100644 --- a/layers/vulkan/generated/state_tracker_helper.h +++ b/layers/vulkan/generated/state_tracker_helper.h @@ -795,9 +795,9 @@ struct DeviceFeatures { bool variablePointers; // VkPhysicalDeviceVariablePointersFeatures, VkPhysicalDeviceVulkan11Features bool variablePointersStorageBuffer; - // VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT + // VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR bool vertexAttributeInstanceRateDivisor; - // VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT + // VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR bool vertexAttributeInstanceRateZeroDivisor; // VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT bool vertexInputDynamicState; diff --git a/layers/vulkan/generated/stateless_validation_helper.cpp b/layers/vulkan/generated/stateless_validation_helper.cpp index 1d40011d501..feb7dcd0328 100644 --- a/layers/vulkan/generated/stateless_validation_helper.cpp +++ b/layers/vulkan/generated/stateless_validation_helper.cpp @@ -3218,6 +3218,45 @@ bool StatelessValidation::ValidatePnextStructContents(const Location& loc, const // No Validation code for VkPhysicalDeviceCooperativeMatrixPropertiesKHR structure members -- Covers // VUID-VkPhysicalDeviceCooperativeMatrixPropertiesKHR-sType-sType + // No Validation code for VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR structure members -- Covers + // VUID-VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR-sType-sType + + // Validation code for VkPipelineVertexInputDivisorStateCreateInfoKHR structure members + case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR: { // Covers + // VUID-VkPipelineVertexInputDivisorStateCreateInfoKHR-sType-sType + if (is_const_param) { + [[maybe_unused]] const Location pNext_loc = loc.pNext(Struct::VkPipelineVertexInputDivisorStateCreateInfoKHR); + VkPipelineVertexInputDivisorStateCreateInfoKHR* structure = (VkPipelineVertexInputDivisorStateCreateInfoKHR*)header; + skip |= ValidateArray(pNext_loc.dot(Field::vertexBindingDivisorCount), pNext_loc.dot(Field::pVertexBindingDivisors), + structure->vertexBindingDivisorCount, &structure->pVertexBindingDivisors, true, true, + "VUID-VkPipelineVertexInputDivisorStateCreateInfoKHR-vertexBindingDivisorCount-arraylength", + "VUID-VkPipelineVertexInputDivisorStateCreateInfoKHR-pVertexBindingDivisors-parameter"); + + if (structure->pVertexBindingDivisors != nullptr) { + for (uint32_t vertexBindingDivisorIndex = 0; vertexBindingDivisorIndex < structure->vertexBindingDivisorCount; + ++vertexBindingDivisorIndex) { + [[maybe_unused]] const Location pVertexBindingDivisors_loc = + pNext_loc.dot(Field::pVertexBindingDivisors, vertexBindingDivisorIndex); + } + } + } + } break; + + // Validation code for VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR structure members + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR: { // Covers + // VUID-VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR-sType-sType + if (is_const_param) { + [[maybe_unused]] const Location pNext_loc = loc.pNext(Struct::VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR); + VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR* structure = + (VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR*)header; + skip |= ValidateBool32(pNext_loc.dot(Field::vertexAttributeInstanceRateDivisor), + structure->vertexAttributeInstanceRateDivisor); + + skip |= ValidateBool32(pNext_loc.dot(Field::vertexAttributeInstanceRateZeroDivisor), + structure->vertexAttributeInstanceRateZeroDivisor); + } + } break; + // Validation code for VkDebugReportCallbackCreateInfoEXT structure members case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT: { // Covers // VUID-VkDebugReportCallbackCreateInfoEXT-sType-sType @@ -4418,42 +4457,6 @@ bool StatelessValidation::ValidatePnextStructContents(const Location& loc, const // No Validation code for VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT structure members -- Covers // VUID-VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT-sType-sType - - // Validation code for VkPipelineVertexInputDivisorStateCreateInfoEXT structure members - case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT: { // Covers - // VUID-VkPipelineVertexInputDivisorStateCreateInfoEXT-sType-sType - if (is_const_param) { - [[maybe_unused]] const Location pNext_loc = loc.pNext(Struct::VkPipelineVertexInputDivisorStateCreateInfoEXT); - VkPipelineVertexInputDivisorStateCreateInfoEXT* structure = (VkPipelineVertexInputDivisorStateCreateInfoEXT*)header; - skip |= ValidateArray(pNext_loc.dot(Field::vertexBindingDivisorCount), pNext_loc.dot(Field::pVertexBindingDivisors), - structure->vertexBindingDivisorCount, &structure->pVertexBindingDivisors, true, true, - "VUID-VkPipelineVertexInputDivisorStateCreateInfoEXT-vertexBindingDivisorCount-arraylength", - "VUID-VkPipelineVertexInputDivisorStateCreateInfoEXT-pVertexBindingDivisors-parameter"); - - if (structure->pVertexBindingDivisors != nullptr) { - for (uint32_t vertexBindingDivisorIndex = 0; vertexBindingDivisorIndex < structure->vertexBindingDivisorCount; - ++vertexBindingDivisorIndex) { - [[maybe_unused]] const Location pVertexBindingDivisors_loc = - pNext_loc.dot(Field::pVertexBindingDivisors, vertexBindingDivisorIndex); - } - } - } - } break; - - // Validation code for VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT structure members - case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT: { // Covers - // VUID-VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT-sType-sType - if (is_const_param) { - [[maybe_unused]] const Location pNext_loc = loc.pNext(Struct::VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT); - VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT* structure = - (VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT*)header; - skip |= ValidateBool32(pNext_loc.dot(Field::vertexAttributeInstanceRateDivisor), - structure->vertexAttributeInstanceRateDivisor); - - skip |= ValidateBool32(pNext_loc.dot(Field::vertexAttributeInstanceRateZeroDivisor), - structure->vertexAttributeInstanceRateZeroDivisor); - } - } break; #ifdef VK_USE_PLATFORM_GGP // No Validation code for VkPresentFrameTokenGGP structure members -- Covers VUID-VkPresentFrameTokenGGP-sType-sType @@ -7659,7 +7662,7 @@ bool StatelessValidation::PreCallValidateCreateDevice(VkPhysicalDevice physicalD 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_ATTRIBUTE_DIVISOR_FEATURES_KHR, 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, @@ -11854,6 +11857,7 @@ bool StatelessValidation::PreCallValidateGetPhysicalDeviceProperties2(VkPhysical 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_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR, 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}; @@ -18330,6 +18334,51 @@ bool StatelessValidation::PreCallValidateGetPhysicalDeviceCooperativeMatrixPrope return skip; } +bool StatelessValidation::PreCallValidateGetPhysicalDeviceCalibrateableTimeDomainsKHR(VkPhysicalDevice physicalDevice, + uint32_t* pTimeDomainCount, + VkTimeDomainKHR* pTimeDomains, + const ErrorObject& error_obj) const { + bool skip = false; + [[maybe_unused]] const Location loc = error_obj.location; + skip |= + ValidateArray(loc.dot(Field::pTimeDomainCount), loc.dot(Field::pTimeDomains), pTimeDomainCount, &pTimeDomains, true, false, + false, kVUIDUndefined, "VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsKHR-pTimeDomains-parameter"); + return skip; +} + +bool StatelessValidation::PreCallValidateGetCalibratedTimestampsKHR(VkDevice device, uint32_t timestampCount, + const VkCalibratedTimestampInfoKHR* pTimestampInfos, + uint64_t* pTimestamps, uint64_t* pMaxDeviation, + const ErrorObject& error_obj) const { + bool skip = false; + [[maybe_unused]] const Location loc = error_obj.location; + if (!IsExtEnabled(device_extensions.vk_khr_calibrated_timestamps) && loc.function == vvl::Func::vkGetCalibratedTimestampsKHR) + skip |= OutputExtensionError(loc, "VK_KHR_calibrated_timestamps"); + skip |= ValidateStructTypeArray( + loc.dot(Field::timestampCount), loc.dot(Field::pTimestampInfos), "VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR", + timestampCount, pTimestampInfos, VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR, true, true, + "VUID-VkCalibratedTimestampInfoKHR-sType-sType", "VUID-vkGetCalibratedTimestampsKHR-pTimestampInfos-parameter", + "VUID-vkGetCalibratedTimestampsKHR-timestampCount-arraylength"); + if (pTimestampInfos != nullptr) { + for (uint32_t timestampIndex = 0; timestampIndex < timestampCount; ++timestampIndex) { + [[maybe_unused]] const Location pTimestampInfos_loc = loc.dot(Field::pTimestampInfos, timestampIndex); + skip |= ValidateStructPnext(pTimestampInfos_loc, pTimestampInfos[timestampIndex].pNext, 0, nullptr, + GeneratedVulkanHeaderVersion, "VUID-VkCalibratedTimestampInfoKHR-pNext-pNext", + kVUIDUndefined, false, true); + + skip |= ValidateRangedEnum(pTimestampInfos_loc.dot(Field::timeDomain), "VkTimeDomainKHR", + pTimestampInfos[timestampIndex].timeDomain, + "VUID-VkCalibratedTimestampInfoKHR-timeDomain-parameter"); + } + } + skip |= ValidateArray(loc.dot(Field::timestampCount), loc.dot(Field::pTimestamps), timestampCount, &pTimestamps, true, true, + "VUID-vkGetCalibratedTimestampsKHR-timestampCount-arraylength", + "VUID-vkGetCalibratedTimestampsKHR-pTimestamps-parameter"); + skip |= ValidateRequiredPointer(loc.dot(Field::pMaxDeviation), pMaxDeviation, + "VUID-vkGetCalibratedTimestampsKHR-pMaxDeviation-parameter"); + return skip; +} + bool StatelessValidation::PreCallValidateCreateDebugReportCallbackEXT(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, @@ -20938,46 +20987,24 @@ bool StatelessValidation::PreCallValidateCmdWriteBufferMarkerAMD(VkCommandBuffer bool StatelessValidation::PreCallValidateGetPhysicalDeviceCalibrateableTimeDomainsEXT(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, - VkTimeDomainEXT* pTimeDomains, + VkTimeDomainKHR* pTimeDomains, const ErrorObject& error_obj) const { bool skip = false; [[maybe_unused]] const Location loc = error_obj.location; - skip |= - ValidateArray(loc.dot(Field::pTimeDomainCount), loc.dot(Field::pTimeDomains), pTimeDomainCount, &pTimeDomains, true, false, - false, kVUIDUndefined, "VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsEXT-pTimeDomains-parameter"); + skip |= PreCallValidateGetPhysicalDeviceCalibrateableTimeDomainsKHR(physicalDevice, pTimeDomainCount, pTimeDomains, error_obj); return skip; } bool StatelessValidation::PreCallValidateGetCalibratedTimestampsEXT(VkDevice device, uint32_t timestampCount, - const VkCalibratedTimestampInfoEXT* pTimestampInfos, + const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation, const ErrorObject& error_obj) const { bool skip = false; [[maybe_unused]] const Location loc = error_obj.location; if (!IsExtEnabled(device_extensions.vk_ext_calibrated_timestamps)) skip |= OutputExtensionError(loc, "VK_EXT_calibrated_timestamps"); - skip |= ValidateStructTypeArray( - loc.dot(Field::timestampCount), loc.dot(Field::pTimestampInfos), "VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT", - timestampCount, pTimestampInfos, VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT, true, true, - "VUID-VkCalibratedTimestampInfoEXT-sType-sType", "VUID-vkGetCalibratedTimestampsEXT-pTimestampInfos-parameter", - "VUID-vkGetCalibratedTimestampsEXT-timestampCount-arraylength"); - if (pTimestampInfos != nullptr) { - for (uint32_t timestampIndex = 0; timestampIndex < timestampCount; ++timestampIndex) { - [[maybe_unused]] const Location pTimestampInfos_loc = loc.dot(Field::pTimestampInfos, timestampIndex); - skip |= ValidateStructPnext(pTimestampInfos_loc, pTimestampInfos[timestampIndex].pNext, 0, nullptr, - GeneratedVulkanHeaderVersion, "VUID-VkCalibratedTimestampInfoEXT-pNext-pNext", - kVUIDUndefined, false, true); - - skip |= ValidateRangedEnum(pTimestampInfos_loc.dot(Field::timeDomain), "VkTimeDomainEXT", - pTimestampInfos[timestampIndex].timeDomain, - "VUID-VkCalibratedTimestampInfoEXT-timeDomain-parameter"); - } - } - skip |= ValidateArray(loc.dot(Field::timestampCount), loc.dot(Field::pTimestamps), timestampCount, &pTimestamps, true, true, - "VUID-vkGetCalibratedTimestampsEXT-timestampCount-arraylength", - "VUID-vkGetCalibratedTimestampsEXT-pTimestamps-parameter"); - skip |= ValidateRequiredPointer(loc.dot(Field::pMaxDeviation), pMaxDeviation, - "VUID-vkGetCalibratedTimestampsEXT-pMaxDeviation-parameter"); + skip |= + PreCallValidateGetCalibratedTimestampsKHR(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation, error_obj); return skip; } @@ -26396,7 +26423,7 @@ bool StatelessValidation::ValidatePipelineVertexInputStateCreateInfo(const VkPip "VUID-VkPipelineVertexInputStateCreateInfo-sType-sType"); constexpr std::array allowed_structs_VkPipelineVertexInputStateCreateInfo = { - VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT}; + VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR}; skip |= ValidateStructPnext(loc, info.pNext, allowed_structs_VkPipelineVertexInputStateCreateInfo.size(), allowed_structs_VkPipelineVertexInputStateCreateInfo.data(), GeneratedVulkanHeaderVersion, diff --git a/layers/vulkan/generated/stateless_validation_helper.h b/layers/vulkan/generated/stateless_validation_helper.h index abeb271acc4..57dc8534f19 100644 --- a/layers/vulkan/generated/stateless_validation_helper.h +++ b/layers/vulkan/generated/stateless_validation_helper.h @@ -951,6 +951,12 @@ bool PreCallValidateGetImageSubresourceLayout2KHR(VkDevice device, VkImage image bool PreCallValidateGetPhysicalDeviceCooperativeMatrixPropertiesKHR(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesKHR* pProperties, const ErrorObject& error_obj) const override; +bool PreCallValidateGetPhysicalDeviceCalibrateableTimeDomainsKHR(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, + VkTimeDomainKHR* pTimeDomains, + const ErrorObject& error_obj) const override; +bool PreCallValidateGetCalibratedTimestampsKHR(VkDevice device, uint32_t timestampCount, + const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, + uint64_t* pMaxDeviation, const ErrorObject& error_obj) const override; bool PreCallValidateCreateDebugReportCallbackEXT(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback, const ErrorObject& error_obj) const override; @@ -1217,10 +1223,10 @@ bool PreCallValidateCmdWriteBufferMarkerAMD(VkCommandBuffer commandBuffer, VkPip VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker, const ErrorObject& error_obj) const override; bool PreCallValidateGetPhysicalDeviceCalibrateableTimeDomainsEXT(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, - VkTimeDomainEXT* pTimeDomains, + VkTimeDomainKHR* pTimeDomains, const ErrorObject& error_obj) const override; bool PreCallValidateGetCalibratedTimestampsEXT(VkDevice device, uint32_t timestampCount, - const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, + const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation, const ErrorObject& error_obj) const override; bool PreCallValidateCmdDrawMeshTasksNV(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask, const ErrorObject& error_obj) const override; diff --git a/layers/vulkan/generated/thread_safety.cpp b/layers/vulkan/generated/thread_safety.cpp index 5a234c7b5d9..bcfc65acbf9 100644 --- a/layers/vulkan/generated/thread_safety.cpp +++ b/layers/vulkan/generated/thread_safety.cpp @@ -4031,6 +4031,20 @@ void ThreadSafety::PostCallRecordGetImageSubresourceLayout2KHR(VkDevice device, FinishReadObject(image, record_obj.location); } +void ThreadSafety::PreCallRecordGetCalibratedTimestampsKHR(VkDevice device, uint32_t timestampCount, + const VkCalibratedTimestampInfoKHR* pTimestampInfos, + uint64_t* pTimestamps, uint64_t* pMaxDeviation, + const RecordObject& record_obj) { + StartReadObjectParentInstance(device, record_obj.location); +} + +void ThreadSafety::PostCallRecordGetCalibratedTimestampsKHR(VkDevice device, uint32_t timestampCount, + const VkCalibratedTimestampInfoKHR* pTimestampInfos, + uint64_t* pTimestamps, uint64_t* pMaxDeviation, + const RecordObject& record_obj) { + FinishReadObjectParentInstance(device, record_obj.location); +} + void ThreadSafety::PreCallRecordCreateDebugReportCallbackEXT(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, @@ -5291,17 +5305,17 @@ void ThreadSafety::PostCallRecordCmdWriteBufferMarkerAMD(VkCommandBuffer command } void ThreadSafety::PreCallRecordGetCalibratedTimestampsEXT(VkDevice device, uint32_t timestampCount, - const VkCalibratedTimestampInfoEXT* pTimestampInfos, + const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation, const RecordObject& record_obj) { - StartReadObjectParentInstance(device, record_obj.location); + PreCallRecordGetCalibratedTimestampsKHR(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation, record_obj); } void ThreadSafety::PostCallRecordGetCalibratedTimestampsEXT(VkDevice device, uint32_t timestampCount, - const VkCalibratedTimestampInfoEXT* pTimestampInfos, + const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation, const RecordObject& record_obj) { - FinishReadObjectParentInstance(device, record_obj.location); + PostCallRecordGetCalibratedTimestampsKHR(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation, record_obj); } void ThreadSafety::PreCallRecordCmdDrawMeshTasksNV(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask, diff --git a/layers/vulkan/generated/thread_safety_commands.h b/layers/vulkan/generated/thread_safety_commands.h index d649caf972f..22baaccf015 100644 --- a/layers/vulkan/generated/thread_safety_commands.h +++ b/layers/vulkan/generated/thread_safety_commands.h @@ -2097,6 +2097,14 @@ void PreCallRecordGetImageSubresourceLayout2KHR(VkDevice device, VkImage image, void PostCallRecordGetImageSubresourceLayout2KHR(VkDevice device, VkImage image, const VkImageSubresource2KHR* pSubresource, VkSubresourceLayout2KHR* pLayout, const RecordObject& record_obj) override; +void PreCallRecordGetCalibratedTimestampsKHR(VkDevice device, uint32_t timestampCount, + const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, + uint64_t* pMaxDeviation, const RecordObject& record_obj) override; + +void PostCallRecordGetCalibratedTimestampsKHR(VkDevice device, uint32_t timestampCount, + const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, + uint64_t* pMaxDeviation, const RecordObject& record_obj) override; + void PreCallRecordCreateDebugReportCallbackEXT(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback, const RecordObject& record_obj) override; @@ -2709,11 +2717,11 @@ void PostCallRecordCmdWriteBufferMarkerAMD(VkCommandBuffer commandBuffer, VkPipe VkDeviceSize dstOffset, uint32_t marker, const RecordObject& record_obj) override; void PreCallRecordGetCalibratedTimestampsEXT(VkDevice device, uint32_t timestampCount, - const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, + const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation, const RecordObject& record_obj) override; void PostCallRecordGetCalibratedTimestampsEXT(VkDevice device, uint32_t timestampCount, - const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, + const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation, const RecordObject& record_obj) override; void PreCallRecordCmdDrawMeshTasksNV(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask, diff --git a/layers/vulkan/generated/valid_enum_values.cpp b/layers/vulkan/generated/valid_enum_values.cpp index c5db9ee1248..de60a357c17 100644 --- a/layers/vulkan/generated/valid_enum_values.cpp +++ b/layers/vulkan/generated/valid_enum_values.cpp @@ -884,6 +884,22 @@ std::vector ValidationObject::ValidParamValues() const { return values; } +template<> +std::vector ValidationObject::ValidParamValues() const { + constexpr std::array CoreVkTimeDomainKHREnums = {VK_TIME_DOMAIN_DEVICE_KHR, VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR, VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR, VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR}; + static const vvl::unordered_map> ExtendedVkTimeDomainKHREnums = { + }; + std::vector values(CoreVkTimeDomainKHREnums.cbegin(), CoreVkTimeDomainKHREnums.cend()); + std::set unique_exts; + for (const auto& [extension, enums]: ExtendedVkTimeDomainKHREnums) { + if (IsExtEnabled(device_extensions.*extension)) { + unique_exts.insert(enums.cbegin(), enums.cend()); + } + } + std::copy(unique_exts.cbegin(), unique_exts.cend(), std::back_inserter(values)); + return values; +} + template<> std::vector ValidationObject::ValidParamValues() const { constexpr std::array CoreVkDebugReportObjectTypeEXTEnums = {VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT}; @@ -1227,22 +1243,6 @@ std::vector ValidationObject::V return values; } -template<> -std::vector ValidationObject::ValidParamValues() const { - constexpr std::array CoreVkTimeDomainEXTEnums = {VK_TIME_DOMAIN_DEVICE_EXT, VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT, VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT, VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT}; - static const vvl::unordered_map> ExtendedVkTimeDomainEXTEnums = { - }; - std::vector values(CoreVkTimeDomainEXTEnums.cbegin(), CoreVkTimeDomainEXTEnums.cend()); - std::set unique_exts; - for (const auto& [extension, enums]: ExtendedVkTimeDomainEXTEnums) { - if (IsExtEnabled(device_extensions.*extension)) { - unique_exts.insert(enums.cbegin(), enums.cend()); - } - } - std::copy(unique_exts.cbegin(), unique_exts.cend(), std::back_inserter(values)); - return values; -} - template<> std::vector ValidationObject::ValidParamValues() const { constexpr std::array CoreVkMemoryOverallocationBehaviorAMDEnums = {VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD, VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD, VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD}; diff --git a/layers/vulkan/generated/valid_enum_values.h b/layers/vulkan/generated/valid_enum_values.h index 47ed1cf743c..dfa6e1778d2 100644 --- a/layers/vulkan/generated/valid_enum_values.h +++ b/layers/vulkan/generated/valid_enum_values.h @@ -70,6 +70,7 @@ template<> std::vector ValidationObject::ValidParamV #endif // VK_ENABLE_BETA_EXTENSIONS template<> std::vector ValidationObject::ValidParamValues() const; template<> std::vector ValidationObject::ValidParamValues() const; +template<> std::vector ValidationObject::ValidParamValues() const; template<> std::vector ValidationObject::ValidParamValues() const; template<> std::vector ValidationObject::ValidParamValues() const; template<> std::vector ValidationObject::ValidParamValues() const; @@ -91,7 +92,6 @@ template<> std::vector ValidationObject::ValidParamValues() c template<> std::vector ValidationObject::ValidParamValues() const; template<> std::vector ValidationObject::ValidParamValues() const; template<> std::vector ValidationObject::ValidParamValues() const; -template<> std::vector ValidationObject::ValidParamValues() const; template<> std::vector ValidationObject::ValidParamValues() const; template<> std::vector ValidationObject::ValidParamValues() const; template<> std::vector ValidationObject::ValidParamValues() const; diff --git a/layers/vulkan/generated/vk_dispatch_table_helper.h b/layers/vulkan/generated/vk_dispatch_table_helper.h index 9e0fbe082db..4b8728cc383 100644 --- a/layers/vulkan/generated/vk_dispatch_table_helper.h +++ b/layers/vulkan/generated/vk_dispatch_table_helper.h @@ -760,6 +760,16 @@ static VKAPI_ATTR VkResult VKAPI_CALL StubGetPhysicalDeviceCooperativeMatrixProp VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesKHR* pProperties) { return VK_SUCCESS; } +static VKAPI_ATTR VkResult VKAPI_CALL StubGetPhysicalDeviceCalibrateableTimeDomainsKHR(VkPhysicalDevice physicalDevice, + uint32_t* pTimeDomainCount, + VkTimeDomainKHR* pTimeDomains) { + return VK_SUCCESS; +} +static VKAPI_ATTR VkResult VKAPI_CALL StubGetCalibratedTimestampsKHR(VkDevice device, uint32_t timestampCount, + const VkCalibratedTimestampInfoKHR* pTimestampInfos, + uint64_t* pTimestamps, uint64_t* pMaxDeviation) { + return VK_SUCCESS; +} static VKAPI_ATTR VkResult VKAPI_CALL StubCreateDebugReportCallbackEXT(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, @@ -1086,11 +1096,11 @@ static VKAPI_ATTR void VKAPI_CALL StubCmdWriteBufferMarkerAMD(VkCommandBuffer co VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker) {} static VKAPI_ATTR VkResult VKAPI_CALL StubGetPhysicalDeviceCalibrateableTimeDomainsEXT(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, - VkTimeDomainEXT* pTimeDomains) { + VkTimeDomainKHR* pTimeDomains) { return VK_SUCCESS; } static VKAPI_ATTR VkResult VKAPI_CALL StubGetCalibratedTimestampsEXT(VkDevice device, uint32_t timestampCount, - const VkCalibratedTimestampInfoEXT* pTimestampInfos, + const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation) { return VK_SUCCESS; } @@ -1934,6 +1944,7 @@ const vvl::unordered_map> api_ {"vkGetRenderingAreaGranularityKHR", {"VK_KHR_maintenance5"}}, {"vkGetDeviceImageSubresourceLayoutKHR", {"VK_KHR_maintenance5"}}, {"vkGetImageSubresourceLayout2KHR", {"VK_KHR_maintenance5"}}, + {"vkGetCalibratedTimestampsKHR", {"VK_KHR_calibrated_timestamps"}}, {"vkDebugMarkerSetObjectTagEXT", {"VK_EXT_debug_marker"}}, {"vkDebugMarkerSetObjectNameEXT", {"VK_EXT_debug_marker"}}, {"vkCmdDebugMarkerBeginEXT", {"VK_EXT_debug_marker"}}, @@ -3101,6 +3112,10 @@ static inline void layer_init_device_dispatch_table(VkDevice device, VkLayerDisp if (table->GetImageSubresourceLayout2KHR == nullptr) { table->GetImageSubresourceLayout2KHR = (PFN_vkGetImageSubresourceLayout2KHR)StubGetImageSubresourceLayout2KHR; } + table->GetCalibratedTimestampsKHR = (PFN_vkGetCalibratedTimestampsKHR)gpa(device, "vkGetCalibratedTimestampsKHR"); + if (table->GetCalibratedTimestampsKHR == nullptr) { + table->GetCalibratedTimestampsKHR = (PFN_vkGetCalibratedTimestampsKHR)StubGetCalibratedTimestampsKHR; + } table->DebugMarkerSetObjectTagEXT = (PFN_vkDebugMarkerSetObjectTagEXT)gpa(device, "vkDebugMarkerSetObjectTagEXT"); if (table->DebugMarkerSetObjectTagEXT == nullptr) { table->DebugMarkerSetObjectTagEXT = (PFN_vkDebugMarkerSetObjectTagEXT)StubDebugMarkerSetObjectTagEXT; @@ -4704,6 +4719,12 @@ static inline void layer_init_instance_dispatch_table(VkInstance instance, VkLay table->GetPhysicalDeviceCooperativeMatrixPropertiesKHR = (PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR)StubGetPhysicalDeviceCooperativeMatrixPropertiesKHR; } + table->GetPhysicalDeviceCalibrateableTimeDomainsKHR = + (PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR)gpa(instance, "vkGetPhysicalDeviceCalibrateableTimeDomainsKHR"); + if (table->GetPhysicalDeviceCalibrateableTimeDomainsKHR == nullptr) { + table->GetPhysicalDeviceCalibrateableTimeDomainsKHR = + (PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR)StubGetPhysicalDeviceCalibrateableTimeDomainsKHR; + } table->CreateDebugReportCallbackEXT = (PFN_vkCreateDebugReportCallbackEXT)gpa(instance, "vkCreateDebugReportCallbackEXT"); if (table->CreateDebugReportCallbackEXT == nullptr) { table->CreateDebugReportCallbackEXT = (PFN_vkCreateDebugReportCallbackEXT)StubCreateDebugReportCallbackEXT; diff --git a/layers/vulkan/generated/vk_extension_helper.h b/layers/vulkan/generated/vk_extension_helper.h index 27a74df87ff..9163a608a61 100644 --- a/layers/vulkan/generated/vk_extension_helper.h +++ b/layers/vulkan/generated/vk_extension_helper.h @@ -480,6 +480,8 @@ struct DeviceExtensions : public InstanceExtensions { ExtEnabled vk_khr_maintenance5{kNotEnabled}; ExtEnabled vk_khr_ray_tracing_position_fetch{kNotEnabled}; ExtEnabled vk_khr_cooperative_matrix{kNotEnabled}; + ExtEnabled vk_khr_vertex_attribute_divisor{kNotEnabled}; + ExtEnabled vk_khr_calibrated_timestamps{kNotEnabled}; ExtEnabled vk_nv_glsl_shader{kNotEnabled}; ExtEnabled vk_ext_depth_range_unrestricted{kNotEnabled}; ExtEnabled vk_img_filter_cubic{kNotEnabled}; @@ -1083,6 +1085,13 @@ struct DeviceExtensions : public InstanceExtensions { {VK_KHR_COOPERATIVE_MATRIX_EXTENSION_NAME, DeviceInfo(&DeviceExtensions::vk_khr_cooperative_matrix, {{{&DeviceExtensions::vk_khr_get_physical_device_properties2, VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME}}})}, + {VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME, + DeviceInfo(&DeviceExtensions::vk_khr_vertex_attribute_divisor, + {{{&DeviceExtensions::vk_khr_get_physical_device_properties2, + VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME}}})}, + {VK_KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME, DeviceInfo(&DeviceExtensions::vk_khr_calibrated_timestamps, + {{{&DeviceExtensions::vk_khr_get_physical_device_properties2, + VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME}}})}, {VK_NV_GLSL_SHADER_EXTENSION_NAME, DeviceInfo(&DeviceExtensions::vk_nv_glsl_shader, {})}, {VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME, DeviceInfo(&DeviceExtensions::vk_ext_depth_range_unrestricted, {})}, {VK_IMG_FILTER_CUBIC_EXTENSION_NAME, DeviceInfo(&DeviceExtensions::vk_img_filter_cubic, {})}, @@ -2007,6 +2016,8 @@ static const std::set kDeviceExtensionNames = { VK_KHR_MAINTENANCE_5_EXTENSION_NAME, VK_KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME, VK_KHR_COOPERATIVE_MATRIX_EXTENSION_NAME, + VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME, + VK_KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME, VK_NV_GLSL_SHADER_EXTENSION_NAME, VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME, VK_IMG_FILTER_CUBIC_EXTENSION_NAME, diff --git a/layers/vulkan/generated/vk_function_pointers.cpp b/layers/vulkan/generated/vk_function_pointers.cpp index 1354ff4261d..ee8372082a5 100644 --- a/layers/vulkan/generated/vk_function_pointers.cpp +++ b/layers/vulkan/generated/vk_function_pointers.cpp @@ -457,6 +457,8 @@ PFN_vkGetRenderingAreaGranularityKHR GetRenderingAreaGranularityKHR; PFN_vkGetDeviceImageSubresourceLayoutKHR GetDeviceImageSubresourceLayoutKHR; PFN_vkGetImageSubresourceLayout2KHR GetImageSubresourceLayout2KHR; PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR GetPhysicalDeviceCooperativeMatrixPropertiesKHR; +PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR GetPhysicalDeviceCalibrateableTimeDomainsKHR; +PFN_vkGetCalibratedTimestampsKHR GetCalibratedTimestampsKHR; PFN_vkCreateDebugReportCallbackEXT CreateDebugReportCallbackEXT; PFN_vkDestroyDebugReportCallbackEXT DestroyDebugReportCallbackEXT; PFN_vkDebugReportMessageEXT DebugReportMessageEXT; @@ -1182,6 +1184,10 @@ void InitExtensionFromCore(const char* extension_name) { CmdDrawIndexedIndirectCountAMD = CmdDrawIndexedIndirectCount; } }, + { + "VK_EXT_calibrated_timestamps", []() { + } + }, { "VK_EXT_tooling_info", []() { GetPhysicalDeviceToolPropertiesEXT = GetPhysicalDeviceToolProperties; @@ -1731,6 +1737,12 @@ void InitDeviceExtension(VkInstance instance, VkDevice device, const char* exten GetPhysicalDeviceCooperativeMatrixPropertiesKHR = reinterpret_cast(GetInstanceProcAddr(instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR")); } }, + { + "VK_KHR_calibrated_timestamps", [](VkInstance instance, VkDevice device) { + GetCalibratedTimestampsKHR = reinterpret_cast(GetDeviceProcAddr(device, "vkGetCalibratedTimestampsKHR")); + GetPhysicalDeviceCalibrateableTimeDomainsKHR = reinterpret_cast(GetInstanceProcAddr(instance, "vkGetPhysicalDeviceCalibrateableTimeDomainsKHR")); + } + }, { "VK_EXT_debug_marker", [](VkInstance , VkDevice device) { DebugMarkerSetObjectTagEXT = reinterpret_cast(GetDeviceProcAddr(device, "vkDebugMarkerSetObjectTagEXT")); @@ -2552,6 +2564,8 @@ void ResetAllExtensions() { GetDeviceImageSubresourceLayoutKHR = nullptr; GetImageSubresourceLayout2KHR = nullptr; GetPhysicalDeviceCooperativeMatrixPropertiesKHR = nullptr; + GetPhysicalDeviceCalibrateableTimeDomainsKHR = nullptr; + GetCalibratedTimestampsKHR = nullptr; CreateDebugReportCallbackEXT = nullptr; DestroyDebugReportCallbackEXT = nullptr; DebugReportMessageEXT = nullptr; diff --git a/layers/vulkan/generated/vk_function_pointers.h b/layers/vulkan/generated/vk_function_pointers.h index 9b4855c79d0..4f84c97596b 100644 --- a/layers/vulkan/generated/vk_function_pointers.h +++ b/layers/vulkan/generated/vk_function_pointers.h @@ -420,6 +420,8 @@ extern PFN_vkGetRenderingAreaGranularityKHR GetRenderingAreaGranularityKHR; extern PFN_vkGetDeviceImageSubresourceLayoutKHR GetDeviceImageSubresourceLayoutKHR; extern PFN_vkGetImageSubresourceLayout2KHR GetImageSubresourceLayout2KHR; extern PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR GetPhysicalDeviceCooperativeMatrixPropertiesKHR; +extern PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR GetPhysicalDeviceCalibrateableTimeDomainsKHR; +extern PFN_vkGetCalibratedTimestampsKHR GetCalibratedTimestampsKHR; extern PFN_vkCreateDebugReportCallbackEXT CreateDebugReportCallbackEXT; extern PFN_vkDestroyDebugReportCallbackEXT DestroyDebugReportCallbackEXT; extern PFN_vkDebugReportMessageEXT DebugReportMessageEXT; diff --git a/layers/vulkan/generated/vk_layer_dispatch_table.h b/layers/vulkan/generated/vk_layer_dispatch_table.h index 7f0fee791a1..4f1f4b9af08 100644 --- a/layers/vulkan/generated/vk_layer_dispatch_table.h +++ b/layers/vulkan/generated/vk_layer_dispatch_table.h @@ -117,6 +117,7 @@ typedef struct VkLayerInstanceDispatchTable_ { PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR; #endif // VK_ENABLE_BETA_EXTENSIONS PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR GetPhysicalDeviceCooperativeMatrixPropertiesKHR; + PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR GetPhysicalDeviceCalibrateableTimeDomainsKHR; PFN_vkCreateDebugReportCallbackEXT CreateDebugReportCallbackEXT; PFN_vkDestroyDebugReportCallbackEXT DestroyDebugReportCallbackEXT; PFN_vkDebugReportMessageEXT DebugReportMessageEXT; @@ -473,6 +474,7 @@ typedef struct VkLayerDispatchTable_ { PFN_vkGetRenderingAreaGranularityKHR GetRenderingAreaGranularityKHR; PFN_vkGetDeviceImageSubresourceLayoutKHR GetDeviceImageSubresourceLayoutKHR; PFN_vkGetImageSubresourceLayout2KHR GetImageSubresourceLayout2KHR; + PFN_vkGetCalibratedTimestampsKHR GetCalibratedTimestampsKHR; PFN_vkDebugMarkerSetObjectTagEXT DebugMarkerSetObjectTagEXT; PFN_vkDebugMarkerSetObjectNameEXT DebugMarkerSetObjectNameEXT; PFN_vkCmdDebugMarkerBeginEXT CmdDebugMarkerBeginEXT; diff --git a/layers/vulkan/generated/vk_safe_struct.h b/layers/vulkan/generated/vk_safe_struct.h index ee849857b88..a973d2bf526 100644 --- a/layers/vulkan/generated/vk_safe_struct.h +++ b/layers/vulkan/generated/vk_safe_struct.h @@ -7354,6 +7354,89 @@ struct safe_VkPhysicalDeviceCooperativeMatrixPropertiesKHR { return reinterpret_cast(this); } }; +struct safe_VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR { + VkStructureType sType; + void* pNext{}; + uint32_t maxVertexAttribDivisor; + VkBool32 supportsNonZeroFirstInstance; + + safe_VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR(const VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR* in_struct, + PNextCopyState* copy_state = {}, bool copy_pnext = true); + safe_VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR( + const safe_VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR& copy_src); + safe_VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR& operator=( + const safe_VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR& copy_src); + safe_VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR(); + ~safe_VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR(); + void initialize(const VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR* in_struct, PNextCopyState* copy_state = {}); + void initialize(const safe_VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR* copy_src, PNextCopyState* copy_state = {}); + VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR* ptr() { + return reinterpret_cast(this); + } + VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR const* ptr() const { + return reinterpret_cast(this); + } +}; +struct safe_VkPipelineVertexInputDivisorStateCreateInfoKHR { + VkStructureType sType; + const void* pNext{}; + uint32_t vertexBindingDivisorCount; + const VkVertexInputBindingDivisorDescriptionKHR* pVertexBindingDivisors{}; + + safe_VkPipelineVertexInputDivisorStateCreateInfoKHR(const VkPipelineVertexInputDivisorStateCreateInfoKHR* in_struct, + PNextCopyState* copy_state = {}, bool copy_pnext = true); + safe_VkPipelineVertexInputDivisorStateCreateInfoKHR(const safe_VkPipelineVertexInputDivisorStateCreateInfoKHR& copy_src); + safe_VkPipelineVertexInputDivisorStateCreateInfoKHR& operator=( + const safe_VkPipelineVertexInputDivisorStateCreateInfoKHR& copy_src); + safe_VkPipelineVertexInputDivisorStateCreateInfoKHR(); + ~safe_VkPipelineVertexInputDivisorStateCreateInfoKHR(); + void initialize(const VkPipelineVertexInputDivisorStateCreateInfoKHR* in_struct, PNextCopyState* copy_state = {}); + void initialize(const safe_VkPipelineVertexInputDivisorStateCreateInfoKHR* copy_src, PNextCopyState* copy_state = {}); + VkPipelineVertexInputDivisorStateCreateInfoKHR* ptr() { + return reinterpret_cast(this); + } + VkPipelineVertexInputDivisorStateCreateInfoKHR const* ptr() const { + return reinterpret_cast(this); + } +}; +struct safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR { + VkStructureType sType; + void* pNext{}; + VkBool32 vertexAttributeInstanceRateDivisor; + VkBool32 vertexAttributeInstanceRateZeroDivisor; + + safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR(const VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR* in_struct, + PNextCopyState* copy_state = {}, bool copy_pnext = true); + safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR(const safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR& copy_src); + safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR& operator=( + const safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR& copy_src); + safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR(); + ~safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR(); + void initialize(const VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR* in_struct, PNextCopyState* copy_state = {}); + void initialize(const safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR* copy_src, PNextCopyState* copy_state = {}); + VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR* ptr() { + return reinterpret_cast(this); + } + VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR const* ptr() const { + return reinterpret_cast(this); + } +}; +struct safe_VkCalibratedTimestampInfoKHR { + VkStructureType sType; + const void* pNext{}; + VkTimeDomainKHR timeDomain; + + safe_VkCalibratedTimestampInfoKHR(const VkCalibratedTimestampInfoKHR* in_struct, PNextCopyState* copy_state = {}, + bool copy_pnext = true); + safe_VkCalibratedTimestampInfoKHR(const safe_VkCalibratedTimestampInfoKHR& copy_src); + safe_VkCalibratedTimestampInfoKHR& operator=(const safe_VkCalibratedTimestampInfoKHR& copy_src); + safe_VkCalibratedTimestampInfoKHR(); + ~safe_VkCalibratedTimestampInfoKHR(); + void initialize(const VkCalibratedTimestampInfoKHR* in_struct, PNextCopyState* copy_state = {}); + void initialize(const safe_VkCalibratedTimestampInfoKHR* copy_src, PNextCopyState* copy_state = {}); + VkCalibratedTimestampInfoKHR* ptr() { return reinterpret_cast(this); } + VkCalibratedTimestampInfoKHR const* ptr() const { return reinterpret_cast(this); } +}; struct safe_VkDebugReportCallbackCreateInfoEXT { VkStructureType sType; const void* pNext{}; @@ -10338,22 +10421,6 @@ struct safe_VkPipelineCompilerControlCreateInfoAMD { return reinterpret_cast(this); } }; -struct safe_VkCalibratedTimestampInfoEXT { - VkStructureType sType; - const void* pNext{}; - VkTimeDomainEXT timeDomain; - - safe_VkCalibratedTimestampInfoEXT(const VkCalibratedTimestampInfoEXT* in_struct, PNextCopyState* copy_state = {}, - bool copy_pnext = true); - safe_VkCalibratedTimestampInfoEXT(const safe_VkCalibratedTimestampInfoEXT& copy_src); - safe_VkCalibratedTimestampInfoEXT& operator=(const safe_VkCalibratedTimestampInfoEXT& copy_src); - safe_VkCalibratedTimestampInfoEXT(); - ~safe_VkCalibratedTimestampInfoEXT(); - void initialize(const VkCalibratedTimestampInfoEXT* in_struct, PNextCopyState* copy_state = {}); - void initialize(const safe_VkCalibratedTimestampInfoEXT* copy_src, PNextCopyState* copy_state = {}); - VkCalibratedTimestampInfoEXT* ptr() { return reinterpret_cast(this); } - VkCalibratedTimestampInfoEXT const* ptr() const { return reinterpret_cast(this); } -}; struct safe_VkPhysicalDeviceShaderCorePropertiesAMD { VkStructureType sType; void* pNext{}; @@ -10425,50 +10492,6 @@ struct safe_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT { return reinterpret_cast(this); } }; -struct safe_VkPipelineVertexInputDivisorStateCreateInfoEXT { - VkStructureType sType; - const void* pNext{}; - uint32_t vertexBindingDivisorCount; - const VkVertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors{}; - - safe_VkPipelineVertexInputDivisorStateCreateInfoEXT(const VkPipelineVertexInputDivisorStateCreateInfoEXT* in_struct, - PNextCopyState* copy_state = {}, bool copy_pnext = true); - safe_VkPipelineVertexInputDivisorStateCreateInfoEXT(const safe_VkPipelineVertexInputDivisorStateCreateInfoEXT& copy_src); - safe_VkPipelineVertexInputDivisorStateCreateInfoEXT& operator=( - const safe_VkPipelineVertexInputDivisorStateCreateInfoEXT& copy_src); - safe_VkPipelineVertexInputDivisorStateCreateInfoEXT(); - ~safe_VkPipelineVertexInputDivisorStateCreateInfoEXT(); - void initialize(const VkPipelineVertexInputDivisorStateCreateInfoEXT* in_struct, PNextCopyState* copy_state = {}); - void initialize(const safe_VkPipelineVertexInputDivisorStateCreateInfoEXT* copy_src, PNextCopyState* copy_state = {}); - VkPipelineVertexInputDivisorStateCreateInfoEXT* ptr() { - return reinterpret_cast(this); - } - VkPipelineVertexInputDivisorStateCreateInfoEXT const* ptr() const { - return reinterpret_cast(this); - } -}; -struct safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT { - VkStructureType sType; - void* pNext{}; - VkBool32 vertexAttributeInstanceRateDivisor; - VkBool32 vertexAttributeInstanceRateZeroDivisor; - - safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT* in_struct, - PNextCopyState* copy_state = {}, bool copy_pnext = true); - safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(const safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT& copy_src); - safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT& operator=( - const safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT& copy_src); - safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(); - ~safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(); - void initialize(const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT* in_struct, PNextCopyState* copy_state = {}); - void initialize(const safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT* copy_src, PNextCopyState* copy_state = {}); - VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT* ptr() { - return reinterpret_cast(this); - } - VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const* ptr() const { - return reinterpret_cast(this); - } -}; #ifdef VK_USE_PLATFORM_GGP struct safe_VkPresentFrameTokenGGP { VkStructureType sType; diff --git a/layers/vulkan/generated/vk_safe_struct_ext.cpp b/layers/vulkan/generated/vk_safe_struct_ext.cpp index 644cceaeedf..2bdea67abed 100644 --- a/layers/vulkan/generated/vk_safe_struct_ext.cpp +++ b/layers/vulkan/generated/vk_safe_struct_ext.cpp @@ -6313,52 +6313,6 @@ void safe_VkPhysicalDeviceExternalMemoryHostPropertiesEXT::initialize( pNext = SafePnextCopy(copy_src->pNext); } -safe_VkCalibratedTimestampInfoEXT::safe_VkCalibratedTimestampInfoEXT(const VkCalibratedTimestampInfoEXT* in_struct, - [[maybe_unused]] PNextCopyState* copy_state, bool copy_pnext) - : sType(in_struct->sType), timeDomain(in_struct->timeDomain) { - if (copy_pnext) { - pNext = SafePnextCopy(in_struct->pNext, copy_state); - } -} - -safe_VkCalibratedTimestampInfoEXT::safe_VkCalibratedTimestampInfoEXT() - : sType(VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT), pNext(nullptr), timeDomain() {} - -safe_VkCalibratedTimestampInfoEXT::safe_VkCalibratedTimestampInfoEXT(const safe_VkCalibratedTimestampInfoEXT& copy_src) { - sType = copy_src.sType; - timeDomain = copy_src.timeDomain; - pNext = SafePnextCopy(copy_src.pNext); -} - -safe_VkCalibratedTimestampInfoEXT& safe_VkCalibratedTimestampInfoEXT::operator=(const safe_VkCalibratedTimestampInfoEXT& copy_src) { - if (©_src == this) return *this; - - FreePnextChain(pNext); - - sType = copy_src.sType; - timeDomain = copy_src.timeDomain; - pNext = SafePnextCopy(copy_src.pNext); - - return *this; -} - -safe_VkCalibratedTimestampInfoEXT::~safe_VkCalibratedTimestampInfoEXT() { FreePnextChain(pNext); } - -void safe_VkCalibratedTimestampInfoEXT::initialize(const VkCalibratedTimestampInfoEXT* in_struct, - [[maybe_unused]] PNextCopyState* copy_state) { - FreePnextChain(pNext); - sType = in_struct->sType; - timeDomain = in_struct->timeDomain; - pNext = SafePnextCopy(in_struct->pNext, copy_state); -} - -void safe_VkCalibratedTimestampInfoEXT::initialize(const safe_VkCalibratedTimestampInfoEXT* copy_src, - [[maybe_unused]] PNextCopyState* copy_state) { - sType = copy_src->sType; - timeDomain = copy_src->timeDomain; - pNext = SafePnextCopy(copy_src->pNext); -} - safe_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT::safe_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT( const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT* in_struct, [[maybe_unused]] PNextCopyState* copy_state, bool copy_pnext) @@ -6410,155 +6364,6 @@ void safe_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT::initialize( pNext = SafePnextCopy(copy_src->pNext); } -safe_VkPipelineVertexInputDivisorStateCreateInfoEXT::safe_VkPipelineVertexInputDivisorStateCreateInfoEXT( - const VkPipelineVertexInputDivisorStateCreateInfoEXT* in_struct, [[maybe_unused]] PNextCopyState* copy_state, bool copy_pnext) - : sType(in_struct->sType), vertexBindingDivisorCount(in_struct->vertexBindingDivisorCount), pVertexBindingDivisors(nullptr) { - if (copy_pnext) { - pNext = SafePnextCopy(in_struct->pNext, copy_state); - } - if (in_struct->pVertexBindingDivisors) { - pVertexBindingDivisors = new VkVertexInputBindingDivisorDescriptionEXT[in_struct->vertexBindingDivisorCount]; - memcpy((void*)pVertexBindingDivisors, (void*)in_struct->pVertexBindingDivisors, - sizeof(VkVertexInputBindingDivisorDescriptionEXT) * in_struct->vertexBindingDivisorCount); - } -} - -safe_VkPipelineVertexInputDivisorStateCreateInfoEXT::safe_VkPipelineVertexInputDivisorStateCreateInfoEXT() - : sType(VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT), - pNext(nullptr), - vertexBindingDivisorCount(), - pVertexBindingDivisors(nullptr) {} - -safe_VkPipelineVertexInputDivisorStateCreateInfoEXT::safe_VkPipelineVertexInputDivisorStateCreateInfoEXT( - const safe_VkPipelineVertexInputDivisorStateCreateInfoEXT& copy_src) { - sType = copy_src.sType; - vertexBindingDivisorCount = copy_src.vertexBindingDivisorCount; - pVertexBindingDivisors = nullptr; - pNext = SafePnextCopy(copy_src.pNext); - - if (copy_src.pVertexBindingDivisors) { - pVertexBindingDivisors = new VkVertexInputBindingDivisorDescriptionEXT[copy_src.vertexBindingDivisorCount]; - memcpy((void*)pVertexBindingDivisors, (void*)copy_src.pVertexBindingDivisors, - sizeof(VkVertexInputBindingDivisorDescriptionEXT) * copy_src.vertexBindingDivisorCount); - } -} - -safe_VkPipelineVertexInputDivisorStateCreateInfoEXT& safe_VkPipelineVertexInputDivisorStateCreateInfoEXT::operator=( - const safe_VkPipelineVertexInputDivisorStateCreateInfoEXT& copy_src) { - if (©_src == this) return *this; - - if (pVertexBindingDivisors) delete[] pVertexBindingDivisors; - FreePnextChain(pNext); - - sType = copy_src.sType; - vertexBindingDivisorCount = copy_src.vertexBindingDivisorCount; - pVertexBindingDivisors = nullptr; - pNext = SafePnextCopy(copy_src.pNext); - - if (copy_src.pVertexBindingDivisors) { - pVertexBindingDivisors = new VkVertexInputBindingDivisorDescriptionEXT[copy_src.vertexBindingDivisorCount]; - memcpy((void*)pVertexBindingDivisors, (void*)copy_src.pVertexBindingDivisors, - sizeof(VkVertexInputBindingDivisorDescriptionEXT) * copy_src.vertexBindingDivisorCount); - } - - return *this; -} - -safe_VkPipelineVertexInputDivisorStateCreateInfoEXT::~safe_VkPipelineVertexInputDivisorStateCreateInfoEXT() { - if (pVertexBindingDivisors) delete[] pVertexBindingDivisors; - FreePnextChain(pNext); -} - -void safe_VkPipelineVertexInputDivisorStateCreateInfoEXT::initialize( - const VkPipelineVertexInputDivisorStateCreateInfoEXT* in_struct, [[maybe_unused]] PNextCopyState* copy_state) { - if (pVertexBindingDivisors) delete[] pVertexBindingDivisors; - FreePnextChain(pNext); - sType = in_struct->sType; - vertexBindingDivisorCount = in_struct->vertexBindingDivisorCount; - pVertexBindingDivisors = nullptr; - pNext = SafePnextCopy(in_struct->pNext, copy_state); - - if (in_struct->pVertexBindingDivisors) { - pVertexBindingDivisors = new VkVertexInputBindingDivisorDescriptionEXT[in_struct->vertexBindingDivisorCount]; - memcpy((void*)pVertexBindingDivisors, (void*)in_struct->pVertexBindingDivisors, - sizeof(VkVertexInputBindingDivisorDescriptionEXT) * in_struct->vertexBindingDivisorCount); - } -} - -void safe_VkPipelineVertexInputDivisorStateCreateInfoEXT::initialize( - const safe_VkPipelineVertexInputDivisorStateCreateInfoEXT* copy_src, [[maybe_unused]] PNextCopyState* copy_state) { - sType = copy_src->sType; - vertexBindingDivisorCount = copy_src->vertexBindingDivisorCount; - pVertexBindingDivisors = nullptr; - pNext = SafePnextCopy(copy_src->pNext); - - if (copy_src->pVertexBindingDivisors) { - pVertexBindingDivisors = new VkVertexInputBindingDivisorDescriptionEXT[copy_src->vertexBindingDivisorCount]; - memcpy((void*)pVertexBindingDivisors, (void*)copy_src->pVertexBindingDivisors, - sizeof(VkVertexInputBindingDivisorDescriptionEXT) * copy_src->vertexBindingDivisorCount); - } -} - -safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT::safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT( - const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT* in_struct, [[maybe_unused]] PNextCopyState* copy_state, - bool copy_pnext) - : sType(in_struct->sType), - vertexAttributeInstanceRateDivisor(in_struct->vertexAttributeInstanceRateDivisor), - vertexAttributeInstanceRateZeroDivisor(in_struct->vertexAttributeInstanceRateZeroDivisor) { - if (copy_pnext) { - pNext = SafePnextCopy(in_struct->pNext, copy_state); - } -} - -safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT::safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT() - : sType(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT), - pNext(nullptr), - vertexAttributeInstanceRateDivisor(), - vertexAttributeInstanceRateZeroDivisor() {} - -safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT::safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT( - const safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT& copy_src) { - sType = copy_src.sType; - vertexAttributeInstanceRateDivisor = copy_src.vertexAttributeInstanceRateDivisor; - vertexAttributeInstanceRateZeroDivisor = copy_src.vertexAttributeInstanceRateZeroDivisor; - pNext = SafePnextCopy(copy_src.pNext); -} - -safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT& safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT::operator=( - const safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT& copy_src) { - if (©_src == this) return *this; - - FreePnextChain(pNext); - - sType = copy_src.sType; - vertexAttributeInstanceRateDivisor = copy_src.vertexAttributeInstanceRateDivisor; - vertexAttributeInstanceRateZeroDivisor = copy_src.vertexAttributeInstanceRateZeroDivisor; - pNext = SafePnextCopy(copy_src.pNext); - - return *this; -} - -safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT::~safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT() { - FreePnextChain(pNext); -} - -void safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT::initialize( - const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT* in_struct, [[maybe_unused]] PNextCopyState* copy_state) { - FreePnextChain(pNext); - sType = in_struct->sType; - vertexAttributeInstanceRateDivisor = in_struct->vertexAttributeInstanceRateDivisor; - vertexAttributeInstanceRateZeroDivisor = in_struct->vertexAttributeInstanceRateZeroDivisor; - pNext = SafePnextCopy(in_struct->pNext, copy_state); -} - -void safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT::initialize( - const safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT* copy_src, [[maybe_unused]] PNextCopyState* copy_state) { - sType = copy_src->sType; - vertexAttributeInstanceRateDivisor = copy_src->vertexAttributeInstanceRateDivisor; - vertexAttributeInstanceRateZeroDivisor = copy_src->vertexAttributeInstanceRateZeroDivisor; - pNext = SafePnextCopy(copy_src->pNext); -} - safe_VkPhysicalDevicePCIBusInfoPropertiesEXT::safe_VkPhysicalDevicePCIBusInfoPropertiesEXT( const VkPhysicalDevicePCIBusInfoPropertiesEXT* in_struct, [[maybe_unused]] PNextCopyState* copy_state, bool copy_pnext) : sType(in_struct->sType), diff --git a/layers/vulkan/generated/vk_safe_struct_khr.cpp b/layers/vulkan/generated/vk_safe_struct_khr.cpp index e201c13528b..5ac2465c604 100644 --- a/layers/vulkan/generated/vk_safe_struct_khr.cpp +++ b/layers/vulkan/generated/vk_safe_struct_khr.cpp @@ -9550,6 +9550,261 @@ void safe_VkPhysicalDeviceCooperativeMatrixPropertiesKHR::initialize( pNext = SafePnextCopy(copy_src->pNext); } +safe_VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR::safe_VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR( + const VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR* in_struct, [[maybe_unused]] PNextCopyState* copy_state, + bool copy_pnext) + : sType(in_struct->sType), + maxVertexAttribDivisor(in_struct->maxVertexAttribDivisor), + supportsNonZeroFirstInstance(in_struct->supportsNonZeroFirstInstance) { + if (copy_pnext) { + pNext = SafePnextCopy(in_struct->pNext, copy_state); + } +} + +safe_VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR::safe_VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR() + : sType(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR), + pNext(nullptr), + maxVertexAttribDivisor(), + supportsNonZeroFirstInstance() {} + +safe_VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR::safe_VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR( + const safe_VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR& copy_src) { + sType = copy_src.sType; + maxVertexAttribDivisor = copy_src.maxVertexAttribDivisor; + supportsNonZeroFirstInstance = copy_src.supportsNonZeroFirstInstance; + pNext = SafePnextCopy(copy_src.pNext); +} + +safe_VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR& safe_VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR::operator=( + const safe_VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR& copy_src) { + if (©_src == this) return *this; + + FreePnextChain(pNext); + + sType = copy_src.sType; + maxVertexAttribDivisor = copy_src.maxVertexAttribDivisor; + supportsNonZeroFirstInstance = copy_src.supportsNonZeroFirstInstance; + pNext = SafePnextCopy(copy_src.pNext); + + return *this; +} + +safe_VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR::~safe_VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR() { + FreePnextChain(pNext); +} + +void safe_VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR::initialize( + const VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR* in_struct, [[maybe_unused]] PNextCopyState* copy_state) { + FreePnextChain(pNext); + sType = in_struct->sType; + maxVertexAttribDivisor = in_struct->maxVertexAttribDivisor; + supportsNonZeroFirstInstance = in_struct->supportsNonZeroFirstInstance; + pNext = SafePnextCopy(in_struct->pNext, copy_state); +} + +void safe_VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR::initialize( + const safe_VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR* copy_src, [[maybe_unused]] PNextCopyState* copy_state) { + sType = copy_src->sType; + maxVertexAttribDivisor = copy_src->maxVertexAttribDivisor; + supportsNonZeroFirstInstance = copy_src->supportsNonZeroFirstInstance; + pNext = SafePnextCopy(copy_src->pNext); +} + +safe_VkPipelineVertexInputDivisorStateCreateInfoKHR::safe_VkPipelineVertexInputDivisorStateCreateInfoKHR( + const VkPipelineVertexInputDivisorStateCreateInfoKHR* in_struct, [[maybe_unused]] PNextCopyState* copy_state, bool copy_pnext) + : sType(in_struct->sType), vertexBindingDivisorCount(in_struct->vertexBindingDivisorCount), pVertexBindingDivisors(nullptr) { + if (copy_pnext) { + pNext = SafePnextCopy(in_struct->pNext, copy_state); + } + if (in_struct->pVertexBindingDivisors) { + pVertexBindingDivisors = new VkVertexInputBindingDivisorDescriptionKHR[in_struct->vertexBindingDivisorCount]; + memcpy((void*)pVertexBindingDivisors, (void*)in_struct->pVertexBindingDivisors, + sizeof(VkVertexInputBindingDivisorDescriptionKHR) * in_struct->vertexBindingDivisorCount); + } +} + +safe_VkPipelineVertexInputDivisorStateCreateInfoKHR::safe_VkPipelineVertexInputDivisorStateCreateInfoKHR() + : sType(VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR), + pNext(nullptr), + vertexBindingDivisorCount(), + pVertexBindingDivisors(nullptr) {} + +safe_VkPipelineVertexInputDivisorStateCreateInfoKHR::safe_VkPipelineVertexInputDivisorStateCreateInfoKHR( + const safe_VkPipelineVertexInputDivisorStateCreateInfoKHR& copy_src) { + sType = copy_src.sType; + vertexBindingDivisorCount = copy_src.vertexBindingDivisorCount; + pVertexBindingDivisors = nullptr; + pNext = SafePnextCopy(copy_src.pNext); + + if (copy_src.pVertexBindingDivisors) { + pVertexBindingDivisors = new VkVertexInputBindingDivisorDescriptionKHR[copy_src.vertexBindingDivisorCount]; + memcpy((void*)pVertexBindingDivisors, (void*)copy_src.pVertexBindingDivisors, + sizeof(VkVertexInputBindingDivisorDescriptionKHR) * copy_src.vertexBindingDivisorCount); + } +} + +safe_VkPipelineVertexInputDivisorStateCreateInfoKHR& safe_VkPipelineVertexInputDivisorStateCreateInfoKHR::operator=( + const safe_VkPipelineVertexInputDivisorStateCreateInfoKHR& copy_src) { + if (©_src == this) return *this; + + if (pVertexBindingDivisors) delete[] pVertexBindingDivisors; + FreePnextChain(pNext); + + sType = copy_src.sType; + vertexBindingDivisorCount = copy_src.vertexBindingDivisorCount; + pVertexBindingDivisors = nullptr; + pNext = SafePnextCopy(copy_src.pNext); + + if (copy_src.pVertexBindingDivisors) { + pVertexBindingDivisors = new VkVertexInputBindingDivisorDescriptionKHR[copy_src.vertexBindingDivisorCount]; + memcpy((void*)pVertexBindingDivisors, (void*)copy_src.pVertexBindingDivisors, + sizeof(VkVertexInputBindingDivisorDescriptionKHR) * copy_src.vertexBindingDivisorCount); + } + + return *this; +} + +safe_VkPipelineVertexInputDivisorStateCreateInfoKHR::~safe_VkPipelineVertexInputDivisorStateCreateInfoKHR() { + if (pVertexBindingDivisors) delete[] pVertexBindingDivisors; + FreePnextChain(pNext); +} + +void safe_VkPipelineVertexInputDivisorStateCreateInfoKHR::initialize( + const VkPipelineVertexInputDivisorStateCreateInfoKHR* in_struct, [[maybe_unused]] PNextCopyState* copy_state) { + if (pVertexBindingDivisors) delete[] pVertexBindingDivisors; + FreePnextChain(pNext); + sType = in_struct->sType; + vertexBindingDivisorCount = in_struct->vertexBindingDivisorCount; + pVertexBindingDivisors = nullptr; + pNext = SafePnextCopy(in_struct->pNext, copy_state); + + if (in_struct->pVertexBindingDivisors) { + pVertexBindingDivisors = new VkVertexInputBindingDivisorDescriptionKHR[in_struct->vertexBindingDivisorCount]; + memcpy((void*)pVertexBindingDivisors, (void*)in_struct->pVertexBindingDivisors, + sizeof(VkVertexInputBindingDivisorDescriptionKHR) * in_struct->vertexBindingDivisorCount); + } +} + +void safe_VkPipelineVertexInputDivisorStateCreateInfoKHR::initialize( + const safe_VkPipelineVertexInputDivisorStateCreateInfoKHR* copy_src, [[maybe_unused]] PNextCopyState* copy_state) { + sType = copy_src->sType; + vertexBindingDivisorCount = copy_src->vertexBindingDivisorCount; + pVertexBindingDivisors = nullptr; + pNext = SafePnextCopy(copy_src->pNext); + + if (copy_src->pVertexBindingDivisors) { + pVertexBindingDivisors = new VkVertexInputBindingDivisorDescriptionKHR[copy_src->vertexBindingDivisorCount]; + memcpy((void*)pVertexBindingDivisors, (void*)copy_src->pVertexBindingDivisors, + sizeof(VkVertexInputBindingDivisorDescriptionKHR) * copy_src->vertexBindingDivisorCount); + } +} + +safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR::safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR( + const VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR* in_struct, [[maybe_unused]] PNextCopyState* copy_state, + bool copy_pnext) + : sType(in_struct->sType), + vertexAttributeInstanceRateDivisor(in_struct->vertexAttributeInstanceRateDivisor), + vertexAttributeInstanceRateZeroDivisor(in_struct->vertexAttributeInstanceRateZeroDivisor) { + if (copy_pnext) { + pNext = SafePnextCopy(in_struct->pNext, copy_state); + } +} + +safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR::safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR() + : sType(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR), + pNext(nullptr), + vertexAttributeInstanceRateDivisor(), + vertexAttributeInstanceRateZeroDivisor() {} + +safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR::safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR( + const safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR& copy_src) { + sType = copy_src.sType; + vertexAttributeInstanceRateDivisor = copy_src.vertexAttributeInstanceRateDivisor; + vertexAttributeInstanceRateZeroDivisor = copy_src.vertexAttributeInstanceRateZeroDivisor; + pNext = SafePnextCopy(copy_src.pNext); +} + +safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR& safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR::operator=( + const safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR& copy_src) { + if (©_src == this) return *this; + + FreePnextChain(pNext); + + sType = copy_src.sType; + vertexAttributeInstanceRateDivisor = copy_src.vertexAttributeInstanceRateDivisor; + vertexAttributeInstanceRateZeroDivisor = copy_src.vertexAttributeInstanceRateZeroDivisor; + pNext = SafePnextCopy(copy_src.pNext); + + return *this; +} + +safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR::~safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR() { + FreePnextChain(pNext); +} + +void safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR::initialize( + const VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR* in_struct, [[maybe_unused]] PNextCopyState* copy_state) { + FreePnextChain(pNext); + sType = in_struct->sType; + vertexAttributeInstanceRateDivisor = in_struct->vertexAttributeInstanceRateDivisor; + vertexAttributeInstanceRateZeroDivisor = in_struct->vertexAttributeInstanceRateZeroDivisor; + pNext = SafePnextCopy(in_struct->pNext, copy_state); +} + +void safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR::initialize( + const safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR* copy_src, [[maybe_unused]] PNextCopyState* copy_state) { + sType = copy_src->sType; + vertexAttributeInstanceRateDivisor = copy_src->vertexAttributeInstanceRateDivisor; + vertexAttributeInstanceRateZeroDivisor = copy_src->vertexAttributeInstanceRateZeroDivisor; + pNext = SafePnextCopy(copy_src->pNext); +} + +safe_VkCalibratedTimestampInfoKHR::safe_VkCalibratedTimestampInfoKHR(const VkCalibratedTimestampInfoKHR* in_struct, + [[maybe_unused]] PNextCopyState* copy_state, bool copy_pnext) + : sType(in_struct->sType), timeDomain(in_struct->timeDomain) { + if (copy_pnext) { + pNext = SafePnextCopy(in_struct->pNext, copy_state); + } +} + +safe_VkCalibratedTimestampInfoKHR::safe_VkCalibratedTimestampInfoKHR() + : sType(VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR), pNext(nullptr), timeDomain() {} + +safe_VkCalibratedTimestampInfoKHR::safe_VkCalibratedTimestampInfoKHR(const safe_VkCalibratedTimestampInfoKHR& copy_src) { + sType = copy_src.sType; + timeDomain = copy_src.timeDomain; + pNext = SafePnextCopy(copy_src.pNext); +} + +safe_VkCalibratedTimestampInfoKHR& safe_VkCalibratedTimestampInfoKHR::operator=(const safe_VkCalibratedTimestampInfoKHR& copy_src) { + if (©_src == this) return *this; + + FreePnextChain(pNext); + + sType = copy_src.sType; + timeDomain = copy_src.timeDomain; + pNext = SafePnextCopy(copy_src.pNext); + + return *this; +} + +safe_VkCalibratedTimestampInfoKHR::~safe_VkCalibratedTimestampInfoKHR() { FreePnextChain(pNext); } + +void safe_VkCalibratedTimestampInfoKHR::initialize(const VkCalibratedTimestampInfoKHR* in_struct, + [[maybe_unused]] PNextCopyState* copy_state) { + FreePnextChain(pNext); + sType = in_struct->sType; + timeDomain = in_struct->timeDomain; + pNext = SafePnextCopy(in_struct->pNext, copy_state); +} + +void safe_VkCalibratedTimestampInfoKHR::initialize(const safe_VkCalibratedTimestampInfoKHR* copy_src, + [[maybe_unused]] PNextCopyState* copy_state) { + sType = copy_src->sType; + timeDomain = copy_src->timeDomain; + pNext = SafePnextCopy(copy_src->pNext); +} + safe_VkDeviceOrHostAddressConstKHR::safe_VkDeviceOrHostAddressConstKHR(const VkDeviceOrHostAddressConstKHR* in_struct, PNextCopyState*) { initialize(in_struct); diff --git a/layers/vulkan/generated/vk_safe_struct_utils.cpp b/layers/vulkan/generated/vk_safe_struct_utils.cpp index 83c873e48ec..c865ce1efc4 100644 --- a/layers/vulkan/generated/vk_safe_struct_utils.cpp +++ b/layers/vulkan/generated/vk_safe_struct_utils.cpp @@ -619,6 +619,15 @@ void *SafePnextCopy(const void *pNext, PNextCopyState* copy_state) { case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR: safe_pNext = new safe_VkPhysicalDeviceCooperativeMatrixPropertiesKHR(reinterpret_cast(pNext), copy_state, false); break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR: + safe_pNext = new safe_VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR(reinterpret_cast(pNext), copy_state, false); + break; + case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR: + safe_pNext = new safe_VkPipelineVertexInputDivisorStateCreateInfoKHR(reinterpret_cast(pNext), copy_state, false); + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR: + safe_pNext = new safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR(reinterpret_cast(pNext), copy_state, false); + break; case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT: safe_pNext = new safe_VkDebugReportCallbackCreateInfoEXT(reinterpret_cast(pNext), copy_state, false); break; @@ -939,12 +948,6 @@ void *SafePnextCopy(const void *pNext, PNextCopyState* copy_state) { case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT: safe_pNext = new safe_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(reinterpret_cast(pNext), copy_state, false); break; - case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT: - safe_pNext = new safe_VkPipelineVertexInputDivisorStateCreateInfoEXT(reinterpret_cast(pNext), copy_state, false); - break; - case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT: - safe_pNext = new safe_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(reinterpret_cast(pNext), copy_state, false); - break; #ifdef VK_USE_PLATFORM_GGP case VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP: safe_pNext = new safe_VkPresentFrameTokenGGP(reinterpret_cast(pNext), copy_state, false); @@ -2335,6 +2338,15 @@ void FreePnextChain(const void *pNext) { case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR: delete reinterpret_cast(header); break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR: + delete reinterpret_cast(header); + break; + case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR: + delete reinterpret_cast(header); + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR: + delete reinterpret_cast(header); + break; case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT: delete reinterpret_cast(header); break; @@ -2655,12 +2667,6 @@ void FreePnextChain(const void *pNext) { case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT: delete reinterpret_cast(header); break; - case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT: - delete reinterpret_cast(header); - break; - case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT: - delete reinterpret_cast(header); - break; #ifdef VK_USE_PLATFORM_GGP case VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP: delete reinterpret_cast(header); diff --git a/layers/vulkan/generated/vk_validation_error_messages.h b/layers/vulkan/generated/vk_validation_error_messages.h index 91d4d5d0529..7445d8b14bb 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.272 +// Based on Vulkan specification version: 1.3.273 /*************************************************************************** * @@ -1174,6 +1174,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkBlitImageInfo2-srcImage-00247", "If srcImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, srcOffsets[0].z must be 0 and srcOffsets[1].z must be 1", "1.3-extensions"}, {"VUID-VkBlitImageInfo2-srcImage-01999", "The format features of srcImage must contain VK_FORMAT_FEATURE_BLIT_SRC_BIT", "1.3-extensions"}, {"VUID-VkBlitImageInfo2-srcImage-06421", "srcImage must not use a format that requires a sampler Y'CBCR conversion", "1.3-extensions"}, + {"VUID-VkBlitImageInfo2-srcImage-09459", "If srcImage and dstImage are the same, and an elements of pRegions contains the srcSubresource and dstSubresource with matching mipLevel and overlapping array layers, then the srcImageLayout and dstImageLayout must be VK_IMAGE_LAYOUT_GENERAL or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR", "1.3-extensions"}, {"VUID-VkBlitImageInfo2-srcImage-parameter", "srcImage must be a valid VkImage handle", "1.3-extensions"}, {"VUID-VkBlitImageInfo2-srcImageLayout-00221", "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-VkBlitImageInfo2-srcImageLayout-01398", "srcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL", "1.3-extensions"}, @@ -1446,10 +1447,10 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkBufferViewCreateInfo-range-04059", "If range is equal to VK_WHOLE_SIZE, the number of texel buffer elements given by (⌊(size - offset) / (texel block size)⌋ × (texels per block)) where size is the size of buffer, and texel block size and texels per block are as defined in the Compatible Formats table for format, must be less than or equal to VkPhysicalDeviceLimits::maxTexelBufferElements", "1.3-extensions"}, {"VUID-VkBufferViewCreateInfo-sType-sType", "sType must be VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO", "1.3-extensions"}, {"VUID-VkBufferViewCreateInfo-sType-unique", "The sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkExportMetalObjectCreateInfoEXT", "1.3-extensions"}, - {"VUID-VkCalibratedTimestampInfoEXT-pNext-pNext", "pNext must be NULL", "1.3-extensions"}, - {"VUID-VkCalibratedTimestampInfoEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT", "1.3-extensions"}, - {"VUID-VkCalibratedTimestampInfoEXT-timeDomain-02354", "timeDomain must be one of the VkTimeDomainEXT values returned by vkGetPhysicalDeviceCalibrateableTimeDomainsEXT", "1.3-extensions"}, - {"VUID-VkCalibratedTimestampInfoEXT-timeDomain-parameter", "timeDomain must be a valid VkTimeDomainEXT value", "1.3-extensions"}, + {"VUID-VkCalibratedTimestampInfoEXT-timeDomain-02354", "timeDomain must be one of the VkTimeDomainKHR values returned by vkGetPhysicalDeviceCalibrateableTimeDomainsKHR", "1.3-extensions"}, + {"VUID-VkCalibratedTimestampInfoKHR-pNext-pNext", "pNext must be NULL", "1.3-extensions"}, + {"VUID-VkCalibratedTimestampInfoKHR-sType-sType", "sType must be VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR", "1.3-extensions"}, + {"VUID-VkCalibratedTimestampInfoKHR-timeDomain-parameter", "timeDomain must be a valid VkTimeDomainKHR value", "1.3-extensions"}, {"VUID-VkCheckpointData2NV-pNext-pNext", "pNext must be NULL", "1.3-extensions"}, {"VUID-VkCheckpointData2NV-sType-sType", "sType must be VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV", "1.3-extensions"}, {"VUID-VkCheckpointDataNV-pNext-pNext", "pNext must be NULL", "1.3-extensions"}, @@ -1794,6 +1795,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkCopyImageInfo2-srcImage-08793", "If srcImage and dstImage have the same VkImageType, for each element of pRegions, if neither of the layerCount members of srcSubresource or dstSubresource are VK_REMAINING_ARRAY_LAYERS, the layerCount members of srcSubresource or dstSubresource must match", "1.3-extensions"}, {"VUID-VkCopyImageInfo2-srcImage-08794", "If srcImage and dstImage have the same VkImageType, and one of the layerCount members of srcSubresource or dstSubresource is VK_REMAINING_ARRAY_LAYERS, the other member must be either VK_REMAINING_ARRAY_LAYERS or equal to the arrayLayers member of the VkImageCreateInfo used to create the image minus baseArrayLayer", "1.3-extensions"}, {"VUID-VkCopyImageInfo2-srcImage-09247", "If the VkFormat of each of srcImage and dstImage is a compressed image format, the formats must have the same texel block extent", "1.3-extensions"}, + {"VUID-VkCopyImageInfo2-srcImage-09460", "If srcImage and dstImage are the same, and any elements of pRegions contains the srcSubresource and dstSubresource with matching mipLevel and overlapping array layers, then the srcImageLayout and dstImageLayout must be VK_IMAGE_LAYOUT_GENERAL or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR", "1.3-extensions"}, {"VUID-VkCopyImageInfo2-srcImage-parameter", "srcImage must be a valid VkImage handle", "1.3-extensions"}, {"VUID-VkCopyImageInfo2-srcImageLayout-00128", "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-VkCopyImageInfo2-srcImageLayout-01917", "srcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, or VK_IMAGE_LAYOUT_GENERAL", "1.3-extensions"}, @@ -2380,7 +2382,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkDeviceCreateInfo-pNext-06532", "If the pNext chain includes a VkPhysicalDeviceVulkan13Features structure, then it must not include a VkPhysicalDeviceDynamicRenderingFeatures, VkPhysicalDeviceImageRobustnessFeatures, VkPhysicalDeviceInlineUniformBlockFeatures, VkPhysicalDeviceMaintenance4Features, VkPhysicalDevicePipelineCreationCacheControlFeatures, VkPhysicalDevicePrivateDataFeatures, VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures, VkPhysicalDeviceShaderIntegerDotProductFeatures, VkPhysicalDeviceShaderTerminateInvocationFeatures, VkPhysicalDeviceSubgroupSizeControlFeatures, VkPhysicalDeviceSynchronization2Features, VkPhysicalDeviceTextureCompressionASTCHDRFeatures, or VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures structure", "1.3-extensions"}, {"VUID-VkDeviceCreateInfo-pNext-09396", "If the pNext chain includes a VkDeviceQueueShaderCoreControlCreateInfoARM structure, then it must not be included in the pNext chain of any of the VkDeviceQueueCreateInfo structures in pQueueCreateInfos.", "1.3-extensions"}, {"VUID-VkDeviceCreateInfo-pNext-09397", "If the pNext chain includes a VkDeviceQueueShaderCoreControlCreateInfoARM structure then VkPhysicalDeviceSchedulingControlsPropertiesARM::schedulingControlsFlags must contain VK_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM.", "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, VkDeviceQueueShaderCoreControlCreateInfoARM, VkPhysicalDevice16BitStorageFeatures, VkPhysicalDevice4444FormatsFeaturesEXT, VkPhysicalDevice8BitStorageFeatures, VkPhysicalDeviceASTCDecodeFeaturesEXT, VkPhysicalDeviceAccelerationStructureFeaturesKHR, VkPhysicalDeviceAddressBindingReportFeaturesEXT, VkPhysicalDeviceAmigoProfilingFeaturesSEC, VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT, VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT, VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, VkPhysicalDeviceBorderColorSwizzleFeaturesEXT, VkPhysicalDeviceBufferDeviceAddressFeatures, VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI, VkPhysicalDeviceCoherentMemoryFeaturesAMD, VkPhysicalDeviceColorWriteEnableFeaturesEXT, VkPhysicalDeviceComputeShaderDerivativesFeaturesNV, VkPhysicalDeviceConditionalRenderingFeaturesEXT, VkPhysicalDeviceCooperativeMatrixFeaturesKHR, VkPhysicalDeviceCooperativeMatrixFeaturesNV, VkPhysicalDeviceCopyMemoryIndirectFeaturesNV, VkPhysicalDeviceCornerSampledImageFeaturesNV, VkPhysicalDeviceCoverageReductionModeFeaturesNV, VkPhysicalDeviceCubicClampFeaturesQCOM, VkPhysicalDeviceCubicWeightsFeaturesQCOM, VkPhysicalDeviceCudaKernelLaunchFeaturesNV, VkPhysicalDeviceCustomBorderColorFeaturesEXT, VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, VkPhysicalDeviceDepthBiasControlFeaturesEXT, VkPhysicalDeviceDepthClampZeroOneFeaturesEXT, VkPhysicalDeviceDepthClipControlFeaturesEXT, VkPhysicalDeviceDepthClipEnableFeaturesEXT, VkPhysicalDeviceDescriptorBufferFeaturesEXT, VkPhysicalDeviceDescriptorIndexingFeatures, VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV, VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE, VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV, VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV, VkPhysicalDeviceDeviceMemoryReportFeaturesEXT, VkPhysicalDeviceDiagnosticsConfigFeaturesNV, VkPhysicalDeviceDisplacementMicromapFeaturesNV, VkPhysicalDeviceDynamicRenderingFeatures, VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT, VkPhysicalDeviceExclusiveScissorFeaturesNV, VkPhysicalDeviceExtendedDynamicState2FeaturesEXT, VkPhysicalDeviceExtendedDynamicState3FeaturesEXT, VkPhysicalDeviceExtendedDynamicStateFeaturesEXT, VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV, VkPhysicalDeviceExternalFormatResolveFeaturesANDROID, VkPhysicalDeviceExternalMemoryRDMAFeaturesNV, VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX, VkPhysicalDeviceFaultFeaturesEXT, VkPhysicalDeviceFeatures2, VkPhysicalDeviceFragmentDensityMap2FeaturesEXT, VkPhysicalDeviceFragmentDensityMapFeaturesEXT, VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM, VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR, VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT, VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV, VkPhysicalDeviceFragmentShadingRateFeaturesKHR, VkPhysicalDeviceFrameBoundaryFeaturesEXT, VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR, VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT, VkPhysicalDeviceHostImageCopyFeaturesEXT, VkPhysicalDeviceHostQueryResetFeatures, VkPhysicalDeviceImage2DViewOf3DFeaturesEXT, VkPhysicalDeviceImageCompressionControlFeaturesEXT, VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT, VkPhysicalDeviceImageProcessing2FeaturesQCOM, VkPhysicalDeviceImageProcessingFeaturesQCOM, VkPhysicalDeviceImageRobustnessFeatures, VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT, VkPhysicalDeviceImageViewMinLodFeaturesEXT, VkPhysicalDeviceImagelessFramebufferFeatures, VkPhysicalDeviceIndexTypeUint8FeaturesEXT, VkPhysicalDeviceInheritedViewportScissorFeaturesNV, VkPhysicalDeviceInlineUniformBlockFeatures, VkPhysicalDeviceInvocationMaskFeaturesHUAWEI, VkPhysicalDeviceLegacyDitheringFeaturesEXT, VkPhysicalDeviceLineRasterizationFeaturesEXT, VkPhysicalDeviceLinearColorAttachmentFeaturesNV, VkPhysicalDeviceMaintenance4Features, VkPhysicalDeviceMaintenance5FeaturesKHR, VkPhysicalDeviceMemoryDecompressionFeaturesNV, VkPhysicalDeviceMemoryPriorityFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesNV, VkPhysicalDeviceMultiDrawFeaturesEXT, VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT, VkPhysicalDeviceMultiviewFeatures, VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM, VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM, VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT, VkPhysicalDeviceNestedCommandBufferFeaturesEXT, 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, VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG, VkPhysicalDeviceRenderPassStripedFeaturesARM, VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV, VkPhysicalDeviceRobustness2FeaturesEXT, VkPhysicalDeviceSamplerYcbcrConversionFeatures, VkPhysicalDeviceScalarBlockLayoutFeatures, VkPhysicalDeviceSchedulingControlsFeaturesARM, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, VkPhysicalDeviceShaderAtomicInt64Features, VkPhysicalDeviceShaderClockFeaturesKHR, VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM, VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures, VkPhysicalDeviceShaderDrawParametersFeatures, VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD, VkPhysicalDeviceShaderEnqueueFeaturesAMDX, 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, VkPhysicalDeviceYcbcrDegammaFeaturesQCOM, 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, VkDeviceQueueShaderCoreControlCreateInfoARM, VkPhysicalDevice16BitStorageFeatures, VkPhysicalDevice4444FormatsFeaturesEXT, VkPhysicalDevice8BitStorageFeatures, VkPhysicalDeviceASTCDecodeFeaturesEXT, VkPhysicalDeviceAccelerationStructureFeaturesKHR, VkPhysicalDeviceAddressBindingReportFeaturesEXT, VkPhysicalDeviceAmigoProfilingFeaturesSEC, VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT, VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT, VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, VkPhysicalDeviceBorderColorSwizzleFeaturesEXT, VkPhysicalDeviceBufferDeviceAddressFeatures, VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI, VkPhysicalDeviceCoherentMemoryFeaturesAMD, VkPhysicalDeviceColorWriteEnableFeaturesEXT, VkPhysicalDeviceComputeShaderDerivativesFeaturesNV, VkPhysicalDeviceConditionalRenderingFeaturesEXT, VkPhysicalDeviceCooperativeMatrixFeaturesKHR, VkPhysicalDeviceCooperativeMatrixFeaturesNV, VkPhysicalDeviceCopyMemoryIndirectFeaturesNV, VkPhysicalDeviceCornerSampledImageFeaturesNV, VkPhysicalDeviceCoverageReductionModeFeaturesNV, VkPhysicalDeviceCubicClampFeaturesQCOM, VkPhysicalDeviceCubicWeightsFeaturesQCOM, VkPhysicalDeviceCudaKernelLaunchFeaturesNV, VkPhysicalDeviceCustomBorderColorFeaturesEXT, VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, VkPhysicalDeviceDepthBiasControlFeaturesEXT, VkPhysicalDeviceDepthClampZeroOneFeaturesEXT, VkPhysicalDeviceDepthClipControlFeaturesEXT, VkPhysicalDeviceDepthClipEnableFeaturesEXT, VkPhysicalDeviceDescriptorBufferFeaturesEXT, VkPhysicalDeviceDescriptorIndexingFeatures, VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV, VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE, VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV, VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV, VkPhysicalDeviceDeviceMemoryReportFeaturesEXT, VkPhysicalDeviceDiagnosticsConfigFeaturesNV, VkPhysicalDeviceDisplacementMicromapFeaturesNV, VkPhysicalDeviceDynamicRenderingFeatures, VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT, VkPhysicalDeviceExclusiveScissorFeaturesNV, VkPhysicalDeviceExtendedDynamicState2FeaturesEXT, VkPhysicalDeviceExtendedDynamicState3FeaturesEXT, VkPhysicalDeviceExtendedDynamicStateFeaturesEXT, VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV, VkPhysicalDeviceExternalFormatResolveFeaturesANDROID, VkPhysicalDeviceExternalMemoryRDMAFeaturesNV, VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX, VkPhysicalDeviceFaultFeaturesEXT, VkPhysicalDeviceFeatures2, VkPhysicalDeviceFragmentDensityMap2FeaturesEXT, VkPhysicalDeviceFragmentDensityMapFeaturesEXT, VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM, VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR, VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT, VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV, VkPhysicalDeviceFragmentShadingRateFeaturesKHR, VkPhysicalDeviceFrameBoundaryFeaturesEXT, VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR, VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT, VkPhysicalDeviceHostImageCopyFeaturesEXT, VkPhysicalDeviceHostQueryResetFeatures, VkPhysicalDeviceImage2DViewOf3DFeaturesEXT, VkPhysicalDeviceImageCompressionControlFeaturesEXT, VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT, VkPhysicalDeviceImageProcessing2FeaturesQCOM, VkPhysicalDeviceImageProcessingFeaturesQCOM, VkPhysicalDeviceImageRobustnessFeatures, VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT, VkPhysicalDeviceImageViewMinLodFeaturesEXT, VkPhysicalDeviceImagelessFramebufferFeatures, VkPhysicalDeviceIndexTypeUint8FeaturesEXT, VkPhysicalDeviceInheritedViewportScissorFeaturesNV, VkPhysicalDeviceInlineUniformBlockFeatures, VkPhysicalDeviceInvocationMaskFeaturesHUAWEI, VkPhysicalDeviceLegacyDitheringFeaturesEXT, VkPhysicalDeviceLineRasterizationFeaturesEXT, VkPhysicalDeviceLinearColorAttachmentFeaturesNV, VkPhysicalDeviceMaintenance4Features, VkPhysicalDeviceMaintenance5FeaturesKHR, VkPhysicalDeviceMemoryDecompressionFeaturesNV, VkPhysicalDeviceMemoryPriorityFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesNV, VkPhysicalDeviceMultiDrawFeaturesEXT, VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT, VkPhysicalDeviceMultiviewFeatures, VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM, VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM, VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT, VkPhysicalDeviceNestedCommandBufferFeaturesEXT, 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, VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG, VkPhysicalDeviceRenderPassStripedFeaturesARM, VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV, VkPhysicalDeviceRobustness2FeaturesEXT, VkPhysicalDeviceSamplerYcbcrConversionFeatures, VkPhysicalDeviceScalarBlockLayoutFeatures, VkPhysicalDeviceSchedulingControlsFeaturesARM, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, VkPhysicalDeviceShaderAtomicInt64Features, VkPhysicalDeviceShaderClockFeaturesKHR, VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM, VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures, VkPhysicalDeviceShaderDrawParametersFeatures, VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD, VkPhysicalDeviceShaderEnqueueFeaturesAMDX, 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, VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR, VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT, VkPhysicalDeviceVulkan11Features, VkPhysicalDeviceVulkan12Features, VkPhysicalDeviceVulkan13Features, VkPhysicalDeviceVulkanMemoryModelFeatures, VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, VkPhysicalDeviceYcbcrDegammaFeaturesQCOM, 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"}, @@ -2581,10 +2583,14 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkDisplaySurfaceCreateInfoKHR-transform-parameter", "transform must be a valid VkSurfaceTransformFlagBitsKHR value", "1.3-extensions"}, {"VUID-VkDisplaySurfaceCreateInfoKHR-width-01256", "The width and height members of imageExtent must be less than or equal to VkPhysicalDeviceLimits::maxImageDimension2D", "1.3-extensions"}, {"VUID-VkDrawIndexedIndirectCommand-None-00552", "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-VkDrawIndexedIndirectCommand-None-09462", "If shader objects are used for drawing or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, any member of the pVertexBindingDescriptions parameter to the vkCmdSetVertexInputEXT call that sets this dynamic state has a value other than 1 in divisor, and VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR::supportsNonZeroFirstInstance is VK_FALSE, then firstInstance must be 0", "1.3-extensions"}, {"VUID-VkDrawIndexedIndirectCommand-firstInstance-00554", "If the drawIndirectFirstInstance feature is not enabled, firstInstance must be 0", "1.3-extensions"}, + {"VUID-VkDrawIndexedIndirectCommand-pNext-09461", "If the bound graphics pipeline state was created with VkPipelineVertexInputDivisorStateCreateInfoKHR in the pNext chain of VkGraphicsPipelineCreateInfo::pVertexInputState, any member of VkPipelineVertexInputDivisorStateCreateInfoKHR::pVertexBindingDivisors has a value other than 1 in divisor, and VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR::supportsNonZeroFirstInstance is VK_FALSE, then firstInstance must be 0", "1.3-extensions"}, {"VUID-VkDrawIndexedIndirectCommand-robustBufferAccess2-08798", "If robustBufferAccess2 is not enabled, (indexSize × (firstIndex + indexCount) + offset) must be less than or equal to the size of the bound index buffer, with indexSize being based on the type specified by indexType, where the index buffer, indexType, and offset are specified via vkCmdBindIndexBuffer or vkCmdBindIndexBuffer2KHR. If vkCmdBindIndexBuffer2KHR is used to bind the index buffer, the size of the bound index buffer is vkCmdBindIndexBuffer2KHR::size", "1.3-extensions"}, {"VUID-VkDrawIndirectCommand-None-00500", "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-VkDrawIndirectCommand-None-09462", "If shader objects are used for drawing or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, any member of the pVertexBindingDescriptions parameter to the vkCmdSetVertexInputEXT call that sets this dynamic state has a value other than 1 in divisor, and VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR::supportsNonZeroFirstInstance is VK_FALSE, then firstInstance must be 0", "1.3-extensions"}, {"VUID-VkDrawIndirectCommand-firstInstance-00501", "If the drawIndirectFirstInstance feature is not enabled, firstInstance must be 0", "1.3-extensions"}, + {"VUID-VkDrawIndirectCommand-pNext-09461", "If the bound graphics pipeline state was created with VkPipelineVertexInputDivisorStateCreateInfoKHR in the pNext chain of VkGraphicsPipelineCreateInfo::pVertexInputState, any member of VkPipelineVertexInputDivisorStateCreateInfoKHR::pVertexBindingDivisors has a value other than 1 in divisor, and VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR::supportsNonZeroFirstInstance is VK_FALSE, then firstInstance must be 0", "1.3-extensions"}, {"VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07322", "If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS contains a shader using the TaskEXT Execution Model, groupCountX must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupCount[0]", "1.3-extensions"}, {"VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07323", "If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS contains a shader using the TaskEXT Execution Model, groupCountY must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupCount[1]", "1.3-extensions"}, {"VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07324", "If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS contains a shader using the TaskEXT Execution Model, groupCountZ must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupCount[2]", "1.3-extensions"}, @@ -4722,7 +4728,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, VkPhysicalDeviceCudaKernelLaunchPropertiesNV, VkPhysicalDeviceCustomBorderColorPropertiesEXT, VkPhysicalDeviceDepthStencilResolveProperties, VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT, VkPhysicalDeviceDescriptorBufferPropertiesEXT, VkPhysicalDeviceDescriptorIndexingProperties, VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV, VkPhysicalDeviceDiscardRectanglePropertiesEXT, VkPhysicalDeviceDisplacementMicromapPropertiesNV, VkPhysicalDeviceDriverProperties, VkPhysicalDeviceDrmPropertiesEXT, VkPhysicalDeviceExtendedDynamicState3PropertiesEXT, VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV, VkPhysicalDeviceExternalFormatResolvePropertiesANDROID, VkPhysicalDeviceExternalMemoryHostPropertiesEXT, VkPhysicalDeviceFloatControlsProperties, VkPhysicalDeviceFragmentDensityMap2PropertiesEXT, VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM, VkPhysicalDeviceFragmentDensityMapPropertiesEXT, VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR, VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV, VkPhysicalDeviceFragmentShadingRatePropertiesKHR, VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT, VkPhysicalDeviceHostImageCopyPropertiesEXT, VkPhysicalDeviceIDProperties, VkPhysicalDeviceImageProcessing2PropertiesQCOM, VkPhysicalDeviceImageProcessingPropertiesQCOM, VkPhysicalDeviceInlineUniformBlockProperties, VkPhysicalDeviceLayeredDriverPropertiesMSFT, VkPhysicalDeviceLineRasterizationPropertiesEXT, VkPhysicalDeviceMaintenance3Properties, VkPhysicalDeviceMaintenance4Properties, VkPhysicalDeviceMaintenance5PropertiesKHR, VkPhysicalDeviceMemoryDecompressionPropertiesNV, VkPhysicalDeviceMeshShaderPropertiesEXT, VkPhysicalDeviceMeshShaderPropertiesNV, VkPhysicalDeviceMultiDrawPropertiesEXT, VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, VkPhysicalDeviceMultiviewProperties, VkPhysicalDeviceNestedCommandBufferPropertiesEXT, VkPhysicalDeviceOpacityMicromapPropertiesEXT, VkPhysicalDeviceOpticalFlowPropertiesNV, VkPhysicalDevicePCIBusInfoPropertiesEXT, VkPhysicalDevicePerformanceQueryPropertiesKHR, VkPhysicalDevicePipelineRobustnessPropertiesEXT, VkPhysicalDevicePointClippingProperties, VkPhysicalDevicePortabilitySubsetPropertiesKHR, VkPhysicalDeviceProtectedMemoryProperties, VkPhysicalDeviceProvokingVertexPropertiesEXT, VkPhysicalDevicePushDescriptorPropertiesKHR, VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV, VkPhysicalDeviceRayTracingPipelinePropertiesKHR, VkPhysicalDeviceRayTracingPropertiesNV, VkPhysicalDeviceRenderPassStripedPropertiesARM, VkPhysicalDeviceRobustness2PropertiesEXT, VkPhysicalDeviceSampleLocationsPropertiesEXT, VkPhysicalDeviceSamplerFilterMinmaxProperties, VkPhysicalDeviceSchedulingControlsPropertiesARM, VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM, VkPhysicalDeviceShaderCoreProperties2AMD, VkPhysicalDeviceShaderCorePropertiesAMD, VkPhysicalDeviceShaderCorePropertiesARM, VkPhysicalDeviceShaderEnqueuePropertiesAMDX, 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, VkPhysicalDeviceCudaKernelLaunchPropertiesNV, VkPhysicalDeviceCustomBorderColorPropertiesEXT, VkPhysicalDeviceDepthStencilResolveProperties, VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT, VkPhysicalDeviceDescriptorBufferPropertiesEXT, VkPhysicalDeviceDescriptorIndexingProperties, VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV, VkPhysicalDeviceDiscardRectanglePropertiesEXT, VkPhysicalDeviceDisplacementMicromapPropertiesNV, VkPhysicalDeviceDriverProperties, VkPhysicalDeviceDrmPropertiesEXT, VkPhysicalDeviceExtendedDynamicState3PropertiesEXT, VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV, VkPhysicalDeviceExternalFormatResolvePropertiesANDROID, VkPhysicalDeviceExternalMemoryHostPropertiesEXT, VkPhysicalDeviceFloatControlsProperties, VkPhysicalDeviceFragmentDensityMap2PropertiesEXT, VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM, VkPhysicalDeviceFragmentDensityMapPropertiesEXT, VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR, VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV, VkPhysicalDeviceFragmentShadingRatePropertiesKHR, VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT, VkPhysicalDeviceHostImageCopyPropertiesEXT, VkPhysicalDeviceIDProperties, VkPhysicalDeviceImageProcessing2PropertiesQCOM, VkPhysicalDeviceImageProcessingPropertiesQCOM, VkPhysicalDeviceInlineUniformBlockProperties, VkPhysicalDeviceLayeredDriverPropertiesMSFT, VkPhysicalDeviceLineRasterizationPropertiesEXT, VkPhysicalDeviceMaintenance3Properties, VkPhysicalDeviceMaintenance4Properties, VkPhysicalDeviceMaintenance5PropertiesKHR, VkPhysicalDeviceMemoryDecompressionPropertiesNV, VkPhysicalDeviceMeshShaderPropertiesEXT, VkPhysicalDeviceMeshShaderPropertiesNV, VkPhysicalDeviceMultiDrawPropertiesEXT, VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, VkPhysicalDeviceMultiviewProperties, VkPhysicalDeviceNestedCommandBufferPropertiesEXT, VkPhysicalDeviceOpacityMicromapPropertiesEXT, VkPhysicalDeviceOpticalFlowPropertiesNV, VkPhysicalDevicePCIBusInfoPropertiesEXT, VkPhysicalDevicePerformanceQueryPropertiesKHR, VkPhysicalDevicePipelineRobustnessPropertiesEXT, VkPhysicalDevicePointClippingProperties, VkPhysicalDevicePortabilitySubsetPropertiesKHR, VkPhysicalDeviceProtectedMemoryProperties, VkPhysicalDeviceProvokingVertexPropertiesEXT, VkPhysicalDevicePushDescriptorPropertiesKHR, VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV, VkPhysicalDeviceRayTracingPipelinePropertiesKHR, VkPhysicalDeviceRayTracingPropertiesNV, VkPhysicalDeviceRenderPassStripedPropertiesARM, VkPhysicalDeviceRobustness2PropertiesEXT, VkPhysicalDeviceSampleLocationsPropertiesEXT, VkPhysicalDeviceSamplerFilterMinmaxProperties, VkPhysicalDeviceSchedulingControlsPropertiesARM, VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM, VkPhysicalDeviceShaderCoreProperties2AMD, VkPhysicalDeviceShaderCorePropertiesAMD, VkPhysicalDeviceShaderCorePropertiesARM, VkPhysicalDeviceShaderEnqueuePropertiesAMDX, VkPhysicalDeviceShaderIntegerDotProductProperties, VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT, VkPhysicalDeviceShaderObjectPropertiesEXT, VkPhysicalDeviceShaderSMBuiltinsPropertiesNV, VkPhysicalDeviceShaderTileImagePropertiesEXT, VkPhysicalDeviceShadingRateImagePropertiesNV, VkPhysicalDeviceSubgroupProperties, VkPhysicalDeviceSubgroupSizeControlProperties, VkPhysicalDeviceSubpassShadingPropertiesHUAWEI, VkPhysicalDeviceTexelBufferAlignmentProperties, VkPhysicalDeviceTimelineSemaphoreProperties, VkPhysicalDeviceTransformFeedbackPropertiesEXT, VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR, 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"}, @@ -4827,8 +4833,9 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkPhysicalDeviceUniformBufferStandardLayoutFeatures-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES", "1.3-extensions"}, {"VUID-VkPhysicalDeviceVariablePointersFeatures-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES", "1.3-extensions"}, {"VUID-VkPhysicalDeviceVariablePointersFeatures-variablePointers-01431", "If variablePointers is enabled then variablePointersStorageBuffer must also be enabled", "1.3-extensions"}, - {"VUID-VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT", "1.3-extensions"}, + {"VUID-VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR", "1.3-extensions"}, {"VUID-VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT", "1.3-extensions"}, + {"VUID-VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR", "1.3-extensions"}, {"VUID-VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT", "1.3-extensions"}, {"VUID-VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR-pNext-pNext", "pNext must be NULL", "1.3-extensions"}, {"VUID-VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR-pVideoProfile-parameter", "pVideoProfile must be a valid pointer to a valid VkVideoProfileInfoKHR structure", "1.3-extensions"}, @@ -5151,12 +5158,12 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkPipelineTessellationStateCreateInfo-patchControlPoints-01214", "patchControlPoints must be greater than zero and less than or equal to VkPhysicalDeviceLimits::maxTessellationPatchSize", "1.3-extensions"}, {"VUID-VkPipelineTessellationStateCreateInfo-sType-sType", "sType must be VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO", "1.3-extensions"}, {"VUID-VkPipelineTessellationStateCreateInfo-sType-unique", "The sType value of each struct in the pNext chain must be unique", "1.3-extensions"}, - {"VUID-VkPipelineVertexInputDivisorStateCreateInfoEXT-pVertexBindingDivisors-parameter", "pVertexBindingDivisors must be a valid pointer to an array of vertexBindingDivisorCount VkVertexInputBindingDivisorDescriptionEXT structures", "1.3-extensions"}, - {"VUID-VkPipelineVertexInputDivisorStateCreateInfoEXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT", "1.3-extensions"}, - {"VUID-VkPipelineVertexInputDivisorStateCreateInfoEXT-vertexBindingDivisorCount-arraylength", "vertexBindingDivisorCount must be greater than 0", "1.3-extensions"}, + {"VUID-VkPipelineVertexInputDivisorStateCreateInfoKHR-pVertexBindingDivisors-parameter", "pVertexBindingDivisors must be a valid pointer to an array of vertexBindingDivisorCount VkVertexInputBindingDivisorDescriptionKHR structures", "1.3-extensions"}, + {"VUID-VkPipelineVertexInputDivisorStateCreateInfoKHR-sType-sType", "sType must be VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR", "1.3-extensions"}, + {"VUID-VkPipelineVertexInputDivisorStateCreateInfoKHR-vertexBindingDivisorCount-arraylength", "vertexBindingDivisorCount must be greater than 0", "1.3-extensions"}, {"VUID-VkPipelineVertexInputStateCreateInfo-binding-00615", "For every binding specified by each element of pVertexAttributeDescriptions, a VkVertexInputBindingDescription must exist in pVertexBindingDescriptions with the same value of binding", "1.3-extensions"}, {"VUID-VkPipelineVertexInputStateCreateInfo-flags-zerobitmask", "flags must be 0", "1.3-extensions"}, - {"VUID-VkPipelineVertexInputStateCreateInfo-pNext-pNext", "pNext must be NULL or a pointer to a valid instance of VkPipelineVertexInputDivisorStateCreateInfoEXT", "1.3-extensions"}, + {"VUID-VkPipelineVertexInputStateCreateInfo-pNext-pNext", "pNext must be NULL or a pointer to a valid instance of VkPipelineVertexInputDivisorStateCreateInfoKHR", "1.3-extensions"}, {"VUID-VkPipelineVertexInputStateCreateInfo-pVertexAttributeDescriptions-00617", "All elements of pVertexAttributeDescriptions must describe distinct attribute locations", "1.3-extensions"}, {"VUID-VkPipelineVertexInputStateCreateInfo-pVertexAttributeDescriptions-parameter", "If vertexAttributeDescriptionCount is not 0, pVertexAttributeDescriptions must be a valid pointer to an array of vertexAttributeDescriptionCount valid VkVertexInputAttributeDescription structures", "1.3-extensions"}, {"VUID-VkPipelineVertexInputStateCreateInfo-pVertexBindingDescriptions-00616", "All elements of pVertexBindingDescriptions must describe distinct binding numbers", "1.3-extensions"}, @@ -6531,11 +6538,11 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-VkVertexInputBindingDescription2EXT-inputRate-parameter", "inputRate must be a valid VkVertexInputRate value", "1.3-extensions"}, {"VUID-VkVertexInputBindingDescription2EXT-sType-sType", "sType must be VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT", "1.3-extensions"}, {"VUID-VkVertexInputBindingDescription2EXT-stride-04797", "stride must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindingStride", "1.3-extensions"}, - {"VUID-VkVertexInputBindingDivisorDescriptionEXT-binding-01869", "binding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings", "1.3-extensions"}, - {"VUID-VkVertexInputBindingDivisorDescriptionEXT-divisor-01870", "divisor must be a value between 0 and VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT::maxVertexAttribDivisor, inclusive", "1.3-extensions"}, - {"VUID-VkVertexInputBindingDivisorDescriptionEXT-inputRate-01871", "VkVertexInputBindingDescription::inputRate must be of type VK_VERTEX_INPUT_RATE_INSTANCE for this binding", "1.3-extensions"}, - {"VUID-VkVertexInputBindingDivisorDescriptionEXT-vertexAttributeInstanceRateDivisor-02229", "If the vertexAttributeInstanceRateDivisor feature is not enabled, divisor must be 1", "1.3-extensions"}, - {"VUID-VkVertexInputBindingDivisorDescriptionEXT-vertexAttributeInstanceRateZeroDivisor-02228", "If the vertexAttributeInstanceRateZeroDivisor feature is not enabled, divisor must not be 0", "1.3-extensions"}, + {"VUID-VkVertexInputBindingDivisorDescriptionKHR-binding-01869", "binding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings", "1.3-extensions"}, + {"VUID-VkVertexInputBindingDivisorDescriptionKHR-divisor-01870", "divisor must be a value between 0 and VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR::maxVertexAttribDivisor, inclusive", "1.3-extensions"}, + {"VUID-VkVertexInputBindingDivisorDescriptionKHR-inputRate-01871", "VkVertexInputBindingDescription::inputRate must be of type VK_VERTEX_INPUT_RATE_INSTANCE for this binding", "1.3-extensions"}, + {"VUID-VkVertexInputBindingDivisorDescriptionKHR-vertexAttributeInstanceRateDivisor-02229", "If the vertexAttributeInstanceRateDivisor feature is not enabled, divisor must be 1", "1.3-extensions"}, + {"VUID-VkVertexInputBindingDivisorDescriptionKHR-vertexAttributeInstanceRateZeroDivisor-02228", "If the vertexAttributeInstanceRateZeroDivisor feature is not enabled, divisor must not be 0", "1.3-extensions"}, {"VUID-VkViSurfaceCreateInfoNN-flags-zerobitmask", "flags must be 0", "1.3-extensions"}, {"VUID-VkViSurfaceCreateInfoNN-pNext-pNext", "pNext must be NULL", "1.3-extensions"}, {"VUID-VkViSurfaceCreateInfoNN-sType-sType", "sType must be VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN", "1.3-extensions"}, @@ -7603,6 +7610,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdBlitImage-srcImage-00247", "If srcImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, srcOffsets[0].z must be 0 and srcOffsets[1].z must be 1", "1.3-extensions"}, {"VUID-vkCmdBlitImage-srcImage-01999", "The format features of srcImage must contain VK_FORMAT_FEATURE_BLIT_SRC_BIT", "1.3-extensions"}, {"VUID-vkCmdBlitImage-srcImage-06421", "srcImage must not use a format that requires a sampler Y'CBCR conversion", "1.3-extensions"}, + {"VUID-vkCmdBlitImage-srcImage-09459", "If srcImage and dstImage are the same, and an elements of pRegions contains the srcSubresource and dstSubresource with matching mipLevel and overlapping array layers, then the srcImageLayout and dstImageLayout must be VK_IMAGE_LAYOUT_GENERAL or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR", "1.3-extensions"}, {"VUID-vkCmdBlitImage-srcImage-parameter", "srcImage must be a valid VkImage handle", "1.3-extensions"}, {"VUID-vkCmdBlitImage-srcImageLayout-00221", "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-vkCmdBlitImage-srcImageLayout-01398", "srcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL", "1.3-extensions"}, @@ -8105,6 +8113,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdCopyImage-srcImage-08793", "If srcImage and dstImage have the same VkImageType, for each element of pRegions, if neither of the layerCount members of srcSubresource or dstSubresource are VK_REMAINING_ARRAY_LAYERS, the layerCount members of srcSubresource or dstSubresource must match", "1.3-extensions"}, {"VUID-vkCmdCopyImage-srcImage-08794", "If srcImage and dstImage have the same VkImageType, and one of the layerCount members of srcSubresource or dstSubresource is VK_REMAINING_ARRAY_LAYERS, the other member must be either VK_REMAINING_ARRAY_LAYERS or equal to the arrayLayers member of the VkImageCreateInfo used to create the image minus baseArrayLayer", "1.3-extensions"}, {"VUID-vkCmdCopyImage-srcImage-09247", "If the VkFormat of each of srcImage and dstImage is a compressed image format, the formats must have the same texel block extent", "1.3-extensions"}, + {"VUID-vkCmdCopyImage-srcImage-09460", "If srcImage and dstImage are the same, and any elements of pRegions contains the srcSubresource and dstSubresource with matching mipLevel and overlapping array layers, then the srcImageLayout and dstImageLayout must be VK_IMAGE_LAYOUT_GENERAL or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR", "1.3-extensions"}, {"VUID-vkCmdCopyImage-srcImage-parameter", "srcImage must be a valid VkImage handle", "1.3-extensions"}, {"VUID-vkCmdCopyImage-srcImageLayout-00128", "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-vkCmdCopyImage-srcImageLayout-01917", "srcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, or VK_IMAGE_LAYOUT_GENERAL", "1.3-extensions"}, @@ -9084,6 +9093,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDraw-None-09366", "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDraw-None-09368", "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDraw-None-09369", "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDraw-None-09462", "If shader objects are used for drawing or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, any member of the pVertexBindingDescriptions parameter to the vkCmdSetVertexInputEXT call that sets this dynamic state has a value other than 1 in divisor, and VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR::supportsNonZeroFirstInstance is VK_FALSE, then firstInstance must be 0", "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"}, @@ -9178,6 +9188,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDraw-pFragmentSize-09370", "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDraw-pFragmentSize-09371", "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDraw-pNext-07935", "If this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples", "1.3-extensions"}, + {"VUID-vkCmdDraw-pNext-09461", "If the bound graphics pipeline state was created with VkPipelineVertexInputDivisorStateCreateInfoKHR in the pNext chain of VkGraphicsPipelineCreateInfo::pVertexInputState, any member of VkPipelineVertexInputDivisorStateCreateInfoKHR::pVertexBindingDivisors has a value other than 1 in divisor, and VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR::supportsNonZeroFirstInstance is VK_FALSE, then firstInstance must be 0", "1.3-extensions"}, {"VUID-vkCmdDraw-pStencilAttachment-06187", "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView", "1.3-extensions"}, {"VUID-vkCmdDraw-pStencilAttachment-08965", "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED", "1.3-extensions"}, {"VUID-vkCmdDraw-pStrides-04913", "If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but without the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL", "1.3-extensions"}, @@ -10132,6 +10143,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawIndexed-None-09366", "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexed-None-09368", "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexed-None-09369", "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawIndexed-None-09462", "If shader objects are used for drawing or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, any member of the pVertexBindingDescriptions parameter to the vkCmdSetVertexInputEXT call that sets this dynamic state has a value other than 1 in divisor, and VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR::supportsNonZeroFirstInstance is VK_FALSE, then firstInstance must be 0", "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"}, @@ -10226,6 +10238,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawIndexed-pFragmentSize-09370", "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexed-pFragmentSize-09371", "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndexed-pNext-07935", "If this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples", "1.3-extensions"}, + {"VUID-vkCmdDrawIndexed-pNext-09461", "If the bound graphics pipeline state was created with VkPipelineVertexInputDivisorStateCreateInfoKHR in the pNext chain of VkGraphicsPipelineCreateInfo::pVertexInputState, any member of VkPipelineVertexInputDivisorStateCreateInfoKHR::pVertexBindingDivisors has a value other than 1 in divisor, and VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR::supportsNonZeroFirstInstance is VK_FALSE, then firstInstance must be 0", "1.3-extensions"}, {"VUID-vkCmdDrawIndexed-pStencilAttachment-06187", "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView", "1.3-extensions"}, {"VUID-vkCmdDrawIndexed-pStencilAttachment-08965", "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED", "1.3-extensions"}, {"VUID-vkCmdDrawIndexed-pStrides-04913", "If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but without the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL", "1.3-extensions"}, @@ -11592,6 +11605,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawIndirectByteCountEXT-None-09366", "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectByteCountEXT-None-09368", "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectByteCountEXT-None-09369", "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawIndirectByteCountEXT-None-09462", "If shader objects are used for drawing or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, any member of the pVertexBindingDescriptions parameter to the vkCmdSetVertexInputEXT call that sets this dynamic state has a value other than 1 in divisor, and VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR::supportsNonZeroFirstInstance is VK_FALSE, then firstInstance must be 0", "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"}, @@ -11689,6 +11703,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawIndirectByteCountEXT-pFragmentSize-09370", "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectByteCountEXT-pFragmentSize-09371", "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectByteCountEXT-pNext-07935", "If this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples", "1.3-extensions"}, + {"VUID-vkCmdDrawIndirectByteCountEXT-pNext-09461", "If the bound graphics pipeline state was created with VkPipelineVertexInputDivisorStateCreateInfoKHR in the pNext chain of VkGraphicsPipelineCreateInfo::pVertexInputState, any member of VkPipelineVertexInputDivisorStateCreateInfoKHR::pVertexBindingDivisors has a value other than 1 in divisor, and VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR::supportsNonZeroFirstInstance is VK_FALSE, then firstInstance must be 0", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06187", "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-08965", "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED", "1.3-extensions"}, {"VUID-vkCmdDrawIndirectByteCountEXT-pStrides-04913", "If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but without the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL", "1.3-extensions"}, @@ -14436,6 +14451,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMultiEXT-None-09366", "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMultiEXT-None-09368", "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMultiEXT-None-09369", "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawMultiEXT-None-09462", "If shader objects are used for drawing or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, any member of the pVertexBindingDescriptions parameter to the vkCmdSetVertexInputEXT call that sets this dynamic state has a value other than 1 in divisor, and VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR::supportsNonZeroFirstInstance is VK_FALSE, then firstInstance must be 0", "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"}, @@ -14532,6 +14548,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMultiEXT-pFragmentSize-09370", "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMultiEXT-pFragmentSize-09371", "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMultiEXT-pNext-07935", "If this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples", "1.3-extensions"}, + {"VUID-vkCmdDrawMultiEXT-pNext-09461", "If the bound graphics pipeline state was created with VkPipelineVertexInputDivisorStateCreateInfoKHR in the pNext chain of VkGraphicsPipelineCreateInfo::pVertexInputState, any member of VkPipelineVertexInputDivisorStateCreateInfoKHR::pVertexBindingDivisors has a value other than 1 in divisor, and VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR::supportsNonZeroFirstInstance is VK_FALSE, then firstInstance must be 0", "1.3-extensions"}, {"VUID-vkCmdDrawMultiEXT-pStencilAttachment-06187", "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView", "1.3-extensions"}, {"VUID-vkCmdDrawMultiEXT-pStencilAttachment-08965", "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED", "1.3-extensions"}, {"VUID-vkCmdDrawMultiEXT-pStrides-04913", "If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but without the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL", "1.3-extensions"}, @@ -14797,6 +14814,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMultiIndexedEXT-None-09366", "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMultiIndexedEXT-None-09368", "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMultiIndexedEXT-None-09369", "If the current render pass instance was begun with vkCmdBeginRendering, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero VkExternalFormatANDROID::externalFormat value and with the VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", "1.3-extensions"}, + {"VUID-vkCmdDrawMultiIndexedEXT-None-09462", "If shader objects are used for drawing or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, any member of the pVertexBindingDescriptions parameter to the vkCmdSetVertexInputEXT call that sets this dynamic state has a value other than 1 in divisor, and VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR::supportsNonZeroFirstInstance is VK_FALSE, then firstInstance must be 0", "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"}, @@ -14893,6 +14911,7 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkCmdDrawMultiIndexedEXT-pFragmentSize-09370", "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMultiIndexedEXT-pFragmentSize-09371", "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", "1.3-extensions"}, {"VUID-vkCmdDrawMultiIndexedEXT-pNext-07935", "If this command has been called inside a render pass instance started with vkCmdBeginRendering, and the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with multisampledRenderToSingleSampledEnable equal to VK_TRUE, then the value of rasterizationSamples for the currently bound graphics pipeline must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples", "1.3-extensions"}, + {"VUID-vkCmdDrawMultiIndexedEXT-pNext-09461", "If the bound graphics pipeline state was created with VkPipelineVertexInputDivisorStateCreateInfoKHR in the pNext chain of VkGraphicsPipelineCreateInfo::pVertexInputState, any member of VkPipelineVertexInputDivisorStateCreateInfoKHR::pVertexBindingDivisors has a value other than 1 in divisor, and VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR::supportsNonZeroFirstInstance is VK_FALSE, then firstInstance must be 0", "1.3-extensions"}, {"VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-06187", "If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created with a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView", "1.3-extensions"}, {"VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-08965", "If the current render pass instance was begun with vkCmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and the VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, then the VkPipelineRenderingCreateInfo::stencilAttachmentFormat used to create the pipeline must not be VK_FORMAT_UNDEFINED", "1.3-extensions"}, {"VUID-vkCmdDrawMultiIndexedEXT-pStrides-04913", "If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but without the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL", "1.3-extensions"}, @@ -17879,12 +17898,12 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-pData-08073", "pData must point to a buffer that is at least VkPhysicalDeviceDescriptorBufferPropertiesEXT::bufferCaptureReplayDescriptorDataSize bytes in size", "1.3-extensions"}, {"VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-pData-parameter", "pData must be a pointer value", "1.3-extensions"}, {"VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-pInfo-parameter", "pInfo must be a valid pointer to a valid VkBufferCaptureDescriptorDataInfoEXT structure", "1.3-extensions"}, - {"VUID-vkGetCalibratedTimestampsEXT-device-parameter", "device must be a valid VkDevice handle", "1.3-extensions"}, - {"VUID-vkGetCalibratedTimestampsEXT-pMaxDeviation-parameter", "pMaxDeviation must be a valid pointer to a uint64_t value", "1.3-extensions"}, - {"VUID-vkGetCalibratedTimestampsEXT-pTimestampInfos-parameter", "pTimestampInfos must be a valid pointer to an array of timestampCount valid VkCalibratedTimestampInfoEXT structures", "1.3-extensions"}, - {"VUID-vkGetCalibratedTimestampsEXT-pTimestamps-parameter", "pTimestamps must be a valid pointer to an array of timestampCount uint64_t values", "1.3-extensions"}, {"VUID-vkGetCalibratedTimestampsEXT-timeDomain-09246", "The timeDomain value of each VkCalibratedTimestampInfoEXT in pTimestampInfos must be unique", "1.3-extensions"}, - {"VUID-vkGetCalibratedTimestampsEXT-timestampCount-arraylength", "timestampCount must be greater than 0", "1.3-extensions"}, + {"VUID-vkGetCalibratedTimestampsKHR-device-parameter", "device must be a valid VkDevice handle", "1.3-extensions"}, + {"VUID-vkGetCalibratedTimestampsKHR-pMaxDeviation-parameter", "pMaxDeviation must be a valid pointer to a uint64_t value", "1.3-extensions"}, + {"VUID-vkGetCalibratedTimestampsKHR-pTimestampInfos-parameter", "pTimestampInfos must be a valid pointer to an array of timestampCount valid VkCalibratedTimestampInfoKHR structures", "1.3-extensions"}, + {"VUID-vkGetCalibratedTimestampsKHR-pTimestamps-parameter", "pTimestamps must be a valid pointer to an array of timestampCount uint64_t values", "1.3-extensions"}, + {"VUID-vkGetCalibratedTimestampsKHR-timestampCount-arraylength", "timestampCount must be greater than 0", "1.3-extensions"}, {"VUID-vkGetCudaModuleCacheNV-device-parameter", "device must be a valid VkDevice handle", "1.3-extensions"}, {"VUID-vkGetCudaModuleCacheNV-module-parameter", "module must be a valid VkCudaModuleNV handle", "1.3-extensions"}, {"VUID-vkGetCudaModuleCacheNV-module-parent", "module must have been created, allocated, or retrieved from device", "1.3-extensions"}, @@ -18198,9 +18217,9 @@ static const vuid_spec_text_pair vuid_spec_text[] = { {"VUID-vkGetPerformanceParameterINTEL-device-parameter", "device must be a valid VkDevice handle", "1.3-extensions"}, {"VUID-vkGetPerformanceParameterINTEL-pValue-parameter", "pValue must be a valid pointer to a VkPerformanceValueINTEL structure", "1.3-extensions"}, {"VUID-vkGetPerformanceParameterINTEL-parameter-parameter", "parameter must be a valid VkPerformanceParameterTypeINTEL value", "1.3-extensions"}, - {"VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsEXT-pTimeDomainCount-parameter", "pTimeDomainCount must be a valid pointer to a uint32_t value", "1.3-extensions"}, - {"VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsEXT-pTimeDomains-parameter", "If the value referenced by pTimeDomainCount is not 0, and pTimeDomains is not NULL, pTimeDomains must be a valid pointer to an array of pTimeDomainCount VkTimeDomainEXT values", "1.3-extensions"}, - {"VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsEXT-physicalDevice-parameter", "physicalDevice must be a valid VkPhysicalDevice handle", "1.3-extensions"}, + {"VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsKHR-pTimeDomainCount-parameter", "pTimeDomainCount must be a valid pointer to a uint32_t value", "1.3-extensions"}, + {"VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsKHR-pTimeDomains-parameter", "If the value referenced by pTimeDomainCount is not 0, and pTimeDomains is not NULL, pTimeDomains must be a valid pointer to an array of pTimeDomainCount VkTimeDomainKHR values", "1.3-extensions"}, + {"VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsKHR-physicalDevice-parameter", "physicalDevice must be a valid VkPhysicalDevice handle", "1.3-extensions"}, {"VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR-pProperties-parameter", "If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkCooperativeMatrixPropertiesKHR structures", "1.3-extensions"}, {"VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR-pPropertyCount-parameter", "pPropertyCount must be a valid pointer to a uint32_t value", "1.3-extensions"}, {"VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR-physicalDevice-parameter", "physicalDevice must be a valid VkPhysicalDevice handle", "1.3-extensions"}, diff --git a/scripts/known_good.json b/scripts/known_good.json index 67fe15f4570..f616d688e6b 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.272" + "commit": "v1.3.273" }, { "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.272", + "commit": "v1.3.273", "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.272", + "commit": "v1.3.273", "build_step": "skip", "optional": [ "tests" diff --git a/tests/layers/VkLayer_device_profile_api.json.in b/tests/layers/VkLayer_device_profile_api.json.in index c112f1b2b49..62f80dc2daf 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.272", + "api_version": "1.3.273", "implementation_version": "2", "description": "LunarG Device Profile Api Layer", "device_extensions": [ diff --git a/tests/unit/graphics_library_positive.cpp b/tests/unit/graphics_library_positive.cpp index 773c175ee27..d0a837cba91 100644 --- a/tests/unit/graphics_library_positive.cpp +++ b/tests/unit/graphics_library_positive.cpp @@ -330,7 +330,7 @@ TEST_F(PositiveGraphicsLibrary, VertexAttributeDivisorInstanceRateZero) { frag_shader_lib.vi_ci_.vertexAttributeDescriptionCount = 1; frag_shader_lib.gp_ci_.pVertexInputState = &frag_shader_lib.vi_ci_; - // VUID-VkVertexInputBindingDivisorDescriptionEXT-vertexAttributeInstanceRateZeroDivisor-02228 shouldn't be trigged + // VUID-VkVertexInputBindingDivisorDescriptionKHR-vertexAttributeInstanceRateZeroDivisor-02228 shouldn't be trigged frag_shader_lib.CreateGraphicsPipeline(); } diff --git a/tests/unit/vertex_input.cpp b/tests/unit/vertex_input.cpp index a0738c7245d..af3e333c903 100644 --- a/tests/unit/vertex_input.cpp +++ b/tests/unit/vertex_input.cpp @@ -91,14 +91,14 @@ TEST_F(NegativeVertexInput, DivisorExtension) { 1, 0, VK_VERTEX_INPUT_RATE_VERTEX, - {"VUID-VkVertexInputBindingDivisorDescriptionEXT-inputRate-01871"} + {"VUID-VkVertexInputBindingDivisorDescriptionKHR-inputRate-01871"} }, { dev_limits.maxVertexInputBindings + 1, 1, 0, VK_VERTEX_INPUT_RATE_INSTANCE, - {"VUID-VkVertexInputBindingDivisorDescriptionEXT-binding-01869", - "VUID-VkVertexInputBindingDivisorDescriptionEXT-inputRate-01871"} + {"VUID-VkVertexInputBindingDivisorDescriptionKHR-binding-01869", + "VUID-VkVertexInputBindingDivisorDescriptionKHR-inputRate-01871"} } }; @@ -108,7 +108,7 @@ TEST_F(NegativeVertexInput, DivisorExtension) { pdvad_props.maxVertexAttribDivisor + 1, 0, VK_VERTEX_INPUT_RATE_INSTANCE, - {"VUID-VkVertexInputBindingDivisorDescriptionEXT-divisor-01870"} + {"VUID-VkVertexInputBindingDivisorDescriptionKHR-divisor-01870"} } ); } // clang-format on @@ -165,7 +165,7 @@ TEST_F(NegativeVertexInput, DivisorDisabled) { helper.vi_ci_.pVertexBindingDescriptions = &vibd; }; CreatePipelineHelper::OneshotTest(*this, instance_rate, kErrorBit, - "VUID-VkVertexInputBindingDivisorDescriptionEXT-vertexAttributeInstanceRateDivisor-02229"); + "VUID-VkVertexInputBindingDivisorDescriptionKHR-vertexAttributeInstanceRateDivisor-02229"); } TEST_F(NegativeVertexInput, DivisorInstanceRateZero) { @@ -200,7 +200,7 @@ TEST_F(NegativeVertexInput, DivisorInstanceRateZero) { }; CreatePipelineHelper::OneshotTest( *this, instance_rate, kErrorBit, - "VUID-VkVertexInputBindingDivisorDescriptionEXT-vertexAttributeInstanceRateZeroDivisor-02228"); + "VUID-VkVertexInputBindingDivisorDescriptionKHR-vertexAttributeInstanceRateZeroDivisor-02228"); } TEST_F(NegativeVertexInput, InputBindingMaxVertexInputBindings) {