30 [[nodiscard]] std::string
getName()
const override {
return "SPIRV"; }
42 void optimize(std::span<ShaderIRModule> modules)
override {}
52 throw std::runtime_error(
"Cross-compilation to this target not implemented");
This file contains the ShaderIR abstract class.
Abstract class for shader IR.
Class for the SPIR-V IR plugin.
SPIRV & operator=(const SPIRV &)=delete
ShaderIRModule crossCompile(const ShaderIRModule &module, const ShaderSourceType targetType) override
Optional: cross-compile from one IR to another (SPIR-V -> MSL, etc.)
utl::PluginPlatform getPlatform() const override
Get the handled platform of the plugin.
SPIRV & operator=(SPIRV &&)=delete
std::string getName() const override
Get the name of the plugin.
ShaderSourceType irType() const override
Get the IR type this processor handles.
~SPIRV() override=default
utl::PluginType getType() const override
Get the type of the plugin.
void optimize(std::span< ShaderIRModule > modules) override
Optional: optimize a batch of IR modules.
SPIRV(const SPIRV &)=delete
ShaderIRModule process(const ShaderIRModule &module) override
Transform or validate a shader IR module.
Struct for shader intermediate representation module.