Module gfx_hal::pso

source ·
Expand description

Raw Pipeline State Objects

This module contains items used to create and manage Pipelines.

Structs

PSO vertex attribute descriptor
Baked-in pipeline states.
A description of an equation for how to blend transparent, overlapping fragments.
A simple struct describing a rect with integer coordinates.
PSO color target descriptor.
Target output color mask.
A description of the data needed to construct a compute pipeline.
A depth bias allows changing the produced depth values for fragments slightly but consistently. This permits drawing of multiple polygons in the same plane without Z-fighting, such as when trying to draw shadows on a wall.
PSO depth-stencil target descriptor.
Set of descriptors of a specific type.
Copies a range of descriptors to be bound from one descriptor set to another Should be provided to the copy_descriptor_sets method of a Device.
Information about the contents of and in which stages descriptors may be bound to a descriptor set at a certain binding point. Multiple DescriptorSetLayoutBindings are assembled into a DescriptorSetLayout, which is then allocated into a DescriptorSet using a DescriptorPool.
Writes the actual descriptors to be bound into a descriptor set. Should be provided to the write_descriptor_sets method of a Device.
A struct element descriptor.
Shader entry point.
Face.
A description of all the settings that can be altered when creating a graphics pipeline.
A complete set of shaders to build a graphics pipeline.
All the information needed to create an input assembler.
Pipeline creation flags.
Stages of the logical pipeline.
Rasterization state.
A simple struct describing a rect with integer coordinates.
Combination of different shader pipeline stages.
Specialization information structure.
Specialization constant for pipelines.
Complete stencil state for a given side of a face.
Vertex buffer descriptor
A viewport, generally equating to a window on a display.

Enums

An error allocating descriptor sets from a pool.
A reference to a parent pipeline. The assumption is that a parent and derivative/child pipeline have most settings in common, and one may be switched for another more quickly than entirely unrelated pipelines would be.
Blending operations.
Specifies whether to use blending, and if so, which operatiosn to use for color and alpha channels.
A pixel-wise comparison function.
Error types happening upon PSO creation on the device side.
Depth test state.
A handle to a specific shader resource that can be bound for use in a DescriptorSet. Usually provided in a DescriptorSetWrite
DOC TODO: Grasping and remembering the differences between these types is a tough task. We might be able to come up with better names? Or even use tuples to describe functionality instead of coming up with fancy names.
Defines the possible blending factors. During blending, the source or destination fragment may be multiplied by a factor to produce the final result.
The front face winding order of a set of vertices. This is the order of vertexes that define which side of a face is the “front”.
Logic operations used for specifying blend equations.
Methods for rasterizing polygons, ie, turning the mesh into a raster image.
Describes whether or not primitive restart is supported for an input assembler. Primitive restart is a feature that allows a mark to be placed in an index buffer where it is is “broken” into multiple pieces of geometry.
Which program stage this shader represents.
Pipeline state which may be static or dynamic.
The operation to use for stencil masking.
Defines a stencil test. Stencil testing is an operation performed to cull fragments; the new fragment is tested against the value held in the stencil buffer, and if the test fails the fragment is discarded.

Traits

A descriptor pool is a collection of memory from which descriptor sets are allocated.

Type Definitions

Index of a vertex buffer.
A single RGBA float color.
A single depth value from a depth buffer.
Offset of an attribute from the start of the buffer, in bytes
Offset between attribute values, in bytes
The number of instances between each subsequent attribute value
Shader binding location.
A single value from a stencil buffer.