KhronosGroup / KhronosGroup/glslang

Allowed types for specialization constants

Open
#3,964 7 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
3.6k
Forks
989
Avg merge
1d 2h
Merged PRs (30d)
31

Description

The GLSL extension `GL_KHR_vulkan_glsl` says that specialization constants can only be used with scalar `int`, `float` or `bool`.

On the other hand, glslang compiles shaders with specialization constants whose type is any unsigned/signed integer variant of any size, or double.

Which types are actually allowed?

Contributor guide

Open the contributing guide

Research direction

Start by reading the GL_KHR_vulkan_glsl specialization-constant rule and comparing it with the types glslang currently compiles. Determine which behavior is intended, then identify whether the resolution requires aligning the compiler or clarifying the extension; done means the allowed types and resulting behavior are unambiguous.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
compilers
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.