vkCreateRayTracingPipelinesNV
To create ray tracing pipelines, call:
VkResult vkCreateRayTracingPipelinesNV(
VkDevice device,
VkPipelineCache pipelineCache,
uint32_t createInfoCount,
const VkRayTracingPipelineCreateInfoNV* pCreateInfos,
const VkAllocationCallbacks* pAllocator,
VkPipeline* pPipelines);
device
is the logical device that creates the ray tracing pipelines.pipelineCache
is either VK_NULL_HANDLE, indicating that pipeline caching is disabled, or the handle of a valid pipeline cache object, in which case use of that cache is enabled for the duration of the command.createInfoCount
is the length of thepCreateInfos
andpPipelines
arrays.pCreateInfos
is a pointer to an array of VkRayTracingPipelineCreateInfoNV structures.pAllocator
controls host memory allocation as described in the Memory Allocation chapter.pPipelines
is a pointer to an array in which the resulting ray tracing pipeline objects are returned.
Pipelines are created and returned as described for Multiple Pipeline Creation.
Valid Usage
VUID-vkCreateRayTracingPipelinesNV-device-09677
device
must support at least one queue family with the
VK_QUEUE_COMPUTE_BIT
capability
VUID-vkCreateRayTracingPipelinesNV-flags-03415
If the flags
member of any element of pCreateInfos
contains
the VK_PIPELINE_CREATE_DERIVATIVE_BIT
flag, and the
basePipelineIndex
member of that same element is not -1
,
basePipelineIndex
must be less than the index into
pCreateInfos
that corresponds to that element
VUID-vkCreateRayTracingPipelinesNV-flags-03416
If the flags
member of any element of pCreateInfos
contains
the VK_PIPELINE_CREATE_DERIVATIVE_BIT
flag, the base pipeline
must have been created with the
VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT
flag set
VUID-vkCreateRayTracingPipelinesNV-flags-03816
flags
must not contain the VK_PIPELINE_CREATE_DISPATCH_BASE
flag
VUID-vkCreateRayTracingPipelinesNV-pipelineCache-02903
If pipelineCache
was created with
VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT
, host access
to pipelineCache
must be
externally synchronized
VUID-vkCreateRayTracingPipelinesNV-pNext-09616
If VkPipelineBinaryInfoKHR::binaryCount
is not 0
for any
element of pCreateInfos
, pipelineCache
must be
VK_NULL_HANDLE
VUID-vkCreateRayTracingPipelinesNV-pNext-09617
If a VkPipelineCreateFlags2CreateInfoKHR structure with the
VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR
flag set is included in
the pNext
chain of any element of pCreateInfos
,
pipelineCache
must be VK_NULL_HANDLE
VUID-vkCreateRayTracingPipelinesNV-binaryCount-09620
If VkPipelineBinaryInfoKHR::binaryCount
is not 0
for any
element of pCreateInfos
,
VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT
must not be set in the flags
of that element
VUID-vkCreateRayTracingPipelinesNV-binaryCount-09621
If VkPipelineBinaryInfoKHR::binaryCount
is not 0
for any
element of pCreateInfos
,
VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT
must
not be set in the flags
of that element
VUID-vkCreateRayTracingPipelinesNV-binaryCount-09622
If VkPipelineBinaryInfoKHR::binaryCount
is not 0
for any
element of pCreateInfos
,
VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT
must
not be set in the flags
of that element
VUID-vkCreateRayTracingPipelinesNV-pNext-10150
If a VkPipelineCreateFlags2CreateInfoKHR structure is included in
the pNext
chain of any element of pCreateInfos
,
VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR
flag must not be set
Valid Usage (Implicit)
VUID-vkCreateRayTracingPipelinesNV-device-parameter
device
must be a valid VkDevice handle
VUID-vkCreateRayTracingPipelinesNV-pipelineCache-parameter
If pipelineCache
is not VK_NULL_HANDLE, pipelineCache
must be a valid VkPipelineCache handle
VUID-vkCreateRayTracingPipelinesNV-pCreateInfos-parameter
pCreateInfos
must be a valid pointer to an array of createInfoCount
valid VkRayTracingPipelineCreateInfoNV structures
VUID-vkCreateRayTracingPipelinesNV-pAllocator-parameter
If pAllocator
is not NULL
, pAllocator
must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateRayTracingPipelinesNV-pPipelines-parameter
pPipelines
must be a valid pointer to an array of createInfoCount
VkPipeline handles
VUID-vkCreateRayTracingPipelinesNV-createInfoCount-arraylength
createInfoCount
must be greater than 0
VUID-vkCreateRayTracingPipelinesNV-pipelineCache-parent
If pipelineCache
is a valid handle, it must have been created, allocated, or retrieved from device