summaryrefslogtreecommitdiff
path: root/chapters/commonvalidity/trace_rays_indirect_common.adoc
blob: 88faf1b762c63d2605354efd639157e6b94ee10b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// Copyright 2019-2024 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 <<features-{feature}, pname:{feature}>> 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