#[non_exhaustive]pub enum Type {
Show 15 variants
Scalar(ScalarType),
Vector(VectorType),
Matrix(MatrixType),
Image(ImageType),
CombinedImageSampler(CombinedImageSamplerType),
SampledImage(SampledImageType),
StorageImage(StorageImageType),
Sampler(SamplerType),
SubpassData(SubpassDataType),
Array(ArrayType),
Struct(StructType),
AccelStruct(AccelStructType),
DeviceAddress(DeviceAddressType),
DevicePointer(PointerType),
RayQuery(RayQueryType),
}
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Scalar(ScalarType)
A single value, which can be a signed or unsigned integer, a floating point number, or a boolean value.
Vector(VectorType)
A collection of scalars.
Matrix(MatrixType)
A collection of vectors.
Image(ImageType)
An image. In most cases, this variant is elevated to
CombinedImageSampler
, SampledImage
, or StorageImage
so you
shouldn’t see this in your reflection results.
CombinedImageSampler(CombinedImageSamplerType)
A sampled image externally combined with a sampler state. Such design is preferred in OpenGL and Vulkan.
SampledImage(SampledImageType)
A sampled image yet to be combined with a Sampler
. Such design is
preferred in DirectX and Vulkan.
StorageImage(StorageImageType)
A storage image that shaders can read and/or write.
Sampler(SamplerType)
Separable sampler state.
SubpassData(SubpassDataType)
Pixel store from input attachments.
Array(ArrayType)
Repetition of a single type.
Struct(StructType)
Aggregation of types.
AccelStruct(AccelStructType)
Acceleration structure for ray-tracing. Only available with
RayTracingKHR
capability enabled.
DeviceAddress(DeviceAddressType)
Forward-declared pointer but the type of pointed data is unknown.
Usually used for GPU linked lists. See VK_KHR_buffer_device_address
.
DevicePointer(PointerType)
Forward-declared pointer. Usually used for bindless resources with the
buffer_reference
extension. See VK_KHR_buffer_device_address
.
RayQuery(RayQueryType)
Ray query payload type (rayQueryEXT
). Only available with RayQueryKHR
capability enabled.