[Mesa-dev] Anonymous structure in uniform question

Grigori Goronzy greg at chown.ath.cx
Sun Nov 24 11:43:27 PST 2013

On 21.11.2013 21:50, f.josef at email.cz wrote:
> The problem is, that each anonymous structure gets its own unique type,
> without checking if such type already exists. It seems to me, that such
> code is somewhat in the gray area - the rest of OpenGL implementations
> doesn't seem to have a problem with this code (Intel on Win, OSX, Nvidia
> and AMD drivers in Win, OSX and Linux), which of course doesn't mean
> such a behavior is correct.

This should be allowed, according to GLSL (3.3) spec and grammar. It's 
just a bug/oversight in the linker, I guess. The GLSL linker already 
includes some special handling to match array types between stages. I 
added something similar for structs, see the attached patch. It's 
probably not the nicest approach (it duplicates some code from 
glsl_types.cpp), but seems to work fine. I don't really know the GLSL 
compiler/linker code, so YMMV. :)

Best regards

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-WIP-fix-unnamed-struct-type-conflicts.patch
Type: text/x-patch
Size: 2336 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20131124/31cf6e25/attachment-0001.bin>

More information about the mesa-dev mailing list