1// Copyright 2019-2022 The Khronos Group Inc. 2// 3// SPDX-License-Identifier: CC-BY-4.0 4 5// Common Valid Usage 6// Common to trace rays indirect commands 7 8 * [[VUID-{refpage}-indirectDeviceAddress-03632]] 9 If the buffer from which pname:indirectDeviceAddress was queried is 10 non-sparse then it must: be bound completely and contiguously to a 11 single sname:VkDeviceMemory object 12 * [[VUID-{refpage}-indirectDeviceAddress-03633]] 13 The buffer from which pname:indirectDeviceAddress was queried must: have 14 been created with the ename:VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set 15 * [[VUID-{refpage}-indirectDeviceAddress-03634]] 16 pname:indirectDeviceAddress must: be a multiple of `4` 17 * [[VUID-{refpage}-indirectDeviceAddress-03636]] 18 All device addresses between pname:indirectDeviceAddress and 19 [eq]#pname:indirectDeviceAddress {plus} code:sizeof(sname:{cmdstruct}) - 20 1# must: be in the buffer device address range of the same buffer 21 * [[VUID-{refpage}-{feature}-03637]] 22 The <<features-{feature}, pname:{feature}>> feature must: be enabled 23ifdef::VK_NV_ray_tracing_motion_blur[] 24 * [[VUID-{refpage}-rayTracingMotionBlurPipelineTraceRaysIndirect-04951]] 25 If the bound ray tracing pipeline was created with 26 ename:VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV 27 sname:VkPhysicalDeviceRayTracingMotionBlurFeaturesNV::pname:rayTracingMotionBlurPipelineTraceRaysIndirect 28 feature must: be enabled 29endif::VK_NV_ray_tracing_motion_blur[] 30 31// Common Valid Usage 32