pub struct RenderPipelineDescriptor<'a> {
    pub label: Label<'a>,
    pub layout: Option<&'a PipelineLayout>,
    pub vertex: VertexState<'a>,
    pub primitive: PrimitiveState,
    pub depth_stencil: Option<DepthStencilState>,
    pub multisample: MultisampleState,
    pub fragment: Option<FragmentState<'a>>,
    pub multiview: Option<NonZeroU32>,
    pub cache: Option<&'a PipelineCache>,
}
Expand description

Describes a render (graphics) pipeline.

For use with Device::create_render_pipeline.

Corresponds to WebGPU GPURenderPipelineDescriptor.

Fields§

§label: Label<'a>

Debug label of the pipeline. This will show up in graphics debuggers for easy identification.

§layout: Option<&'a PipelineLayout>

The layout of bind groups for this pipeline.

If this is set, then Device::create_render_pipeline will raise a validation error if the layout doesn’t match what the shader module(s) expect.

Using the same PipelineLayout for many RenderPipeline or ComputePipeline pipelines guarantees that you don’t have to rebind any resources when switching between those pipelines.

Default pipeline layout

If layout is None, then the pipeline has a default layout created and used instead. The default layout is deduced from the shader modules.

You can use RenderPipeline::get_bind_group_layout to create bind groups for use with the default layout. However, these bind groups cannot be used with any other pipelines. This is convenient for simple pipelines, but using an explicit layout is recommended in most cases.

§vertex: VertexState<'a>

The compiled vertex stage, its entry point, and the input buffers layout.

§primitive: PrimitiveState

The properties of the pipeline at the primitive assembly and rasterization level.

§depth_stencil: Option<DepthStencilState>

The effect of draw calls on the depth and stencil aspects of the output target, if any.

§multisample: MultisampleState

The multi-sampling properties of the pipeline.

§fragment: Option<FragmentState<'a>>

The compiled fragment stage, its entry point, and the color targets.

§multiview: Option<NonZeroU32>

If the pipeline will be used with a multiview render pass, this indicates how many array layers the attachments will have.

§cache: Option<&'a PipelineCache>

The pipeline cache to use when creating this pipeline.

Trait Implementations§

source§

impl<'a> Clone for RenderPipelineDescriptor<'a>

source§

fn clone(&self) -> RenderPipelineDescriptor<'a>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<'a> Debug for RenderPipelineDescriptor<'a>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast<T> for T

§

fn downcast(&self) -> &T

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> Upcast<T> for T

§

fn upcast(&self) -> Option<&T>

§

impl<T> WasmNotSend for T
where T: Send,

§

impl<T> WasmNotSendSync for T

§

impl<T> WasmNotSync for T
where T: Sync,