KhronosGroup / KhronosGroup/glslang
Add API-limit checking to compile/link-time testing; e.g., use maxUniformBufferRange
- Dominant language
- C++
- Stars
- 3.6k
- Forks
- 989
- Avg merge
- 1d 2h
- Merged PRs (30d)
- 31
Description
While compiling a shader with this:
> layout(set=0, binding=10, std140) uniform HLSLCC_CBh
> {
> vec4 cu_h[5141];
> };
>
I ran into an issue at runtime since maxUniformBufferRange is smaller:
Error[Driver:2] Compute info
> ------------
> (0) : error C6020: Constant register limit exceeded at cu_h; more than 1024 registers needed to compiled program
>
; there should be a way to send those limits (TBuiltInResource doesn't seem to be used) and fail to compile if the shader passes those limits.
Contributor guide
Research direction
Start by tracing the compile/link-time testing path and how TBuiltInResource is handled. Determine how limits such as maxUniformBufferRange should be supplied and checked, then add coverage showing that an oversized uniform buffer fails during compilation rather than at runtime.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- compilers
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100