VkRayTracingPipelineInterfaceCreateInfoKHR
The VkRayTracingPipelineInterfaceCreateInfoKHR
structure is defined
as:
typedef struct VkRayTracingPipelineInterfaceCreateInfoKHR {
VkStructureType sType;
const void* pNext;
uint32_t maxPipelineRayPayloadSize;
uint32_t maxPipelineRayHitAttributeSize;
} VkRayTracingPipelineInterfaceCreateInfoKHR;
sType
is a VkStructureType value identifying this structure.pNext
isNULL
or a pointer to a structure extending this structure.maxPipelineRayPayloadSize
is the maximum payload size in bytes used by any shader in the pipeline.maxPipelineRayHitAttributeSize
is the maximum attribute structure size in bytes used by any shader in the pipeline.
maxPipelineRayPayloadSize
is calculated as the maximum number of bytes
used by any block declared in the RayPayloadKHR
or
IncomingRayPayloadKHR
storage classes.
maxPipelineRayHitAttributeSize
is calculated as the maximum number of
bytes used by any block declared in the HitAttributeKHR
storage class.
As variables in these storage classes do not have explicit offsets, the size
should be calculated as if each variable has a
scalar alignment equal to the largest
scalar alignment of any of the block’s members.
There is no explicit upper limit for maxPipelineRayPayloadSize
, but in
practice it should be kept as small as possible.
Similar to invocation local memory, it must be allocated for each shader
invocation and for devices which support many simultaneous invocations, this
storage can rapidly be exhausted, resulting in failure.
Valid Usage
VUID-VkRayTracingPipelineInterfaceCreateInfoKHR-maxPipelineRayHitAttributeSize-03605
maxPipelineRayHitAttributeSize
must be less than or equal to
VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxRayHitAttributeSize
Valid Usage (Implicit)
VUID-VkRayTracingPipelineInterfaceCreateInfoKHR-sType-sType
sType
must be VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR
VUID-VkRayTracingPipelineInterfaceCreateInfoKHR-pNext-pNext
pNext
must be NULL