pub enum RafxPipeline {
    Empty(RafxPipelineEmpty),
}
Expand description

Represents a complete GPU configuration for executing work.

There are two kinds of pipelines: Graphics and Compute

A pipeline includes fixed-function state (i.e. configuration) and programmable state (i.e. shaders). Pipelines are expensive objects to create. Ideally, they should be created when the application initializes or on a separate thread.

Pipelines are bound by command buffers. Fewer pipeline changes is better, and it is often worth batching draw calls that use the same pipeline to happen together so that the pipeline does not need to be changed as frequently.

Pipelines must not be dropped if they are in use by the GPU.

Variants§

§

Empty(RafxPipelineEmpty)

Implementations§

source§

impl RafxPipeline

source

pub fn pipeline_type(&self) -> RafxPipelineType

Returns the type of pipeline that this is

source

pub fn root_signature(&self) -> &RafxRootSignature

Returns the root signature used to create the pipeline

source

pub fn set_debug_name(&self, _name: impl AsRef<str>)

Sets a name for this pipeline. This is useful for debugging, graphics debuggers/profilers such as nsight graphics or renderdoc will display this pipeline with the given name in the list of resources.

WARNING: Metal doesn’t support specifying debug names after pipeline creation, so it’s better to provide a debug_name in RafxGraphicsPipelineDef/RafxComputePipelineDef

source

pub fn empty_pipeline(&self) -> Option<&RafxPipelineEmpty>

Trait Implementations§

source§

impl Debug for RafxPipeline

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 for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
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, 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.
source§

impl<T> Resource for T
where T: Downcast + Send + Sync,