vkCreateRayTracingPipelinesNV
To create ray tracing pipelines, call:
VkResult vkCreateRayTracingPipelinesNV(
VkDevice device,
VkPipelineCache pipelineCache,
uint32_t createInfoCount,
const VkRayTracingPipelineCreateInfoNV* pCreateInfos,
const VkAllocationCallbacks* pAllocator,
VkPipeline* pPipelines);
pub fn create_ray_tracing_pipelines_nv(
device: vk::Device,
pipeline_cache: vk::PipelineCache,
create_info_count: u32,
p_create_infos: *const vk::RayTracingPipelineCreateInfoNV,
p_allocator: *const vk::AllocationCallbacks,
p_pipelines: *mut vk::Pipeline,
) -> vk::Result;
deviceis the logical device that creates the ray tracing pipelines.pipelineCacheis either VK_NULL_HANDLE, indicating that pipeline caching is disabled, or to enable caching, the handle of a valid VkPipelineCache object. The implementation must not access this object outside of the duration of this command.createInfoCountis the length of thepCreateInfosandpPipelinesarrays.pCreateInfosis a pointer to an array of VkRayTracingPipelineCreateInfoNV structures.pAllocatorcontrols host memory allocation as described in the Memory Allocation chapter.pPipelinesis 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_BIT 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_BITmust 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-pCreateInfos-11414
If any element of pCreateInfos sets
VK_PIPELINE_CREATE_2_DESCRIPTOR_HEAP_BIT_EXT and includes embedded
sampler mappings, there must be less than
(maxSamplerAllocationCount
- (minSamplerHeapReservedRangeWithEmbedded /
samplerDescriptorSize))
VkSampler objects currently created on the device
VUID-vkCreateRayTracingPipelinesNV-pCreateInfos-11429
If any element of pCreateInfos sets VK_PIPELINE_CREATE_2_DESCRIPTOR_HEAP_BIT_EXT and includes embedded sampler mappings, this command must not cause the total number of unique embedded samplers in pipelines
and shaders on this device to exceed maxDescriptorHeapEmbeddedSamplers
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