Enum wgpu_types::BindingType
source · pub enum BindingType {
Buffer {
ty: BufferBindingType,
has_dynamic_offset: bool,
min_binding_size: Option<BufferSize>,
},
Sampler(SamplerBindingType),
Texture {
sample_type: TextureSampleType,
view_dimension: TextureViewDimension,
multisampled: bool,
},
StorageTexture {
access: StorageTextureAccess,
format: TextureFormat,
view_dimension: TextureViewDimension,
},
AccelerationStructure,
}Expand description
Specific type of a binding.
For use in BindGroupLayoutEntry.
Corresponds to WebGPU’s mutually exclusive fields within GPUBindGroupLayoutEntry.
Variants§
Buffer
A buffer binding.
Corresponds to WebGPU GPUBufferBindingLayout.
Fields
ty: BufferBindingTypeSub-type of the buffer binding.
has_dynamic_offset: boolIndicates that the binding has a dynamic offset.
One offset must be passed to RenderPass::set_bind_group
for each dynamic binding in increasing order of binding number.
min_binding_size: Option<BufferSize>The minimum size for a BufferBinding matching this entry, in bytes.
If this is Some(size):
-
When calling
create_bind_group, the resource at this bind point must be aBindingResource::Bufferwhose effective size is at leastsize. -
When calling
create_render_pipelineorcreate_compute_pipeline,sizemust be at least the minimum buffer binding size for the shader module global at this bind point: large enough to hold the global’s value, along with one element of a trailing runtime-sized array, if present.
If this is None:
- Each draw or dispatch command checks that the buffer range at this bind point satisfies the minimum buffer binding size.
Sampler(SamplerBindingType)
A sampler that can be used to sample a texture.
Example WGSL syntax:
@group(0) @binding(0)
var s: sampler;Example GLSL syntax:
layout(binding = 0)
uniform sampler s;
Corresponds to WebGPU GPUSamplerBindingLayout.
Texture
A texture binding.
Example WGSL syntax:
@group(0) @binding(0)
var t: texture_2d<f32>;Example GLSL syntax:
layout(binding = 0)
uniform texture2D t;
Corresponds to WebGPU GPUTextureBindingLayout.
Fields
sample_type: TextureSampleTypeSample type of the texture binding.
view_dimension: TextureViewDimensionDimension of the texture view that is going to be sampled.
StorageTexture
A storage texture.
Example WGSL syntax:
@group(0) @binding(0)
var my_storage_image: texture_storage_2d<f32, write>;Example GLSL syntax:
layout(set=0, binding=0, r32f) writeonly uniform image2D myStorageImage;
Note that the texture format must be specified in the shader as well. A list of valid formats can be found in the specification here: https://www.khronos.org/registry/OpenGL/specs/gl/GLSLangSpec.4.60.html#layout-qualifiers
Corresponds to WebGPU GPUStorageTextureBindingLayout.
Fields
access: StorageTextureAccessAllowed access to this texture.
format: TextureFormatFormat of the texture.
view_dimension: TextureViewDimensionDimension of the texture view that is going to be sampled.
AccelerationStructure
A ray-tracing acceleration structure binding.
Example WGSL syntax:
@group(0) @binding(0)
var as: acceleration_structure;Example GLSL syntax:
layout(binding = 0)
uniform accelerationStructureEXT as;
Implementations§
source§impl BindingType
impl BindingType
sourcepub fn has_dynamic_offset(&self) -> bool
pub fn has_dynamic_offset(&self) -> bool
Returns true for buffer bindings with dynamic offset enabled.
Trait Implementations§
source§impl Clone for BindingType
impl Clone for BindingType
source§fn clone(&self) -> BindingType
fn clone(&self) -> BindingType
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moresource§impl Debug for BindingType
impl Debug for BindingType
source§impl Hash for BindingType
impl Hash for BindingType
source§impl PartialEq for BindingType
impl PartialEq for BindingType
source§fn eq(&self, other: &BindingType) -> bool
fn eq(&self, other: &BindingType) -> bool
self and other values to be equal, and is used
by ==.