C Specification
The VkDescriptorMappingSourceConstantOffsetEXT structure is defined
as:
// Provided by VK_EXT_descriptor_heap
typedef struct VkDescriptorMappingSourceConstantOffsetEXT {
uint32_t heapOffset;
uint32_t heapArrayStride;
const VkSamplerCreateInfo* pEmbeddedSampler;
uint32_t samplerHeapOffset;
uint32_t samplerHeapArrayStride;
} VkDescriptorMappingSourceConstantOffsetEXT;
Members
-
heapOffsetis a constant byte offset added to the heap address for the mapped resource or sampler. -
heapArrayStrideis a constant byte stride that multiplies the shader binding and array index. -
pEmbeddedSampleris an optional VkSamplerCreateInfo structure specifying a sampler to embed into the shader, in place of looking the sampler up in a heap. -
samplerHeapOffsetis used only when mapping a combined image sampler, used in place ofheapOffsetto retrieve the sampler. -
samplerHeapArrayStrideis used only when mapping a combined image sampler, used in place ofheapArrayStrideto retrieve the sampler.
Description
Resources using this mapping will be backed by a descriptor in the heap, at an offset calculated as
-
shaderIndex = (Binding -
firstBinding) + arrayIndex -
offset = heapOffset + (shaderIndex * heapArrayStride)
where Binding is the binding value in the shader, arrayIndex is the index into the array if the shader binding is declared as an array.
If the mapped resource is a OpTypeSampledImage, offset is instead
calculated for the sampler as
-
offset = samplerHeapOffset + (shaderIndex * samplerHeapArrayStride)
If the mapped resource is a OpTypeSampler or OpTypeSampledImage,
and pEmbeddedSampler is not NULL, the specified embedded sampler
will be used rather than accessing the sampler heap.
Document Notes
For more information, see the Vulkan Specification.
This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.