[][src]Crate naga

Universal shader translator.

The central structure of the crate is Module.

To improve performance and reduce memory usage, most structures are stored in an Arena, and can be retrieved using the corresponding Handle.

Modules

back

Functions which export shader modules into binary and text formats.

front

Parsers which load shaders into memory.

proc

Module processing functionality.

Structs

Arena

An arena holding some kind of component (e.g., type, constant, instruction, etc.) that can be referenced.

Constant

Constant value.

EntryPoint

Exported function, to be run at a certain stage in the pipeline.

FallThrough

Marker type, used for falling through in a switch statement.

Function

A function defined in the module.

GlobalUse

Indicates how a global variable is used.

GlobalVariable

Variable defined at module level.

Handle

A strongly typed reference to a SPIR-V element.

Header

Metadata for a given module.

ImageFlags

Flags describing an image.

LocalVariable

Variable defined at function level.

Module

Shader module.

StructMember

Member of a user-defined structure.

Type

A data type declared in the module.

Enums

ArraySize

Size of an array.

BinaryOperator

Operation that can be applied on two values.

Binding

Describes how an input/output variable is to be bound.

BuiltIn

Built-in inputs and outputs.

ConstantInner

Additional information, dependendent on the kind of constant.

DerivativeAxis

Axis on which to compute a derivative.

Expression

An expression that can be evaluated to obtain a value.

FunctionOrigin

Origin of a function to call.

ImageDimension

The number of dimensions an image has.

IntrinsicFunction

Built-in shader function.

MemberOrigin

Describes where a struct member is placed.

ScalarKind

Primitive type for a scalar.

ShaderStage

Stage of the programmable pipeline.

Statement

Instructions which make up an executable block.

StorageClass

Class of storage for variables.

TypeInner

Enum with additional information, depending on the kind of type.

UnaryOperator

Operation that can be applied on a single value.

VectorSize

Number of components in a vector.

Type Definitions

Block

A code block is just a vector of statements.

Bytes

Number of bytes.

FastHashMap

Hash map that is faster but not resilient to DoS attacks.

FastHashSet

Hash set that is faster but not resilient to DoS attacks.