layers: Check acceleration structure compactedSize
This implements VUID-VkAccelerationStructureCreateInfoNV-compactedSize-02421.
diff --git a/layers/parameter_validation_utils.cpp b/layers/parameter_validation_utils.cpp
index 1abd750..803f408 100644
--- a/layers/parameter_validation_utils.cpp
+++ b/layers/parameter_validation_utils.cpp
@@ -2942,3 +2942,22 @@
}
return skip;
}
+
+bool StatelessValidation::manual_PreCallValidateCreateAccelerationStructureNV(
+ VkDevice device, const VkAccelerationStructureCreateInfoNV *pCreateInfo, const VkAllocationCallbacks *pAllocator,
+ VkAccelerationStructureNV *pAccelerationStructure) {
+ bool skip = false;
+
+ if (pCreateInfo) {
+ if ((pCreateInfo->compactedSize != 0) &&
+ ((pCreateInfo->info.geometryCount != 0) || (pCreateInfo->info.instanceCount != 0))) {
+ skip |= log_msg(report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0,
+ "VUID-VkAccelerationStructureCreateInfoNV-compactedSize-02421",
+ "vkCreateAccelerationStructureNV(): pCreateInfo->compactedSize nonzero (%" PRIu64
+ ") with info.geometryCount (%" PRIu32 ") or info.instanceCount (%" PRIu32 ") nonzero.",
+ pCreateInfo->compactedSize, pCreateInfo->info.geometryCount, pCreateInfo->info.instanceCount);
+ }
+ }
+
+ return skip;
+}
diff --git a/layers/stateless_validation.h b/layers/stateless_validation.h
index cb4daa8..b5f2fda 100644
--- a/layers/stateless_validation.h
+++ b/layers/stateless_validation.h
@@ -1047,5 +1047,10 @@
uint32_t *pPropertyCount, VkExtensionProperties *pProperties);
bool manual_PreCallValidateAllocateMemory(VkDevice device, const VkMemoryAllocateInfo *pAllocateInfo,
const VkAllocationCallbacks *pAllocator, VkDeviceMemory *pMemory);
+
+ bool manual_PreCallValidateCreateAccelerationStructureNV(VkDevice device,
+ const VkAccelerationStructureCreateInfoNV *pCreateInfo,
+ const VkAllocationCallbacks *pAllocator,
+ VkAccelerationStructureNV *pAccelerationStructure);
#include "parameter_validation.h"
}; // Class StatelessValidation
diff --git a/scripts/parameter_validation_generator.py b/scripts/parameter_validation_generator.py
index e8f6dcc..173d8be 100644
--- a/scripts/parameter_validation_generator.py
+++ b/scripts/parameter_validation_generator.py
@@ -174,6 +174,7 @@
'vkCmdDrawMeshTasksIndirectNV',
'vkCmdDrawMeshTasksIndirectCountNV',
'vkAllocateMemory',
+ 'vkCreateAccelerationStructureNV',
]
# Commands to ignore