VkDescriptorMappingSourceConstantOffsetEXT
The VkDescriptorMappingSourceConstantOffsetEXT structure is defined
as:
typedef struct VkDescriptorMappingSourceConstantOffsetEXT {
uint32_t heapOffset;
uint32_t heapArrayStride;
const VkSamplerCreateInfo* pEmbeddedSampler;
uint32_t samplerHeapOffset;
uint32_t samplerHeapArrayStride;
} VkDescriptorMappingSourceConstantOffsetEXT;
pub struct DescriptorMappingSourceConstantOffsetEXT {
heap_offset: u32,
heap_array_stride: u32,
p_embedded_sampler: *const vk::SamplerCreateInfo,
sampler_heap_offset: u32,
sampler_heap_array_stride: u32,
}
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.
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.
Valid Usage
VUID-VkDescriptorMappingSourceConstantOffsetEXT-pEmbeddedSampler-11445
If pEmbeddedSampler is a valid pointer to a
VkSamplerCreateInfo, its borderColor must not be
VK_BORDER_COLOR_FLOAT_CUSTOM_EXT or
VK_BORDER_COLOR_INT_CUSTOM_EXT
VUID-VkDescriptorMappingSourceConstantOffsetEXT-pEmbeddedSampler-11415
If pEmbeddedSampler is a valid pointer to a
VkSamplerCreateInfo, and there is a
VkDebugUtilsObjectNameInfoEXT structure in its pNext chain,
its objectType must be VK_OBJECT_TYPE_UNKNOWN
Valid Usage (Implicit)
VUID-VkDescriptorMappingSourceConstantOffsetEXT-pEmbeddedSampler-parameter
If pEmbeddedSampler is not NULL, pEmbeddedSampler must be a valid pointer to a valid VkSamplerCreateInfo structure