Module gfx::pso [] [src]

Pipeline states Pipeline State Objects - typed higher-level version.

A typed PSO is defined by a macro (like gfx_pipeline) and generates 3 structures: - "init" - containing all the information about resource types, formats, layouts - everything needed for PSO initialization. - "meta" - mapping the exact shader inputs to the PSO data. The exact type of the PSO is gfx::PipelineState<R, Meta>. - "data" - having the user-provided version of the run-time data for PSO rendering, mostly consists of resource handles.

A typed PSO is made of individual components, each is represented by the same-named field in all three generated structures. The submodules here define these components grouped by area.

Modules

buffer

Buffer components for PSO macro.

resource

Resource components for PSO macro.

target

Render target components for the PSO macro.

Structs

Descriptor

All the information surrounding a shader program that is required for PSO creation, including the formats of vertex buffers and pixel targets;

PipelineState

Strongly-typed compiled pipeline state.

RawDataSet

A complete set of raw data that needs to be specified at run-time whenever we draw something with a PSO. This is what "data" struct gets transformed into when we call encoder.draw(...) with it. It doesn't have any typing information, since PSO knows what format and layout to expect from each resource.

Enums

InitError

Failure to initilize the link between the shader and the data.

Traits

DataBind

The "bind" logic portion of the PSO component. Defines how the user data translates into the raw data set.

DataLink

The "link" logic portion of a PSO component. Defines the input data for the component.

PipelineData

a service trait implemented the "data" structure of PSO.

PipelineInit

A service trait implemented by the "init" structure of PSO.