|
|
Donner SVG 0.8.0-pre
SVG editor and embeddable C++20 engine.
|
Module model and validating builders for the donner::gpu::shader IR.
More...
#include <array>#include <cstdint>#include <map>#include <memory>#include <optional>#include <string>#include <vector>#include "donner/base/RcString.h"#include "donner/gpu/shader/IrExpr.h"#include "donner/gpu/shader/IrStatement.h"#include "donner/gpu/shader/IrType.h"#include "donner/gpu/shader/ShaderResult.h"Classes | |
| struct | donner::gpu::shader::WorkgroupSize |
| Declared workgroup size of a compute entry point. Every dimension is at least 1, and the product bounds how many invocations one dispatched workgroup runs. More... | |
| struct | donner::gpu::shader::IrConstant |
| One module-scope constant. More... | |
| struct | donner::gpu::shader::IrBinding |
| One module-scope resource binding. More... | |
| struct | donner::gpu::shader::IrParam |
| One entry point parameter or plain function parameter. More... | |
| struct | donner::gpu::shader::IrOutputMember |
| One entry point output member. More... | |
| struct | donner::gpu::shader::IrFunction |
| One function: a plain function or an entry point. More... | |
| class | donner::gpu::shader::IrModule |
| An immutable, validated shader IR module. More... | |
| class | donner::gpu::shader::FunctionBuilder |
| Builds one function or entry point. More... | |
| class | donner::gpu::shader::ModuleBuilder |
| Builds an IrModule: module-scope constants, resource bindings with (group, binding) uniqueness validation, and functions. More... | |
Namespaces | |
| namespace | donner |
| Top-level Donner namespace, which is split into different sub-namespaces such as donner::svg and donner::css. | |
Enumerations | |
| enum class | donner::gpu::shader::BindingKind : uint8_t { UniformBuffer , ReadOnlyStorageBuffer , SampledTexture2dF32 , FilteringSampler , WriteOnlyStorageTexture2d } |
| Kind of a module-scope resource binding. More... | |
| enum class | donner::gpu::shader::StageKind : uint8_t { None , Vertex , Fragment , Compute } |
| Pipeline stage of a function. More... | |
| enum class | donner::gpu::shader::BuiltinInput : uint8_t { VertexIndex , InstanceIndex , Position , GlobalInvocationId } |
| Builtin input values available to entry point parameters. More... | |
| enum class | donner::gpu::shader::BuiltinOutput : uint8_t { Position } |
| Builtin output values available to entry point outputs. More... | |
Functions | |
| std::ostream & | donner::gpu::shader::operator<< (std::ostream &os, BindingKind value) |
| Ostream output operator, e.g. uniform. | |
| std::ostream & | donner::gpu::shader::operator<< (std::ostream &os, StageKind value) |
| Ostream output operator, e.g. compute. | |
Module model and validating builders for the donner::gpu::shader IR.
A module holds module-scope constants, resource bindings, and functions (plain functions plus vertex/fragment/compute entry points). ModuleBuilder and FunctionBuilder validate every construction step and fail closed with ShaderError on ill-typed input; a successfully built IrModule is immutable and serializes deterministically.
|
strong |
|
strong |
|
strong |
|
strong |
| std::ostream & donner::gpu::shader::operator<< | ( | std::ostream & | os, |
| BindingKind | value ) |
Ostream output operator, e.g. uniform.
| os | Output stream. |
| value | Value to output. |
| std::ostream & donner::gpu::shader::operator<< | ( | std::ostream & | os, |
| StageKind | value ) |
Ostream output operator, e.g. compute.
| os | Output stream. |
| value | Value to output. |