Class VkRayTracingPipelineCreateInfoKHR

java.lang.Object
org.lwjgl.system.Pointer.Default
org.lwjgl.system.Struct<VkRayTracingPipelineCreateInfoKHR>
org.lwjgl.vulkan.VkRayTracingPipelineCreateInfoKHR
All Implemented Interfaces:
AutoCloseable, org.lwjgl.system.NativeResource, org.lwjgl.system.Pointer

public class VkRayTracingPipelineCreateInfoKHR extends org.lwjgl.system.Struct<VkRayTracingPipelineCreateInfoKHR> implements org.lwjgl.system.NativeResource
Structure specifying parameters of a newly created ray tracing pipeline.
Description

The parameters basePipelineHandle and basePipelineIndex are described in more detail in Pipeline Derivatives.

When PIPELINE_CREATE_LIBRARY_BIT_KHR is specified, this pipeline defines a pipeline library which cannot be bound as a ray tracing pipeline directly. Instead, pipeline libraries define common shaders and shader groups which can be included in future pipeline creation.

If pipeline libraries are included in pLibraryInfo, shaders defined in those libraries are treated as if they were defined as additional entries in pStages, appended in the order they appear in the pLibraries array and in the pStages array when those libraries were defined.

When referencing shader groups in order to obtain a shader group handle, groups defined in those libraries are treated as if they were defined as additional entries in pGroups, appended in the order they appear in the pLibraries array and in the pGroups array when those libraries were defined. The shaders these groups reference are set when the pipeline library is created, referencing those specified in the pipeline library, not in the pipeline that includes it.

The default stack size for a pipeline if DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR is not provided is computed as described in Ray Tracing Pipeline Stack.

If the pNext chain includes a VkPipelineCreateFlags2CreateInfo structure, VkPipelineCreateFlags2CreateInfo::flags from that structure is used instead of flags from this structure.

Valid Usage
  • If the pNext chain does not include a VkPipelineCreateFlags2CreateInfo structure, flags must be a valid combination of VkPipelineCreateFlagBits values
  • If flags contains the PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is -1, basePipelineHandle must be a valid ray tracing VkPipeline handle
  • If flags contains the PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is NULL_HANDLE, basePipelineIndex must be a valid index into the calling command’s pCreateInfos parameter
  • If flags contains the PIPELINE_CREATE_DERIVATIVE_BIT flag, basePipelineIndex must be -1 or basePipelineHandle must be NULL_HANDLE
  • If a push constant block is declared in a shader, a push constant range in layout must match the shader stage
  • If a push constant block is declared in a shader, the block must be contained inside the push constant range in layout that matches the stage
  • If a resource variable is declared in a shader, the corresponding descriptor set in layout must match the shader stage
  • If a resource variable is declared in a shader, and the descriptor type is not DESCRIPTOR_TYPE_MUTABLE_EXT, the corresponding descriptor set in layout must match the descriptor type
  • If a resource variable is declared in a shader as an array, the corresponding descriptor set in layout must match the descriptor count
  • If a resource variables is declared in a shader as an array of descriptors, then the descriptor type of that variable must not be DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK
Valid Usage (Implicit)
See Also

VkPipelineDynamicStateCreateInfo, VkPipelineLibraryCreateInfoKHR, VkPipelineShaderStageCreateInfo, VkRayTracingPipelineInterfaceCreateInfoKHR, VkRayTracingShaderGroupCreateInfoKHR, CreateRayTracingPipelinesKHR

Layout


 struct VkRayTracingPipelineCreateInfoKHR {
     VkStructureType sType();
     void const * pNext();
     VkPipelineCreateFlags flags();
     uint32_t stageCount();
     VkPipelineShaderStageCreateInfo const * pStages();
     uint32_t groupCount();
     VkRayTracingShaderGroupCreateInfoKHR const * pGroups();
     uint32_t maxPipelineRayRecursionDepth();
     VkPipelineLibraryCreateInfoKHR const * pLibraryInfo();
     VkRayTracingPipelineInterfaceCreateInfoKHR const * pLibraryInterface();
     VkPipelineDynamicStateCreateInfo const * pDynamicState();
     VkPipelineLayout layout();
     VkPipeline basePipelineHandle();
     int32_t basePipelineIndex();
 }