// Copyright 2019-2022 The Khronos Group Inc. // // SPDX-License-Identifier: CC-BY-4.0 // Common Valid Usage // Common to trace rays indirect commands * [[VUID-{refpage}-indirectDeviceAddress-03632]] If the buffer from which pname:indirectDeviceAddress was queried is non-sparse then it must: be bound completely and contiguously to a single sname:VkDeviceMemory object * [[VUID-{refpage}-indirectDeviceAddress-03633]] The buffer from which pname:indirectDeviceAddress was queried must: have been created with the ename:VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set * [[VUID-{refpage}-indirectDeviceAddress-03634]] pname:indirectDeviceAddress must: be a multiple of `4` * [[VUID-{refpage}-indirectDeviceAddress-03636]] All device addresses between pname:indirectDeviceAddress and [eq]#pname:indirectDeviceAddress {plus} code:sizeof(sname:{cmdstruct}) - 1# must: be in the buffer device address range of the same buffer * [[VUID-{refpage}-{feature}-03637]] The <> feature must: be enabled ifdef::VK_NV_ray_tracing_motion_blur[] * [[VUID-{refpage}-rayTracingMotionBlurPipelineTraceRaysIndirect-04951]] If the bound ray tracing pipeline was created with ename:VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV sname:VkPhysicalDeviceRayTracingMotionBlurFeaturesNV::pname:rayTracingMotionBlurPipelineTraceRaysIndirect feature must: be enabled endif::VK_NV_ray_tracing_motion_blur[] // Common Valid Usage