layers: Add accel structure tracking and validation
Adds tracking and validation for ray tracing acceleration structures in
manner similar to buffers and images (adds memory links on bind commands,
adds usage links in build and copy commands).
More extension information:
- https://www.khronos.org/registry/vulkan/specs/1.1-extensions/
html/vkspec.html#VK_NV_ray_tracing
Change-Id: I6c86f753e01e90de93aef7046fb83b44c03a8bca
diff --git a/layers/generated/parameter_validation.cpp b/layers/generated/parameter_validation.cpp
index 411c719..8da06e1 100644
--- a/layers/generated/parameter_validation.cpp
+++ b/layers/generated/parameter_validation.cpp
@@ -9383,6 +9383,7 @@
skip |= validate_bool32("vkCmdBuildAccelerationStructureNV", "update", update);
skip |= validate_required_handle("vkCmdBuildAccelerationStructureNV", "dst", dst);
skip |= validate_required_handle("vkCmdBuildAccelerationStructureNV", "scratch", scratch);
+ skip |= manual_PreCallValidateCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset);
return skip;
}
@@ -9547,6 +9548,7 @@
if (!device_extensions.vk_nv_ray_tracing) skip |= OutputExtensionError("vkGetAccelerationStructureHandleNV", VK_NV_RAY_TRACING_EXTENSION_NAME);
skip |= validate_required_handle("vkGetAccelerationStructureHandleNV", "accelerationStructure", accelerationStructure);
skip |= validate_array("vkGetAccelerationStructureHandleNV", "dataSize", "pData", dataSize, &pData, true, true, "VUID-vkGetAccelerationStructureHandleNV-dataSize-arraylength", "VUID-vkGetAccelerationStructureHandleNV-pData-parameter");
+ skip |= manual_PreCallValidateGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData);
return skip;
}