Skip to content

ludus::tooling::shader_compiler

Ludus Wiki · API overview · Browse API

Namespace

Declared in modules/tooling/shader_compiler/include/ludus/tooling/shader_compiler/compiler.hpp

Enumerations

Target

enum class Target : foundation::uint8
Supported portable targets; device-specific machine code belongs to the graphics driver.

Related types: foundation::uint8

Spirv

Spirv
Vulkan SPIR-V 1.3.

Wgsl

Wgsl
WebGPU WGSL.

Metal

Metal
Metal shading language source.

SpirvRayQuery

SpirvRayQuery
Vulkan SPIR-V 1.5 compute with spvRayQueryKHR; rejects raster stages.

Declared in modules/tooling/shader_compiler/include/ludus/tooling/shader_compiler/compiler.hpp

Stage

enum class Stage : foundation::uint8
Shader entry-point stage.

Related types: foundation::uint8

Vertex

Vertex
Raster vertex stage.

Fragment

Fragment
Raster fragment stage.

Compute

Compute
Compute stage.

Declared in modules/tooling/shader_compiler/include/ludus/tooling/shader_compiler/compiler.hpp

Status

enum class Status : foundation::uint8
Compilation/client outcome. Failure never publishes partial shader artifacts.

Related types: foundation::uint8

Ready

Ready
Complete output is available.

Pending

Pending
Client I/O is in progress; poll again between frames.

InvalidRequest

InvalidRequest
Bad version, path, stage, target or bounds.

CompileFailed

CompileFailed
Slang rejected the shader; diagnostics describe the failure.

Unavailable

Unavailable
Worker, platform or pinned compiler is unavailable.

OutOfMemory

OutOfMemory
Ludus-owned output storage could not be allocated.

TransportFailed

TransportFailed
Disconnected peer, malformed reply or native I/O failure.

InvalidState

InvalidState
Operation is incompatible with the current client state.

Declared in modules/tooling/shader_compiler/include/ludus/tooling/shader_compiler/compiler.hpp

Constants and variables

MAX_SOURCE_FILES

constexpr foundation::usize ludus::tooling::shader_compiler::MAX_SOURCE_FILES = 64
Maximum number of source files in one immutable compilation snapshot.

Related types: foundation::usize

Declared in modules/tooling/shader_compiler/include/ludus/tooling/shader_compiler/compiler.hpp

MAX_SOURCE_BYTES

constexpr foundation::usize ludus::tooling::shader_compiler::MAX_SOURCE_BYTES = foundation::usize{4} * 1024 * 1024
Maximum combined UTF-8 source bytes per snapshot, excluding terminators.

Related types: foundation::usize

Declared in modules/tooling/shader_compiler/include/ludus/tooling/shader_compiler/compiler.hpp

MAX_ARTIFACT_BYTES

constexpr foundation::usize ludus::tooling::shader_compiler::MAX_ARTIFACT_BYTES = foundation::usize{2} * 1024 * 1024
Maximum size of one emitted shader artifact or reflection document.

Related types: foundation::usize

Declared in modules/tooling/shader_compiler/include/ludus/tooling/shader_compiler/compiler.hpp

MAX_MESSAGE_BYTES

constexpr foundation::usize ludus::tooling::shader_compiler::MAX_MESSAGE_BYTES = foundation::usize{16} * 1024 * 1024
Maximum framed JSON request/response bytes; includes escaped sources and hex artifacts.

Related types: foundation::usize

Declared in modules/tooling/shader_compiler/include/ludus/tooling/shader_compiler/compiler.hpp

PROTOCOL_VERSION

constexpr foundation::uint32 ludus::tooling::shader_compiler::PROTOCOL_VERSION = 1
Wire schema version; incompatible workers are rejected.

Related types: foundation::uint32

Declared in modules/tooling/shader_compiler/include/ludus/tooling/shader_compiler/compiler.hpp

MAX_DIAGNOSTIC_BYTES

constexpr foundation::usize ludus::tooling::shader_compiler::MAX_DIAGNOSTIC_BYTES = foundation::usize{64} * 1024
Maximum retained compiler diagnostic bytes, including warnings.

Related types: foundation::usize

Declared in modules/tooling/shader_compiler/include/ludus/tooling/shader_compiler/compiler.hpp

MAX_ENTRY_BYTES

constexpr foundation::usize ludus::tooling::shader_compiler::MAX_ENTRY_BYTES = 128
Maximum entry-point identifier bytes, excluding its terminator.

Related types: foundation::usize

Declared in modules/tooling/shader_compiler/include/ludus/tooling/shader_compiler/compiler.hpp