[][src]Module gfx_hal::pso

Raw Pipeline State Objects

This module contains items used to create and manage Pipelines.

Structs

AttributeDesc

Vertex attribute description. Notably, completely separate from resource Descriptors used in DescriptorSets.

BakedStates

Baked-in pipeline states.

BlendDesc

A description of an equation for how to blend transparent, overlapping fragments.

BlendState

Specifies whether to use blending, and if so, which operations to use for color and alpha channels.

ClearRect

A simple struct describing a rect with integer coordinates.

ColorBlendDesc

PSO color target descriptor.

ColorMask

Target output color mask.

ComputePipelineDesc

A description of the data needed to construct a compute pipeline.

DepthBias

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.

DepthStencilDesc

PSO depth-stencil target descriptor.

DepthTest

Depth test state.

DescriptorPoolCreateFlags

Descriptor pool creation flags.

DescriptorRangeDesc

Set of descriptors of a specific type.

DescriptorSetCopy

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.

DescriptorSetLayoutBinding

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.

DescriptorSetWrite

Writes the actual descriptors to be bound into a descriptor set. Should be provided to the write_descriptor_sets method of a Device.

Element

A struct element descriptor.

EntryPoint

Shader entry point.

Face

Face.

GraphicsPipelineDesc

A description of all the settings that can be altered when creating a graphics pipeline.

GraphicsShaderSet

A complete set of shaders to build a graphics pipeline.

InputAssemblerDesc

All the information needed to create an input assembler.

Multisampling
PipelineCreationFlags

Pipeline creation flags.

PipelineStage

Stages of the logical pipeline.

Rasterizer

Rasterization state.

Rect

A simple struct describing a rect with integer coordinates.

ShaderStageFlags

Combination of different shader pipeline stages.

Sided

A generic struct holding the properties of two sides of a polygon.

Specialization

Specialization information structure.

SpecializationConstant

Specialization constant for pipelines.

StencilFace

Complete stencil state for a given side of a face.

StencilTest

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.

VertexBufferDesc

Vertex buffer description. Notably, completely separate from resource Descriptors used in DescriptorSets.

Viewport

A viewport, generally equating to a window on a display.

Enums

AllocationError

An error allocating descriptor sets from a pool.

BasePipeline

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.

BlendOp

Blending operations.

Comparison

A pixel-wise comparison function.

CreationError

Error types happening upon PSO creation on the device side.

Descriptor

A handle to a specific shader resource that can be bound for use in a DescriptorSet. Usually provided in a DescriptorSetWrite

DescriptorType

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.

Factor

Defines the possible blending factors. During blending, the source or destination fragment may be multiplied by a factor to produce the final result.

FrontFace

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".

LogicOp

Logic operations used for specifying blend equations.

PolygonMode

Methods for rasterizing polygons, ie, turning the mesh into a raster image.

PrimitiveRestart

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.

Stage

Which program stage this shader represents.

State

Pipeline state which may be static or dynamic.

StencilOp

The operation to use for stencil masking.

VertexInputRate

The rate at which to advance input data to shaders for the given buffer

Traits

DescriptorPool

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

Functions

read_spirv

Safely read SPIR-V

Type Definitions

BufferIndex

Index of a vertex buffer.

ColorValue

A single RGBA float color.

DepthValue

A single depth value from a depth buffer.

DescriptorArrayIndex
DescriptorBinding
DescriptorSetIndex
ElemOffset

Offset of an attribute from the start of the buffer, in bytes

ElemStride

Offset between attribute values, in bytes

InstanceRate

Number of instances between each advancement of the vertex buffer.

Location

Shader binding location.

SampleMask
StencilValue

A single value from a stencil buffer.

StencilValues

Pair of stencil values that could be either baked into a graphics pipeline or provided dynamically.