[Mesa-dev] [Bug 106915] [GLSL] Unused arrays declared without a size should be handled like arrays of size 1.

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Thu Jun 14 10:42:20 UTC 2018


https://bugs.freedesktop.org/show_bug.cgi?id=106915

            Bug ID: 106915
           Summary: [GLSL] Unused arrays declared without a size should be
                    handled like arrays of size 1.
           Product: Mesa
           Version: unspecified
          Hardware: All
                OS: All
            Status: NEW
          Severity: normal
          Priority: medium
         Component: Mesa core
          Assignee: mesa-dev at lists.freedesktop.org
          Reporter: estea at igalia.com
        QA Contact: mesa-dev at lists.freedesktop.org

>From GLSLang Spec 4.60 Section 4.2 Scoping:

"An array implicitly sized in one shader can be explicitly sized by another
shader in the same stage. If no shader in a stage has an explicit size for the
array, the largest implicit size (one more than the largest index used) in that
stage is used. There is no cross-stage array sizing. If there is no static
access to an implicitly sized array within the stage declaring it, then the
array is given a size of 1, which is relevant when the array is declared within
an interface block that is shared with other stages or the application (other
unused arrays might be eliminated by the optimizer)."

According to the paragraph above, the following piglit test should not generate
any errors as s[] would be treated as an array of size 1:

[vertex shader]
#version 150
#extension GL_ARB_shader_storage_buffer_object: require
buffer a {
        vec4 s[];
        vec4 a[];
} b;

in vec4 piglit_vertex;
out vec4 c;

void main(void) {
        c = b.a[0];

        gl_Position = piglit_vertex;
}

[test]
link error

Test:
spec/arb_shader_storage_buffer_object/linker/unsized_array_member.shader_test

but it does.

If we convert the GLSL code to SPIR-V there are no linker errors anymore since
s[] seems to have type: OpTypeArray with size 1 and the linker accepts it.

-- 
You are receiving this mail because:
You are the assignee for the bug.
You are the QA Contact for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180614/4a2d938f/attachment.html>


More information about the mesa-dev mailing list