2#include <UnCompute/Base/Byte.h>
3#include <UnCompute/Containers/HeapArray.h>
4#include <UnCompute/Memory/Object.h>
9 enum class KernelSourceLang
15 enum class KernelTargetLang
23 const char*
Name =
nullptr;
29 inline explicit KernelCompilerDesc(
const char* name, KernelSourceLang sourceLang = KernelSourceLang::Hlsl,
30 KernelTargetLang targetLang = KernelTargetLang::SpirV)
39 enum class CompilerOptimizationLevel
51 const char*
Name =
nullptr;
Fixed-size heap-allocated array.
Definition: HeapArray.h:14
An interface for kernel compiler that is used for compiling compute shader source into backend's nati...
Definition: IKernelCompiler.h:74
virtual ResultCode Init(const DescriptorType &desc)=0
Creates and initializes a kernel compiler.
virtual ResultCode Compile(const KernelCompilerArgs &args, HeapArray< Byte > *pResult)=0
Compile a compute kernel into target language.
Base interface for dynamic reference counted objects.
Definition: Object.h:8
Compiler #define descriptor.
Definition: IKernelCompiler.h:50
const char * Value
Value in #define NAME VALUE.
Definition: IKernelCompiler.h:52
const char * Name
Name in #define NAME VALUE.
Definition: IKernelCompiler.h:51
Kernel compiler arguments that define a single compilation.
Definition: IKernelCompiler.h:65
ArraySlice< const Byte > SourceCode
Compute shader source code in a high-level language, e.g. HLSL.
Definition: IKernelCompiler.h:66
const char * EntryPoint
Compute shader entry point.
Definition: IKernelCompiler.h:68
ArraySlice< CompilerDefinition > Definitions
Compiler definitions.
Definition: IKernelCompiler.h:69
CompilerOptimizationLevel OptimizationLevel
Compiler optimization level.
Definition: IKernelCompiler.h:67
Kernel compiler descriptor.
Definition: IKernelCompiler.h:22
const char * Name
Compiler debug name.
Definition: IKernelCompiler.h:23
KernelSourceLang SourceLang
Source code language.
Definition: IKernelCompiler.h:24
KernelTargetLang TargetLang
Target code language.
Definition: IKernelCompiler.h:25