linker: Assign locations for fragment shader output
authorIan Romanick <ian.d.romanick@intel.com>
Tue, 28 Jun 2011 00:59:58 +0000 (17:59 -0700)
committerIan Romanick <ian.d.romanick@intel.com>
Wed, 6 Jul 2011 23:59:34 +0000 (16:59 -0700)
commitd32d4f780f9dad122adb63086da266aec6e88850
treed564e70dc89fe5a6da43188d9898eb3cdfa1c807
parent174cef7fee7d400fc89a3ce68b7791d2aa3eb90f
linker: Assign locations for fragment shader output

Fixes an assertion failure in the piglib out-01.frag
ARB_explicit_attrib_location test.  The locations set via the layout
qualifier in fragment shader were not being applied to the shader
outputs.  As a result all of these variables still had a location of
-1 set.

This may need some more work for pre-3.0 contexts.  The problem is
dealing with generic outputs that lack a layout qualifier.  There is
no way for the application to specify a location
(glBindFragDataLocation is not supported) or query the location
assigned by the linker (glGetFragDataLocation is not supported).

NOTE: This is a candidate for the 7.10 and 7.11 branches.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=38624
Reviewed-by: Eric Anholt <eric@anholt.net>
Cc: Kenneth Graunke <kenneth@whitecape.org>
Cc: Vinson Lee <vlee@vmware.com>
src/glsl/linker.cpp