KhronosGroup / KhronosGroup/glslang

No error message given

Open
#3,288 1 comment 0 reactions 0 assignees View on GitHub
enhancement GLSL/ESSL
Dominant language
C++
Stars
3.6k
Forks
989
Avg merge
1d 2h
Merged PRs (30d)
31

Description

When using mesh and task shaders there is an optional payload between the stages.
There can only be up to one of these payload variables per pipeline.
Glslang errors when using multiple of these variables but gives NO error message:
` GLSLANG: `
As an example:
```
struct TaskPayload{
MeshletInstance meshlet_instance;
uint meshlet_instance_index;
};
taskPayloadSharedEXT TaskPayload tps[128];
```
This is legal, compiles and works with no issue.
```
taskPayloadSharedEXT TaskPayload MeshletInstance tps_meshlet_instances[128];
taskPayloadSharedEXT TaskPayload MeshletInstance tps_meshlet_instance_indices[128];
```
This is illegal and does not compile BUT it also gives NO reason for the error.
This is quite confusing and seems like an easy fix to add an error message for this instead of not giving anything.

Contributor guide

Open the contributing guide

Research direction

Reproduce the issue with the valid and invalid taskPayloadSharedEXT shader examples using glslang. Trace the diagnostic path for multiple payload declarations, then add a specific error message and a regression test showing that the invalid example reports why compilation fails.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
compilers
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.