KhronosGroup / KhronosGroup/glslang
No error message given
- 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
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