|
| #define | SLANG_COMPILER |
| |
| #define | SLANG_VC 0 |
| |
| #define | SLANG_CLANG 0 |
| |
| #define | SLANG_SNC 0 |
| |
| #define | SLANG_GHS 0 |
| |
| #define | SLANG_GCC 0 |
| |
| #define | SLANG_PLATFORM |
| |
| #define | SLANG_WINRT 0 |
| |
| #define | SLANG_XBOXONE 0 |
| |
| #define | SLANG_WIN64 0 |
| |
| #define | SLANG_X360 0 |
| |
| #define | SLANG_WIN32 0 |
| |
| #define | SLANG_ANDROID 0 |
| |
| #define | SLANG_LINUX 0 |
| |
| #define | SLANG_IOS 0 |
| |
| #define | SLANG_OSX 0 |
| |
| #define | SLANG_PS3 0 |
| |
| #define | SLANG_PS4 0 |
| |
| #define | SLANG_PSP2 0 |
| |
| #define | SLANG_WIIU 0 |
| |
| #define | SLANG_WASM 0 |
| |
| #define | SLANG_GCC_FAMILY (SLANG_CLANG || SLANG_SNC || SLANG_GHS || SLANG_GCC) |
| |
| #define | SLANG_WINDOWS_FAMILY (SLANG_WINRT || SLANG_WIN32 || SLANG_WIN64) |
| |
| #define | SLANG_MICROSOFT_FAMILY (SLANG_XBOXONE || SLANG_X360 || SLANG_WINDOWS_FAMILY) |
| |
| #define | SLANG_LINUX_FAMILY (SLANG_LINUX || SLANG_ANDROID) |
| |
| #define | SLANG_APPLE_FAMILY (SLANG_IOS || SLANG_OSX) /* equivalent to #if __APPLE__ */ |
| |
| #define | SLANG_UNIX_FAMILY (SLANG_LINUX_FAMILY || SLANG_APPLE_FAMILY) /* shortcut for unix/posix platforms */ |
| |
| #define | SLANG_ENABLE_DXVK 0 |
| |
| #define | SLANG_ENABLE_VKD3D 0 |
| |
| #define | SLANG_ENABLE_DIRECTX 0 |
| |
| #define | SLANG_ENABLE_DXGI_DEBUG 0 |
| |
| #define | SLANG_ENABLE_DXBC_SUPPORT 0 |
| |
| #define | SLANG_ENABLE_PIX 0 |
| |
| #define | SLANG_NO_THROW |
| |
| #define | SLANG_STDCALL |
| |
| #define | SLANG_MCALL SLANG_STDCALL |
| |
| #define | SLANG_DYNAMIC |
| |
| #define | SLANG_DLL_EXPORT __attribute__((__visibility__("default"))) |
| |
| #define | SLANG_API SLANG_DLL_EXPORT |
| |
| #define | SLANG_OFFSET_OF(T, ELEMENT) (size_t(&((T*)1)->ELEMENT) - 1) |
| |
| #define | SLANG_FORCE_INLINE inline |
| |
| #define | SLANG_NO_INLINE |
| |
| #define | SLANG_COMPILE_TIME_ASSERT(x) static_assert(x) |
| |
| #define | SLANG_BREAKPOINT(id) (*((int*)0) = int(id)); |
| |
| #define | SLANG_COUNT_OF(x) (SlangSSizeT(sizeof(x) / sizeof(0 [x]))) |
| |
| #define | SLANG_INLINE inline |
| | SLANG_INLINE exists to have a way to inline consistent with SLANG_ALWAYS_INLINE
|
| |
| #define | SLANG_HAS_EXCEPTIONS 1 |
| |
| #define | SLANG_STRINGIZE_HELPER(X) #X |
| |
| #define | SLANG_STRINGIZE(X) SLANG_STRINGIZE_HELPER(X) |
| |
| #define | SLANG_CONCAT_HELPER(X, Y) X##Y |
| |
| #define | SLANG_CONCAT(X, Y) SLANG_CONCAT_HELPER(X, Y) |
| |
| #define | SLANG_UNUSED(v) (void)v; |
| |
| #define | SLANG_MAYBE_UNUSED |
| |
| #define | SLANG_INT64(x) (x##ll) |
| |
| #define | SLANG_UINT64(x) (x##ull) |
| |
| #define | SLANG_EXTERN_C |
| |
| #define | SLANG_PROCESSOR_ARM 0 |
| |
| #define | SLANG_PROCESSOR_ARM_64 0 |
| |
| #define | SLANG_PROCESSOR_X86 0 |
| |
| #define | SLANG_PROCESSOR_X86_64 0 |
| |
| #define | SLANG_PROCESSOR_POWER_PC 0 |
| |
| #define | SLANG_PROCESSOR_POWER_PC_64 0 |
| |
| #define | SLANG_PROCESSOR_WASM 0 |
| |
| #define | SLANG_PROCESSOR_FAMILY_X86 (SLANG_PROCESSOR_X86_64 | SLANG_PROCESSOR_X86) |
| |
| #define | SLANG_PROCESSOR_FAMILY_ARM (SLANG_PROCESSOR_ARM | SLANG_PROCESSOR_ARM_64) |
| |
| #define | SLANG_PROCESSOR_FAMILY_POWER_PC (SLANG_PROCESSOR_POWER_PC_64 | SLANG_PROCESSOR_POWER_PC) |
| |
| #define | SLANG_PTR_IS_64 (SLANG_PROCESSOR_ARM_64 | SLANG_PROCESSOR_X86_64 | SLANG_PROCESSOR_POWER_PC_64) |
| |
| #define | SLANG_PTR_IS_32 (SLANG_PTR_IS_64 ^ 1) |
| |
| #define | SLANG_LITTLE_ENDIAN 0 |
| |
| #define | SLANG_BIG_ENDIAN 0 |
| |
| #define | SLANG_UNALIGNED_ACCESS 0 |
| |
| #define | SLANG_HAS_BACKTRACE 0 |
| |
| #define | SLANG_DEPRECATED [[deprecated]] |
| |
| #define | SLANG_FAILED(status) ((status) < 0) |
| |
| #define | SLANG_SUCCEEDED(status) ((status) >= 0) |
| |
| #define | SLANG_GET_RESULT_FACILITY(r) ((int32_t)(((r) >> 16) & 0x7fff)) |
| | Get the facility the result is associated with
|
| |
| #define | SLANG_GET_RESULT_CODE(r) ((int32_t)((r) & 0xffff)) |
| | Get the result code for the facility
|
| |
| #define | SLANG_MAKE_ERROR(fac, code) ((((int32_t)(fac)) << 16) | ((int32_t)(code)) | int32_t(0x80000000)) |
| |
| #define | SLANG_MAKE_SUCCESS(fac, code) ((((int32_t)(fac)) << 16) | ((int32_t)(code))) |
| |
| #define | SLANG_FACILITY_WIN_GENERAL 0 |
| | Facilities compatible with windows COM - only use if known code is compatible
|
| |
| #define | SLANG_FACILITY_WIN_INTERFACE 4 |
| |
| #define | SLANG_FACILITY_WIN_API 7 |
| |
| #define | SLANG_FACILITY_BASE 0x200 |
| |
| #define | SLANG_FACILITY_CORE SLANG_FACILITY_BASE |
| |
| #define | SLANG_FACILITY_INTERNAL SLANG_FACILITY_BASE + 1 |
| |
| #define | SLANG_FACILITY_EXTERNAL_BASE 0x210 |
| | Base for external facilities. Facilities should be unique across modules.
|
| |
| #define | SLANG_OK 0 |
| |
| #define | SLANG_FAIL SLANG_MAKE_ERROR(SLANG_FACILITY_WIN_GENERAL, 0x4005) |
| |
| #define | SLANG_MAKE_WIN_GENERAL_ERROR(code) SLANG_MAKE_ERROR(SLANG_FACILITY_WIN_GENERAL, code) |
| |
| #define | SLANG_E_NOT_IMPLEMENTED SLANG_MAKE_WIN_GENERAL_ERROR(0x4001) |
| | Functionality is not implemented
|
| |
| #define | SLANG_E_NO_INTERFACE SLANG_MAKE_WIN_GENERAL_ERROR(0x4002) |
| | Interface not be found
|
| |
| #define | SLANG_E_ABORT SLANG_MAKE_WIN_GENERAL_ERROR(0x4004) |
| | Operation was aborted (did not correctly complete)
|
| |
| #define | SLANG_E_INVALID_HANDLE SLANG_MAKE_ERROR(SLANG_FACILITY_WIN_API, 6) |
| | Indicates that a handle passed in as parameter to a method is invalid.
|
| |
| #define | SLANG_E_INVALID_ARG SLANG_MAKE_ERROR(SLANG_FACILITY_WIN_API, 0x57) |
| | Indicates that an argument passed in as parameter to a method is invalid.
|
| |
| #define | SLANG_E_OUT_OF_MEMORY SLANG_MAKE_ERROR(SLANG_FACILITY_WIN_API, 0xe) |
| | Operation could not complete - ran out of memory
|
| |
| #define | SLANG_MAKE_CORE_ERROR(code) SLANG_MAKE_ERROR(SLANG_FACILITY_CORE, code) |
| |
| #define | SLANG_E_BUFFER_TOO_SMALL SLANG_MAKE_CORE_ERROR(1) |
| |
| #define | SLANG_E_UNINITIALIZED SLANG_MAKE_CORE_ERROR(2) |
| |
| #define | SLANG_E_PENDING SLANG_MAKE_CORE_ERROR(3) |
| |
| #define | SLANG_E_CANNOT_OPEN SLANG_MAKE_CORE_ERROR(4) |
| | Indicates a file/resource could not be opened
|
| |
| #define | SLANG_E_NOT_FOUND SLANG_MAKE_CORE_ERROR(5) |
| | Indicates a file/resource could not be found
|
| |
| #define | SLANG_E_INTERNAL_FAIL SLANG_MAKE_CORE_ERROR(6) |
| | An unhandled internal failure (typically from unhandled exception)
|
| |
| #define | SLANG_E_NOT_AVAILABLE SLANG_MAKE_CORE_ERROR(7) |
| | Could not complete because some underlying feature (hardware or software) was not available
|
| |
| #define | SLANG_E_TIME_OUT SLANG_MAKE_CORE_ERROR(8) |
| | Could not complete because the operation times out.
|
| |
| #define | SLANG_COM_INTERFACE(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7) |
| |
| #define | SLANG_CLASS_GUID(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7) |
| |
| #define | SLANG_IID_PPV_ARGS(ppType) |
| |
| #define | SLANG_UUID_ISlangUnknown ISlangUnknown::getTypeGuid() |
| |
| #define | SLANG_UUID_ISlangBlob ISlangBlob::getTypeGuid() |
| |
| #define | SLANG_UUID_ISlangFileSystem ISlangFileSystem::getTypeGuid() |
| |
| #define | SLANG_UUID_ISlangSharedLibrary_Dep1 ISlangSharedLibrary_Dep1::getTypeGuid() |
| |
| #define | SLANG_UUID_ISlangSharedLibrary ISlangSharedLibrary::getTypeGuid() |
| |
| #define | SLANG_UUID_ISlangSharedLibraryLoader ISlangSharedLibraryLoader::getTypeGuid() |
| |
| #define | SLANG_UUID_ISlangFileSystemExt ISlangFileSystemExt::getTypeGuid() |
| |
| #define | SLANG_UUID_ISlangMutableFileSystem ISlangMutableFileSystem::getTypeGuid() |
| |
| #define | SLANG_UUID_ISlangWriter ISlangWriter::getTypeGuid() |
| |
| #define | SLANG_UUID_ISlangProfiler ISlangProfiler::getTypeGuid() |
| |
| #define | SLANG_RESOURCE_SHAPE |
| |
| #define | SLANG_FORMAT(NAME, DESC) SLANG_IMAGE_FORMAT_##NAME, |
| |
| #define | SLANG_UNBOUNDED_SIZE (~size_t(0)) |
| |
| #define | SLANG_UNKNOWN_SIZE (SLANG_UNBOUNDED_SIZE - 1) |
| |
| #define | SLANG_ERROR_INSUFFICIENT_BUFFER SLANG_E_BUFFER_TOO_SMALL |
| |
| #define | SLANG_ERROR_INVALID_PARAMETER SLANG_E_INVALID_ARG |
| |
|
| enum | SlangSeverity : SlangSeverityIntegral {
SLANG_SEVERITY_DISABLED = 0
, SLANG_SEVERITY_NOTE = 1
, SLANG_SEVERITY_WARNING = 2
, SLANG_SEVERITY_ERROR = 3
,
SLANG_SEVERITY_FATAL = 4
, SLANG_SEVERITY_INTERNAL
} |
| |
| enum | { SLANG_DIAGNOSTIC_FLAG_VERBOSE_PATHS = 0x01
, SLANG_DIAGNOSTIC_FLAG_TREAT_WARNINGS_AS_ERRORS = 0x02
} |
| |
| enum | SlangBindableResourceType : SlangBindableResourceIntegral {
SLANG_NON_BINDABLE = 0
, SLANG_TEXTURE = 1
, SLANG_SAMPLER = 2
, SLANG_UNIFORM_BUFFER = 3
,
SLANG_STORAGE_BUFFER = 4
} |
| |
| enum | SlangCompileTarget : SlangCompileTargetIntegral {
SLANG_TARGET_UNKNOWN = 0
, SLANG_TARGET_NONE = 1
, SLANG_GLSL = 2
, SLANG_GLSL_VULKAN_DEPRECATED = 3
,
SLANG_GLSL_VULKAN_ONE_DESC_DEPRECATED = 4
, SLANG_HLSL = 5
, SLANG_SPIRV = 6
, SLANG_SPIRV_ASM = 7
,
SLANG_DXBC = 8
, SLANG_DXBC_ASM = 9
, SLANG_DXIL = 10
, SLANG_DXIL_ASM = 11
,
SLANG_C_SOURCE = 12
, SLANG_CPP_SOURCE = 13
, SLANG_HOST_EXECUTABLE = 14
, SLANG_SHADER_SHARED_LIBRARY = 15
,
SLANG_SHADER_HOST_CALLABLE = 16
, SLANG_CUDA_SOURCE = 17
, SLANG_PTX = 18
, SLANG_CUDA_OBJECT_CODE = 19
,
SLANG_OBJECT_CODE = 20
, SLANG_HOST_CPP_SOURCE = 21
, SLANG_HOST_HOST_CALLABLE = 22
, SLANG_CPP_PYTORCH_BINDING = 23
,
SLANG_METAL = 24
, SLANG_METAL_LIB = 25
, SLANG_METAL_LIB_ASM = 26
, SLANG_HOST_SHARED_LIBRARY = 27
,
SLANG_WGSL = 28
, SLANG_WGSL_SPIRV_ASM = 29
, SLANG_WGSL_SPIRV = 30
, SLANG_HOST_VM = 31
,
SLANG_CPP_HEADER = 32
, SLANG_CUDA_HEADER = 33
, SLANG_HOST_OBJECT_CODE = 34
, SLANG_HOST_LLVM_IR = 35
,
SLANG_SHADER_LLVM_IR = 36
, SLANG_TARGET_COUNT_OF
} |
| |
| enum | SlangContainerFormat : SlangContainerFormatIntegral { SLANG_CONTAINER_FORMAT_NONE = 0
, SLANG_CONTAINER_FORMAT_SLANG_MODULE = 1
} |
| |
| enum | SlangPassThrough : SlangPassThroughIntegral {
SLANG_PASS_THROUGH_NONE = 0
, SLANG_PASS_THROUGH_FXC = 1
, SLANG_PASS_THROUGH_DXC = 2
, SLANG_PASS_THROUGH_GLSLANG = 3
,
SLANG_PASS_THROUGH_SPIRV_DIS = 4
, SLANG_PASS_THROUGH_CLANG = 5
, SLANG_PASS_THROUGH_VISUAL_STUDIO = 6
, SLANG_PASS_THROUGH_GCC = 7
,
SLANG_PASS_THROUGH_GENERIC_C_CPP = 8
, SLANG_PASS_THROUGH_NVRTC = 9
, SLANG_PASS_THROUGH_LLVM = 10
, SLANG_PASS_THROUGH_SPIRV_OPT = 11
,
SLANG_PASS_THROUGH_METAL = 12
, SLANG_PASS_THROUGH_TINT = 13
, SLANG_PASS_THROUGH_SPIRV_LINK = 14
, SLANG_PASS_THROUGH_COUNT_OF
} |
| |
| enum | SlangArchiveType : SlangArchiveTypeIntegral {
SLANG_ARCHIVE_TYPE_UNDEFINED = 0
, SLANG_ARCHIVE_TYPE_ZIP = 1
, SLANG_ARCHIVE_TYPE_RIFF = 2
, SLANG_ARCHIVE_TYPE_RIFF_DEFLATE = 3
,
SLANG_ARCHIVE_TYPE_RIFF_LZ4 = 4
, SLANG_ARCHIVE_TYPE_COUNT_OF
} |
| |
| enum | {
SLANG_COMPILE_FLAG_NO_MANGLING = 1 << 3
, SLANG_COMPILE_FLAG_NO_CODEGEN = 1 << 4
, SLANG_COMPILE_FLAG_OBFUSCATE = 1 << 5
, SLANG_COMPILE_FLAG_NO_CHECKING = 0
,
SLANG_COMPILE_FLAG_SPLIT_MIXED_TYPES = 0
} |
| |
| enum | { SLANG_TARGET_FLAG_PARAMETER_BLOCKS_USE_REGISTER_SPACES = 1 << 4
, SLANG_TARGET_FLAG_GENERATE_WHOLE_PROGRAM = 1 << 8
, SLANG_TARGET_FLAG_DUMP_IR = 1 << 9
, SLANG_TARGET_FLAG_GENERATE_SPIRV_DIRECTLY = 1 << 10
} |
| |
| enum | SlangFloatingPointMode : SlangFloatingPointModeIntegral { SLANG_FLOATING_POINT_MODE_DEFAULT = 0
, SLANG_FLOATING_POINT_MODE_FAST = 1
, SLANG_FLOATING_POINT_MODE_PRECISE = 2
} |
| |
| enum | SlangFpDenormalMode : SlangFpDenormalModeIntegral { SLANG_FP_DENORM_MODE_ANY = 0
, SLANG_FP_DENORM_MODE_PRESERVE = 1
, SLANG_FP_DENORM_MODE_FTZ = 2
} |
| |
| enum | SlangLineDirectiveMode : SlangLineDirectiveModeIntegral {
SLANG_LINE_DIRECTIVE_MODE_DEFAULT
, SLANG_LINE_DIRECTIVE_MODE_NONE = 1
, SLANG_LINE_DIRECTIVE_MODE_STANDARD = 2
, SLANG_LINE_DIRECTIVE_MODE_GLSL = 3
,
SLANG_LINE_DIRECTIVE_MODE_SOURCE_MAP = 4
} |
| |
| enum | SlangSourceLanguage : SlangSourceLanguageIntegral {
SLANG_SOURCE_LANGUAGE_UNKNOWN = 0
, SLANG_SOURCE_LANGUAGE_SLANG = 1
, SLANG_SOURCE_LANGUAGE_HLSL = 2
, SLANG_SOURCE_LANGUAGE_GLSL = 3
,
SLANG_SOURCE_LANGUAGE_C = 4
, SLANG_SOURCE_LANGUAGE_CPP = 5
, SLANG_SOURCE_LANGUAGE_CUDA = 6
, SLANG_SOURCE_LANGUAGE_SPIRV = 7
,
SLANG_SOURCE_LANGUAGE_METAL = 8
, SLANG_SOURCE_LANGUAGE_WGSL = 9
, SLANG_SOURCE_LANGUAGE_LLVM = 10
, SLANG_SOURCE_LANGUAGE_COUNT_OF
} |
| |
| enum | SlangProfileID : SlangProfileIDIntegral { SLANG_PROFILE_UNKNOWN = 0
} |
| |
| enum | SlangCapabilityID : SlangCapabilityIDIntegral { SLANG_CAPABILITY_UNKNOWN = 0
} |
| |
| enum | SlangMatrixLayoutMode : SlangMatrixLayoutModeIntegral { SLANG_MATRIX_LAYOUT_MODE_UNKNOWN = 0
, SLANG_MATRIX_LAYOUT_ROW_MAJOR = 1
, SLANG_MATRIX_LAYOUT_COLUMN_MAJOR = 2
} |
| |
| enum | SlangStage : SlangStageIntegral {
SLANG_STAGE_NONE = 0
, SLANG_STAGE_VERTEX = 1
, SLANG_STAGE_HULL = 2
, SLANG_STAGE_DOMAIN = 3
,
SLANG_STAGE_GEOMETRY = 4
, SLANG_STAGE_FRAGMENT = 5
, SLANG_STAGE_COMPUTE = 6
, SLANG_STAGE_RAY_GENERATION = 7
,
SLANG_STAGE_INTERSECTION = 8
, SLANG_STAGE_ANY_HIT = 9
, SLANG_STAGE_CLOSEST_HIT = 10
, SLANG_STAGE_MISS = 11
,
SLANG_STAGE_CALLABLE = 12
, SLANG_STAGE_MESH = 13
, SLANG_STAGE_AMPLIFICATION = 14
, SLANG_STAGE_DISPATCH = 15
,
SLANG_STAGE_COUNT
, SLANG_STAGE_PIXEL = SLANG_STAGE_FRAGMENT
} |
| |
| enum | SlangScope : SlangScopeIntegral { SLANG_SCOPE_NONE
, SLANG_SCOPE_THREAD
, SLANG_SCOPE_WAVE
, SLANG_SCOPE_THREAD_GROUP
} |
| |
| enum | SlangCooperativeMatrixUse : SlangCooperativeMatrixUseIntegral { SLANG_COOPERATIVE_MATRIX_USE_A = 0
, SLANG_COOPERATIVE_MATRIX_USE_B = 1
, SLANG_COOPERATIVE_MATRIX_USE_ACCUMULATOR = 2
} |
| |
| enum | SlangCooperativeVectorMatrixLayout : SlangCooperativeVectorMatrixLayoutIntegral { SLANG_COOPERATIVE_VECTOR_MATRIX_LAYOUT_ROW_MAJOR = 0
, SLANG_COOPERATIVE_VECTOR_MATRIX_LAYOUT_COLUMN_MAJOR = 1
, SLANG_COOPERATIVE_VECTOR_MATRIX_LAYOUT_INFERENCING_OPTIMAL = 2
, SLANG_COOPERATIVE_VECTOR_MATRIX_LAYOUT_TRAINING_OPTIMAL = 3
} |
| |
| enum | SlangDebugInfoLevel : SlangDebugInfoLevelIntegral { SLANG_DEBUG_INFO_LEVEL_NONE = 0
, SLANG_DEBUG_INFO_LEVEL_MINIMAL = 1
, SLANG_DEBUG_INFO_LEVEL_STANDARD = 2
, SLANG_DEBUG_INFO_LEVEL_MAXIMAL = 3
} |
| |
| enum | SlangDebugInfoFormat : SlangDebugInfoFormatIntegral {
SLANG_DEBUG_INFO_FORMAT_DEFAULT = 0
, SLANG_DEBUG_INFO_FORMAT_C7 = 1
, SLANG_DEBUG_INFO_FORMAT_PDB = 2
, SLANG_DEBUG_INFO_FORMAT_STABS = 3
,
SLANG_DEBUG_INFO_FORMAT_COFF = 4
, SLANG_DEBUG_INFO_FORMAT_DWARF = 5
, SLANG_DEBUG_INFO_FORMAT_COUNT_OF
} |
| |
| enum | SlangOptimizationLevel : SlangOptimizationLevelIntegral { SLANG_OPTIMIZATION_LEVEL_NONE = 0
, SLANG_OPTIMIZATION_LEVEL_DEFAULT = 1
, SLANG_OPTIMIZATION_LEVEL_HIGH = 2
, SLANG_OPTIMIZATION_LEVEL_MAXIMAL = 3
} |
| |
| enum | SlangEmitSpirvMethod { SLANG_EMIT_SPIRV_DEFAULT = 0
, SLANG_EMIT_SPIRV_VIA_GLSL = 1
, SLANG_EMIT_SPIRV_DIRECTLY = 2
} |
| |
| enum | SlangEmitCPUMethod { SLANG_EMIT_CPU_DEFAULT = 0
, SLANG_EMIT_CPU_VIA_CPP = 1
, SLANG_EMIT_CPU_VIA_LLVM = 2
} |
| |
| enum | SlangDiagnosticColor { SLANG_DIAGNOSTIC_COLOR_AUTO = 0
, SLANG_DIAGNOSTIC_COLOR_ALWAYS = 1
, SLANG_DIAGNOSTIC_COLOR_NEVER = 2
} |
| |
| enum class | slang::CompilerOptionName {
slang::MacroDefine = 0
, slang::DepFile = 1
, slang::EntryPointName = 2
, slang::Specialize = 3
,
slang::Help = 4
, slang::HelpStyle = 5
, slang::Include = 6
, slang::Language = 7
,
slang::MatrixLayoutColumn = 8
, slang::MatrixLayoutRow = 9
, slang::ZeroInitialize = 10
, slang::IgnoreCapabilities = 11
,
slang::RestrictiveCapabilityCheck = 12
, slang::ModuleName = 13
, slang::Output = 14
, slang::Profile = 15
,
slang::Stage = 16
, slang::Target = 17
, slang::Version = 18
, slang::WarningsAsErrors = 19
,
slang::DisableWarnings = 20
, slang::EnableWarning = 21
, slang::DisableWarning = 22
, slang::DumpWarningDiagnostics = 23
,
slang::InputFilesRemain = 24
, slang::EmitIr = 25
, slang::ReportDownstreamTime = 26
, slang::ReportPerfBenchmark = 27
,
slang::ReportCheckpointIntermediates = 28
, slang::SkipSPIRVValidation = 29
, slang::SourceEmbedStyle = 30
, slang::SourceEmbedName = 31
,
slang::SourceEmbedLanguage = 32
, slang::DisableShortCircuit = 33
, slang::MinimumSlangOptimization = 34
, slang::DisableNonEssentialValidations = 35
,
slang::DisableSourceMap = 36
, slang::UnscopedEnum = 37
, slang::PreserveParameters = 38
, slang::Capability = 39
,
slang::DefaultImageFormatUnknown = 40
, slang::DisableDynamicDispatch = 41
, slang::DisableSpecialization = 42
, slang::FloatingPointMode = 43
,
slang::DebugInformation = 44
, slang::LineDirectiveMode = 45
, slang::Optimization = 46
, slang::Obfuscate = 47
,
slang::VulkanBindShift = 48
, slang::VulkanBindGlobals = 49
, slang::VulkanInvertY = 50
, slang::VulkanUseDxPositionW = 51
,
slang::VulkanUseEntryPointName = 52
, slang::VulkanUseGLLayout = 53
, slang::VulkanEmitReflection = 54
, slang::GLSLForceScalarLayout = 55
,
slang::EnableEffectAnnotations = 56
, slang::EmitSpirvViaGLSL = 57
, slang::EmitSpirvDirectly = 58
, slang::SPIRVCoreGrammarJSON = 59
,
slang::IncompleteLibrary = 60
, slang::CompilerPath = 61
, slang::DefaultDownstreamCompiler = 62
, slang::DownstreamArgs = 63
,
slang::PassThrough = 64
, slang::DumpRepro = 65
, slang::DumpReproOnError = 66
, slang::ExtractRepro = 67
,
slang::LoadRepro = 68
, slang::LoadReproDirectory = 69
, slang::ReproFallbackDirectory = 70
, slang::DumpAst = 71
,
slang::DumpIntermediatePrefix = 72
, slang::DumpIntermediates = 73
, slang::DumpIr = 74
, slang::DumpIrIds = 75
,
slang::PreprocessorOutput = 76
, slang::OutputIncludes = 77
, slang::ReproFileSystem = 78
, slang::REMOVED_SerialIR = 79
,
slang::SkipCodeGen = 80
, slang::ValidateIr = 81
, slang::VerbosePaths = 82
, slang::VerifyDebugSerialIr = 83
,
slang::NoCodeGen = 84
, slang::FileSystem = 85
, slang::Heterogeneous = 86
, slang::NoMangle = 87
,
slang::NoHLSLBinding = 88
, slang::NoHLSLPackConstantBufferElements = 89
, slang::ValidateUniformity = 90
, slang::AllowGLSL = 91
,
slang::EnableExperimentalPasses = 92
, slang::BindlessSpaceIndex = 93
, slang::SPIRVResourceHeapStride = 94
, slang::SPIRVSamplerHeapStride = 95
,
slang::ArchiveType = 96
, slang::CompileCoreModule = 97
, slang::Doc = 98
, slang::IrCompression = 99
,
slang::LoadCoreModule = 100
, slang::ReferenceModule = 101
, slang::SaveCoreModule = 102
, slang::SaveCoreModuleBinSource = 103
,
slang::TrackLiveness = 104
, slang::LoopInversion = 105
, slang::ParameterBlocksUseRegisterSpaces = 106
, slang::LanguageVersion = 107
,
slang::TypeConformance = 108
, slang::EnableExperimentalDynamicDispatch = 109
, slang::EmitReflectionJSON = 110
, slang::CountOfParsableOptions = 111
,
slang::DebugInformationFormat = 112
, slang::VulkanBindShiftAll = 113
, slang::GenerateWholeProgram = 114
, slang::UseUpToDateBinaryModule = 115
,
slang::EmbedDownstreamIR = 116
, slang::ForceDXLayout = 117
, slang::EmitSpirvMethod = 118
, slang::SaveGLSLModuleBinSource = 119
,
slang::SkipDownstreamLinking = 120
, slang::DumpModule = 121
, slang::GetModuleInfo = 122
, slang::GetSupportedModuleVersions = 123
,
slang::EmitSeparateDebug = 124
, slang::DenormalModeFp16 = 125
, slang::DenormalModeFp32 = 126
, slang::DenormalModeFp64 = 127
,
slang::UseMSVCStyleBitfieldPacking = 128
, slang::ForceCLayout = 129
, slang::ExperimentalFeature = 130
, slang::ReportDetailedPerfBenchmark = 131
,
slang::ValidateIRDetailed = 132
, slang::DumpIRBefore = 133
, slang::DumpIRAfter = 134
, slang::EmitCPUMethod = 135
,
slang::EmitCPUViaCPP = 136
, slang::EmitCPUViaLLVM = 137
, slang::LLVMTargetTriple = 138
, slang::LLVMCPU = 139
,
slang::LLVMFeatures = 140
, slang::EnableRichDiagnostics = 141
, slang::ReportDynamicDispatchSites = 142
, slang::EnableMachineReadableDiagnostics = 143
,
slang::DiagnosticColor = 144
, slang::TraceCoverage = 145
, slang::TraceCoverageBinding
, slang::TraceCoverageReservedSpace
,
slang::CountOf
} |
| |
| enum class | slang::CompilerOptionValueKind { slang::Int = 0
, slang::String = 1
} |
| |
| enum | SlangPathType : SlangPathTypeIntegral { SLANG_PATH_TYPE_DIRECTORY = 0
, SLANG_PATH_TYPE_FILE = 1
} |
| |
| enum class | OSPathKind : uint8_t { None = 0
, Direct = 1
, OperatingSystem = 2
} |
| |
| enum class | PathKind {
Simplified = 0
, Canonical = 1
, Display = 2
, OperatingSystem = 3
,
CountOf
} |
| |
| enum | SlangWriterChannel : SlangWriterChannelIntegral { SLANG_WRITER_CHANNEL_DIAGNOSTIC = 0
, SLANG_WRITER_CHANNEL_STD_OUTPUT = 1
, SLANG_WRITER_CHANNEL_STD_ERROR = 2
, SLANG_WRITER_CHANNEL_COUNT_OF
} |
| |
| enum | SlangWriterMode : SlangWriterModeIntegral { SLANG_WRITER_MODE_TEXT = 0
, SLANG_WRITER_MODE_BINARY = 1
} |
| |
| enum | SlangReflectionGenericArgType { SLANG_GENERIC_ARG_TYPE = 0
, SLANG_GENERIC_ARG_INT = 1
, SLANG_GENERIC_ARG_BOOL = 2
} |
| |
| enum | SlangTypeKind : SlangTypeKindIntegral {
SLANG_TYPE_KIND_NONE = 0
, SLANG_TYPE_KIND_STRUCT = 1
, SLANG_TYPE_KIND_ARRAY = 2
, SLANG_TYPE_KIND_MATRIX = 3
,
SLANG_TYPE_KIND_VECTOR = 4
, SLANG_TYPE_KIND_SCALAR = 5
, SLANG_TYPE_KIND_CONSTANT_BUFFER = 6
, SLANG_TYPE_KIND_RESOURCE = 7
,
SLANG_TYPE_KIND_SAMPLER_STATE = 8
, SLANG_TYPE_KIND_TEXTURE_BUFFER = 9
, SLANG_TYPE_KIND_SHADER_STORAGE_BUFFER = 10
, SLANG_TYPE_KIND_PARAMETER_BLOCK = 11
,
SLANG_TYPE_KIND_GENERIC_TYPE_PARAMETER = 12
, SLANG_TYPE_KIND_INTERFACE = 13
, SLANG_TYPE_KIND_OUTPUT_STREAM = 14
, SLANG_TYPE_KIND_MESH_OUTPUT = 15
,
SLANG_TYPE_KIND_SPECIALIZED = 16
, SLANG_TYPE_KIND_FEEDBACK = 17
, SLANG_TYPE_KIND_POINTER = 18
, SLANG_TYPE_KIND_DYNAMIC_RESOURCE = 19
,
SLANG_TYPE_KIND_ENUM = 20
, SLANG_TYPE_KIND_COUNT
} |
| |
| enum | SlangScalarType : SlangScalarTypeIntegral {
SLANG_SCALAR_TYPE_NONE = 0
, SLANG_SCALAR_TYPE_VOID = 1
, SLANG_SCALAR_TYPE_BOOL = 2
, SLANG_SCALAR_TYPE_INT32 = 3
,
SLANG_SCALAR_TYPE_UINT32 = 4
, SLANG_SCALAR_TYPE_INT64 = 5
, SLANG_SCALAR_TYPE_UINT64 = 6
, SLANG_SCALAR_TYPE_FLOAT16 = 7
,
SLANG_SCALAR_TYPE_FLOAT32 = 8
, SLANG_SCALAR_TYPE_FLOAT64 = 9
, SLANG_SCALAR_TYPE_INT8 = 10
, SLANG_SCALAR_TYPE_UINT8 = 11
,
SLANG_SCALAR_TYPE_INT16 = 12
, SLANG_SCALAR_TYPE_UINT16 = 13
, SLANG_SCALAR_TYPE_INTPTR = 14
, SLANG_SCALAR_TYPE_UINTPTR = 15
,
SLANG_SCALAR_TYPE_BFLOAT16 = 16
, SLANG_SCALAR_TYPE_FLOAT_E4M3 = 17
, SLANG_SCALAR_TYPE_FLOAT_E5M2 = 18
} |
| |
| enum | SlangDeclKind : SlangDeclKindIntegral {
SLANG_DECL_KIND_UNSUPPORTED_FOR_REFLECTION = 0
, SLANG_DECL_KIND_STRUCT = 1
, SLANG_DECL_KIND_FUNC = 2
, SLANG_DECL_KIND_MODULE = 3
,
SLANG_DECL_KIND_GENERIC = 4
, SLANG_DECL_KIND_VARIABLE = 5
, SLANG_DECL_KIND_NAMESPACE = 6
, SLANG_DECL_KIND_ENUM = 7
} |
| |
| enum | SlangResourceShape : SlangResourceShapeIntegral {
SLANG_RESOURCE_BASE_SHAPE_MASK = 0x0F
, SLANG_RESOURCE_NONE = 0x00
, SLANG_TEXTURE_1D = 0x01
, SLANG_TEXTURE_2D = 0x02
,
SLANG_TEXTURE_3D = 0x03
, SLANG_TEXTURE_CUBE = 0x04
, SLANG_TEXTURE_BUFFER = 0x05
, SLANG_STRUCTURED_BUFFER = 0x06
,
SLANG_BYTE_ADDRESS_BUFFER = 0x07
, SLANG_RESOURCE_UNKNOWN = 0x08
, SLANG_ACCELERATION_STRUCTURE = 0x09
, SLANG_TEXTURE_SUBPASS = 0x0A
,
SLANG_RESOURCE_EXT_SHAPE_MASK = 0x1F0
, SLANG_TEXTURE_FEEDBACK_FLAG = 0x10
, SLANG_TEXTURE_SHADOW_FLAG = 0x20
, SLANG_TEXTURE_ARRAY_FLAG = 0x40
,
SLANG_TEXTURE_MULTISAMPLE_FLAG = 0x80
, SLANG_TEXTURE_COMBINED_FLAG = 0x100
, SLANG_TEXTURE_1D_ARRAY = SLANG_TEXTURE_1D | SLANG_TEXTURE_ARRAY_FLAG
, SLANG_TEXTURE_2D_ARRAY = SLANG_TEXTURE_2D | SLANG_TEXTURE_ARRAY_FLAG
,
SLANG_TEXTURE_CUBE_ARRAY = SLANG_TEXTURE_CUBE | SLANG_TEXTURE_ARRAY_FLAG
, SLANG_TEXTURE_2D_MULTISAMPLE = SLANG_TEXTURE_2D | SLANG_TEXTURE_MULTISAMPLE_FLAG
, SLANG_TEXTURE_2D_MULTISAMPLE_ARRAY
, SLANG_TEXTURE_SUBPASS_MULTISAMPLE = SLANG_TEXTURE_SUBPASS | SLANG_TEXTURE_MULTISAMPLE_FLAG
} |
| |
| enum | SlangResourceAccess : SlangResourceAccessIntegral {
SLANG_RESOURCE_ACCESS_NONE = 0
, SLANG_RESOURCE_ACCESS_READ = 1
, SLANG_RESOURCE_ACCESS_READ_WRITE = 2
, SLANG_RESOURCE_ACCESS_RASTER_ORDERED = 3
,
SLANG_RESOURCE_ACCESS_APPEND = 4
, SLANG_RESOURCE_ACCESS_CONSUME = 5
, SLANG_RESOURCE_ACCESS_WRITE = 6
, SLANG_RESOURCE_ACCESS_FEEDBACK = 7
,
SLANG_RESOURCE_ACCESS_UNKNOWN = 0x7FFFFFFF
} |
| |
| enum | SlangParameterCategory : SlangParameterCategoryIntegral {
SLANG_PARAMETER_CATEGORY_NONE = 0
, SLANG_PARAMETER_CATEGORY_MIXED = 1
, SLANG_PARAMETER_CATEGORY_CONSTANT_BUFFER = 2
, SLANG_PARAMETER_CATEGORY_SHADER_RESOURCE = 3
,
SLANG_PARAMETER_CATEGORY_UNORDERED_ACCESS = 4
, SLANG_PARAMETER_CATEGORY_VARYING_INPUT = 5
, SLANG_PARAMETER_CATEGORY_VARYING_OUTPUT = 6
, SLANG_PARAMETER_CATEGORY_SAMPLER_STATE = 7
,
SLANG_PARAMETER_CATEGORY_UNIFORM = 8
, SLANG_PARAMETER_CATEGORY_DESCRIPTOR_TABLE_SLOT = 9
, SLANG_PARAMETER_CATEGORY_SPECIALIZATION_CONSTANT = 10
, SLANG_PARAMETER_CATEGORY_PUSH_CONSTANT_BUFFER = 11
,
SLANG_PARAMETER_CATEGORY_REGISTER_SPACE = 12
, SLANG_PARAMETER_CATEGORY_GENERIC = 13
, SLANG_PARAMETER_CATEGORY_RAY_PAYLOAD = 14
, SLANG_PARAMETER_CATEGORY_HIT_ATTRIBUTES = 15
,
SLANG_PARAMETER_CATEGORY_CALLABLE_PAYLOAD = 16
, SLANG_PARAMETER_CATEGORY_SHADER_RECORD = 17
, SLANG_PARAMETER_CATEGORY_EXISTENTIAL_TYPE_PARAM = 18
, SLANG_PARAMETER_CATEGORY_EXISTENTIAL_OBJECT_PARAM = 19
,
SLANG_PARAMETER_CATEGORY_SUB_ELEMENT_REGISTER_SPACE = 20
, SLANG_PARAMETER_CATEGORY_SUBPASS = 21
, SLANG_PARAMETER_CATEGORY_METAL_ARGUMENT_BUFFER_ELEMENT = 22
, SLANG_PARAMETER_CATEGORY_METAL_ATTRIBUTE = 23
,
SLANG_PARAMETER_CATEGORY_METAL_PAYLOAD = 24
, SLANG_PARAMETER_CATEGORY_COUNT
, SLANG_PARAMETER_CATEGORY_METAL_BUFFER = SLANG_PARAMETER_CATEGORY_CONSTANT_BUFFER
, SLANG_PARAMETER_CATEGORY_METAL_TEXTURE = SLANG_PARAMETER_CATEGORY_SHADER_RESOURCE
,
SLANG_PARAMETER_CATEGORY_METAL_SAMPLER = SLANG_PARAMETER_CATEGORY_SAMPLER_STATE
, SLANG_PARAMETER_CATEGORY_VERTEX_INPUT = SLANG_PARAMETER_CATEGORY_VARYING_INPUT
, SLANG_PARAMETER_CATEGORY_FRAGMENT_OUTPUT = SLANG_PARAMETER_CATEGORY_VARYING_OUTPUT
, SLANG_PARAMETER_CATEGORY_COUNT_V1 = SLANG_PARAMETER_CATEGORY_SUBPASS
} |
| |
| enum | SlangBindingType : SlangBindingTypeIntegral {
SLANG_BINDING_TYPE_UNKNOWN = 0
, SLANG_BINDING_TYPE_SAMPLER = 1
, SLANG_BINDING_TYPE_TEXTURE = 2
, SLANG_BINDING_TYPE_CONSTANT_BUFFER = 3
,
SLANG_BINDING_TYPE_PARAMETER_BLOCK = 4
, SLANG_BINDING_TYPE_TYPED_BUFFER = 5
, SLANG_BINDING_TYPE_RAW_BUFFER = 6
, SLANG_BINDING_TYPE_COMBINED_TEXTURE_SAMPLER = 7
,
SLANG_BINDING_TYPE_INPUT_RENDER_TARGET = 8
, SLANG_BINDING_TYPE_INLINE_UNIFORM_DATA = 9
, SLANG_BINDING_TYPE_RAY_TRACING_ACCELERATION_STRUCTURE = 10
, SLANG_BINDING_TYPE_VARYING_INPUT = 11
,
SLANG_BINDING_TYPE_VARYING_OUTPUT = 12
, SLANG_BINDING_TYPE_EXISTENTIAL_VALUE = 13
, SLANG_BINDING_TYPE_PUSH_CONSTANT = 14
, SLANG_BINDING_TYPE_MUTABLE_FLAG = 0x100
,
SLANG_BINDING_TYPE_MUTABLE_TETURE
, SLANG_BINDING_TYPE_MUTABLE_TYPED_BUFFER
, SLANG_BINDING_TYPE_MUTABLE_RAW_BUFFER
, SLANG_BINDING_TYPE_BASE_MASK = 0x00FF
,
SLANG_BINDING_TYPE_EXT_MASK = 0xFF00
} |
| |
| enum | SlangLayoutRules : SlangLayoutRulesIntegral { SLANG_LAYOUT_RULES_DEFAULT = 0
, SLANG_LAYOUT_RULES_METAL_ARGUMENT_BUFFER_TIER_2 = 1
, SLANG_LAYOUT_RULES_DEFAULT_STRUCTURED_BUFFER = 2
, SLANG_LAYOUT_RULES_DEFAULT_CONSTANT_BUFFER = 3
} |
| |
| enum | SlangModifierID : SlangModifierIDIntegral {
SLANG_MODIFIER_SHARED = 0
, SLANG_MODIFIER_NO_DIFF = 1
, SLANG_MODIFIER_STATIC = 2
, SLANG_MODIFIER_CONST = 3
,
SLANG_MODIFIER_EXPORT = 4
, SLANG_MODIFIER_EXTERN = 5
, SLANG_MODIFIER_DIFFERENTIABLE = 6
, SLANG_MODIFIER_MUTATING = 7
,
SLANG_MODIFIER_IN = 8
, SLANG_MODIFIER_OUT = 9
, SLANG_MODIFIER_INOUT = 10
} |
| |
| enum | SlangImageFormat : SlangImageFormatIntegral |
| |
The Slang API provides services to compile, reflect, and specialize code written in the Slang shading language.
A result code for a Slang API operation.
This type is generally compatible with the Windows API HRESULT type. In particular, negative values indicate failure results, while zero or positive results indicate success.
In general, Slang APIs always return a zero result on success, unless documented otherwise. Strictly speaking a negative value indicates an error, a positive (or 0) value indicates success. This can be tested for with the macros SLANG_SUCCEEDED(x) or SLANG_FAILED(x).
It can represent if the call was successful or not. It can also specify in an extensible manner what facility produced the result (as the integral 'facility') as well as what caused it (as an integral 'code'). Under the covers SlangResult is represented as a int32_t.
SlangResult is designed to be compatible with COM HRESULT.
It's layout in bits is as follows
| Severity | Facility | Code |
| 31 | 30-16 | 15-0 |
Severity - 1 fail, 0 is success - as SlangResult is signed 32 bits, means negative number indicates failure. Facility is where the error originated from. Code is the code specific to the facility.
Result codes have the following styles, 1) SLANG_name 2) SLANG_s_f_name 3) SLANG_s_name
where s is S for success, E for error f is the short version of the facility name
Style 1 is reserved for SLANG_OK and SLANG_FAIL as they are so commonly used.
It is acceptable to expand 'f' to a longer name to differentiate a name or drop if unique without it. ie for a facility 'DRIVER' it might make sense to have an error of the form SLANG_E_DRIVER_OUT_OF_MEMORY