KhronosGroup / KhronosGroup/glslang

Add API-limit checking to compile/link-time testing; e.g., use maxUniformBufferRange

Open
#1,086 10 comments 0 reactions 0 assignees View on GitHub
enhancement Infrastructure
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.