[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 20:27:21 UTC 2018


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

--- Comment #6 from Ian Romanick <idr at freedesktop.org> ---
> (In reply to Jason Ekstrand from comment #3)
> > I really hate it, but I fear they may be allowed.  From the GLSL 4.60 spec
> > in the section on UBO and SSBO layouts:
> > 
> > > The shared qualifier overrides only the std140, std430, and packed
> > > qualifiers; other qualifiers are inherited. The compiler/linker will
> > > ensure that multiple programs and programmable stages containing this
> > > definition will share the same memory layout for this block, as long
> > > as all arrays are declared with explicit sizes and all matrices have
> > > matching row_major and/or column_major qualifications (which may come
> > > from a declaration outside the block definition).

s[] is either illegal or it is implicitly sized as though it we s[1]. 
Therefore either linking fails (as we currently do) or the application gets
zero guarantees about the layout of the SSBO regardless of the declared layout
qualifiers because a different shader using the same declaration may implicitly
size s[] to a different size.

This bug is about whether s[] is a link-time error or an implicit size of 1. 
The quoted text above has absolutely nothing to do with that because it
requires that s[] be explicitly sized.

-- 
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/20180616/c3af8997/attachment.html>


More information about the mesa-dev mailing list