[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
Sat Jun 16 01:01:33 UTC 2018
https://bugs.freedesktop.org/show_bug.cgi?id=106915
--- Comment #1 from Ian Romanick <idr at freedesktop.org> ---
(In reply to Eleni Maria Stea from comment #0)
> From GLSLang Spec 4.60 Section 4.2 Scoping:
Please refer to this as the "OpenGL Shading Language specification". GLSLang
is a particular implementation of the GLSL specification.
> "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)."
I think we should submit a spec bug for this. There is explicit language in
the spec that says that only the last member of an SSBO may be declared without
a size. See issue #2 in the ARB_shader_storage_buffer_object spec.
> 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 QA Contact for the bug.
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180616/d330cc9a/attachment.html>
More information about the mesa-dev
mailing list