MayaFlux 0.5.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ KernelTemplate

enum class MayaFlux::Portal::Graphics::KernelTemplate : uint8_t
strong

Structural shape of the generated compute kernel.

Determines thread dispatch math, binding structure, and loop shape.

Enumerator
Elementwise 

f(x[i]) -> y[i]; one thread per element

Reduction 

f(x[0..n]) -> scalar; shared-memory tree reduction

Stencil 

f(x[i-k..i+k]) -> y[i]; neighbourhood reads, radius in PC

GeometryEmit 

Writes into vertex SSBO with atomic counter.

BitonicSort 

Bitonic sort network; one thread per element.

Convolve2D 

2D separable or non-separable convolution; kernel weights in SSBO, radius in PC

Scan 

Inclusive prefix scan over one InOut SSBO, double-buffered Hillis-Steele in shared memory.

Op selects the combine function.

Definition at line 23 of file ShaderSpec.hpp.

23 : uint8_t {
24 Elementwise, ///< f(x[i]) -> y[i]; one thread per element
25 Reduction, ///< f(x[0..n]) -> scalar; shared-memory tree reduction
26 Stencil, ///< f(x[i-k..i+k]) -> y[i]; neighbourhood reads, radius in PC
27 GeometryEmit, ///< Writes into vertex SSBO with atomic counter
28 BitonicSort, ///< Bitonic sort network; one thread per element
29 Convolve2D, ///< 2D separable or non-separable convolution; kernel weights in SSBO, radius in PC
30 Scan, ///< Inclusive prefix scan over one InOut SSBO, double-buffered
31 ///< Hillis-Steele in shared memory. Op selects the combine function.
32};
@ Scan
Inclusive prefix scan over one InOut SSBO, double-buffered Hillis-Steele in shared memory.
@ Convolve2D
2D separable or non-separable convolution; kernel weights in SSBO, radius in PC
@ Reduction
f(x[0..n]) -> scalar; shared-memory tree reduction
@ Elementwise
f(x[i]) -> y[i]; one thread per element
@ Stencil
f(x[i-k..i+k]) -> y[i]; neighbourhood reads, radius in PC
@ GeometryEmit
Writes into vertex SSBO with atomic counter.
@ BitonicSort
Bitonic sort network; one thread per element.