Enumerations

enum (unnamed)
Name Value Comments
EBhMissing 0 --
EBhRequire 1 --
EBhEnable 2 --
EBhWarn 3 --
EBhDisable 4 --
EBhDisablePartial 5

use as initial state of an extension that is only partially implemented

The behaviors from the GLSL "#extension extension_name : behavior"

Defined at line 101 of file ../../third_party/glslang/src/glslang/Public/../MachineIndependent/Versions.h

enum (unnamed)
Name Value Comments
EShSourceNone 0 --
EShSourceGlsl 1

GLSL, includes ESSL (OpenGL ES GLSL)

EShSourceHlsl 2

HLSL

EShSourceCount 3 --

Defined at line 133 of file ../../third_party/glslang/src/glslang/Public/ShaderLang.h

enum (unnamed)
Name Value Comments
EShClientNone 0

use when there is no client, e.g. for validation

EShClientVulkan 1

as GLSL dialect, specifies KHR_vulkan_glsl extension

EShClientOpenGL 2

as GLSL dialect, specifies ARB_gl_spirv extension

EShClientCount 3 --

Defined at line 140 of file ../../third_party/glslang/src/glslang/Public/ShaderLang.h

enum (unnamed)
Name Value Comments
EShTargetNone 0 --
EShTargetSpv 1

SPIR-V (preferred spelling)

EshTargetSpv EShTargetSpv

legacy spelling

EShTargetCount 2 --

Defined at line 147 of file ../../third_party/glslang/src/glslang/Public/ShaderLang.h

enum (unnamed)
Name Value Comments
EShTargetVulkan_1_0 (1 << 22)

Vulkan 1.0

EShTargetVulkan_1_1 (1 << 22) | (1 << 12)

Vulkan 1.1

EShTargetVulkan_1_2 (1 << 22) | (2 << 12)

Vulkan 1.2

EShTargetVulkan_1_3 (1 << 22) | (3 << 12)

Vulkan 1.3

EShTargetVulkan_1_4 (1 << 22) | (4 << 12)

Vulkan 1.4

EShTargetOpenGL_450 450

OpenGL

EShTargetClientVersionCount 6 --

Defined at line 154 of file ../../third_party/glslang/src/glslang/Public/ShaderLang.h

enum (unnamed)
Name Value Comments
EShTargetSpv_1_0 (1 << 16)

SPIR-V 1.0

EShTargetSpv_1_1 (1 << 16) | (1 << 8)

SPIR-V 1.1

EShTargetSpv_1_2 (1 << 16) | (2 << 8)

SPIR-V 1.2

EShTargetSpv_1_3 (1 << 16) | (3 << 8)

SPIR-V 1.3

EShTargetSpv_1_4 (1 << 16) | (4 << 8)

SPIR-V 1.4

EShTargetSpv_1_5 (1 << 16) | (5 << 8)

SPIR-V 1.5

EShTargetSpv_1_6 (1 << 16) | (6 << 8)

SPIR-V 1.6

EShTargetLanguageVersionCount 7 --

Defined at line 166 of file ../../third_party/glslang/src/glslang/Public/ShaderLang.h

enum TLayoutPacking
Name Value Comments
ElpNone 0 --
ElpShared 1

default, but different than saying nothing

ElpStd140 2 --
ElpStd430 3 --
ElpPacked 4 --
ElpScalar 5 --
ElpCount 6

If expanding, see bitfield width below

Following are a series of helper enums for managing layouts and qualifiers,

used for TPublicType, TType, others.

Defined at line 182 of file ../../third_party/glslang/src/glslang/Public/ShaderLang.h

enum TResourceType
Name Value
EResSampler 0
EResTexture 1
EResImage 2
EResUbo 3
EResSsbo 4
EResUav 5
EResCount 6

Resource type for IO resolver

Defined at line 429 of file ../../third_party/glslang/src/glslang/Public/ShaderLang.h

enum TBlockStorageClass
Name Value Comments
EbsUniform 0 --
EbsStorageBuffer 1 --
EbsPushConstant 2 --
EbsNone 3

not a uniform or buffer variable

EbsCount 4 --

Defined at line 439 of file ../../third_party/glslang/src/glslang/Public/ShaderLang.h

Records

Functions

  • const char * ProfileName (EProfile profile)

    Map from profile enum to externally readable text name.

    Defined at line 70 of file ../../third_party/glslang/src/glslang/Public/../MachineIndependent/Versions.h

  • const char * StageName (EShLanguage )
  • Version GetVersion ()
  • const char * GetEsslVersionString ()
  • const char * GetGlslVersionString ()
  • int GetKhronosToolId ()
  • bool InitializeProcess ()

    Call this exactly once per process before using anything else

  • void FinalizeProcess ()

    Call once per process to tear down everything

  • TIoMapper * GetGlslIoMapper ()

    Get the default GLSL IO mapper