KhronosGroup/glslang

Public

Khronos-reference front end for GLSL/ESSL, partial front end for HLSL, and a SPIR-V generator.

  • Stars3.6k+7 tuần này
  • Forks998
  • Watchers114
  • Issues350
  • Ngày tạo26/06/2015
  • Cập nhật gần nhất29/10/2026
  • Ngôn ngữC++
  • Giấy phép—
README.md42.8 KBRaw

Continuous Integration Continuous Deployment OpenSSF Scorecard

News

  1. The HLSL front-end is deprecated as of April 2026 and will be removed at the next major version of glslang. See issue #4210 for rationale and migration guidance.

  2. The --shift-texture-binding[s] option no longer affects combined samplers. The new --shift-combined-sampler-binding[s] option should be used to control combined sampler bindings independently from separate textures. The old behavior can be achieved by setting both options to the same value.

  3. The spirv-remap utility from glslang has been ported to the SPIRV-Tools repository as a new optimization pass called canonicalize-ids, available in spirv-opt. See spirv-opt --help for usage details.

  4. Building glslang as a DLL or shared library is now possible and supported.

Glslang Components and Status

There are several components:

Reference Validator and GLSL/ESSL -> AST Front End

An OpenGL GLSL and OpenGL|ES GLSL (ESSL) front-end for reference validation and translation of GLSL/ESSL into an internal abstract syntax tree (AST).

Status: Virtually complete, with results carrying similar weight as the specifications.

HLSL -> AST Front End

An HLSL front-end for translation of an approximation of HLSL to glslang's AST form.

Status: Deprecated as of April 2026. The HLSL front-end will be removed at the next major version of glslang, with at least 18 months of notice from this announcement.

Bug reports for the HLSL front-end will no longer be accepted. Security issues will be assessed on a case-by-case basis. Projects that require continued HLSL support should maintain a fork of glslang at the tag corresponding to the deprecation announcement.

See issue #4210 for the rationale and migration guidance.

AST -> SPIR-V Back End

Translates glslang's AST to the Khronos-specified SPIR-V intermediate language.

Status: Virtually complete.

Reflector

An API for getting reflection information from the AST, reflection types/variables/etc. from the HLL source (not the SPIR-V).

Status: There is a large amount of functionality present, but no specification/goal to measure completeness against. It is accurate for the input HLL and AST, but only approximate for what would later be emitted for SPIR-V.

Nội dung README thuộc về KhronosGroup và cộng đồng đóng góp, giấy phép Không có giấy phép. Nguồn: github.com/KhronosGroup/glslang