|
MayaFlux 0.5.0
Digital-First Multimedia Processing Framework
|
Complete declarative description of a generated compute shader. More...
#include <ShaderSpec.hpp>
Collaboration diagram for MayaFlux::Portal::Graphics::ShaderSpec:Classes | |
| class | Assemble |
| Fluent assembler producing a ShaderSpec. More... | |
Public Attributes | |
| std::vector< BindingSlot > | bindings |
| std::optional< KernelSource > | kernel |
| When set, KernelOp is ignored. | |
| KernelOp | op { KernelOp::Scale } |
| std::vector< PushConstantField > | pc_fields |
| uint32_t | push_constant_bytes { 0 } |
| KernelTemplate | tmpl { KernelTemplate::Elementwise } |
| std::array< uint32_t, 3 > | workgroup_size { 256, 1, 1 } |
Complete declarative description of a generated compute shader.
Pure value type. Consumed by ShaderFoundry::load_shader(const ShaderSpec&) which emits SPIR-V assembly via VKShaderModule::emit_spirv_asm() and assembles it via VKShaderModule::create_from_spirv_asm(). No shaderc or GLSL toolchain is involved.
The op field selects a named operation the emitter knows how to lower to SPIR-V opcodes deterministically. PC fields are consumed in declaration order as operands.
Definition at line 330 of file ShaderSpec.hpp.