khronosgroup/glslang

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

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 17 minutes ago
Added to GitGenius on September 19th, 2026
Created on June 25th, 2015
Open Issues & Pull Requests: 404 (+0)
GitHub issues: Enabled
Number of forks: 990
Total Stargazers: 3,587 (+0)
Total Subscribers: 115 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 30.4 hours
Mean response time: 109.7 days
90th percentile: 210.2 days
Tracked items: 236

Most active contributors

Sign in to see contributor activity.

How this project is maintained

Roughly one issue in four opened in the past year never receives a reply. 99% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Work labelled "ShaderDebugInfo" is answered fastest, typically in about 3 hours, while "Descriptor Heaps" waits about 11 days. 69% of tracked open issues have had no activity in three months, so the open count overstates what is actively being worked. Only 42% of issues opened in the past year have been closed.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 118
New in 7 days: 1
Closed in 7 days: 6
Avg open age: 651 days
Stale 30+ days: 103
Stale 90+ days: 89

Recent activity

Opened in 7 days: 1
Closed in 7 days: 6
Comments in 7 days: 0
Events in 7 days: 1

Top labels

  • bug (70)
  • GLSL/ESSL (49)
  • SPIR-V (43)
  • enhancement (32)
  • question (26)
  • Descriptor Heaps (17)
  • Infrastructure (15)
  • ShaderDebugInfo (15)

Detailed Description

Glslang is a compiler and validator that serves as the Khronos-reference front end for GLSL and ESSL shader languages, with partial support for HLSL and a SPIR-V code generator.

The tool addresses the need to validate shader code and translate it into intermediate representations for graphics pipelines. It parses GLSL and ESSL source code into an abstract syntax tree, which can then be translated to SPIR-V, Khronos's standardized intermediate language. The GLSL and ESSL front ends are feature-complete and carry the weight of official specifications. The AST-to-SPIR-V back end is also virtually complete. A reflector component provides APIs for extracting reflection information about types and variables from the parsed shader source.

Developers should adopt glslang if they need authoritative validation of GLSL or ESSL shaders or require compilation to SPIR-V for use in graphics applications. It is the reference implementation maintained by Khronos and is suitable for projects that depend on standards-compliant shader compilation. The HLSL front end is deprecated and will be removed at the next major version, so projects requiring HLSL support should plan migration or maintain a fork. The tool can be used as a command-line utility or integrated as a library, and building it as a shared library or DLL is now supported.

The project maintains continuous integration and deployment pipelines. Development activity includes ongoing refinement of binding control options, such as the recent separation of texture and combined sampler binding shifts. Certain utilities have been migrated to related Khronos projects, such as the spirv-remap functionality moving to SPIRV-Tools as an optimization pass. The reflector component remains a work in progress without a formal specification to measure against, though it accurately reflects the input source and AST.