[Mesa-dev] [PATCH 0/3] Validate IB bindings through its name, no instance
Andres Gomez
agomez at igalia.com
Thu Feb 23 08:55:40 UTC 2017
When having UBOs or SSBOs in different compilation units in the same
program, the binding point, if defined, should match or report a
linking error.
1) This program should fail on linking:
"# VS
layout(binding = 1) Block {
vec4 color;
} uni_block1;
...
# FS
layout(binding = 2) Block {
vec4 color;
} uni_block2;
..."
Currently, it doesn't.
2) However, the checking of the layout in the shader interface for
UBOs and SSBOs must be done at the Interface Block name level, not
at the instance name level. This program should succeed on linking:
"# VS
layout(binding = 1) Block1 {
vec4 color;
} uni_block;
...
# FS
layout(binding = 2) Block2 {
vec4 color;
} uni_block;
..."
Currently, it fails.
Fixes:
- GL45-CTS.enhanced_layouts.ssb_layout_qualifier_conflict
Andres Gomez (3):
glsl: on UBO/SSBOs link error, the number of active blocks remains 0
glsl: UBOs and SSBOs must match the binding qualifier too
glsl: Interface Block instances don't need linking validation
src/compiler/glsl/link_uniform_blocks.cpp | 3 +++
src/compiler/glsl/linker.cpp | 15 ++++++++++-----
2 files changed, 13 insertions(+), 5 deletions(-)
--
2.11.0
More information about the mesa-dev
mailing list