[Mesa-dev] [PATCH] Revert "glsl: warning: pragma `invariant(all)' not supported in GLSL ES 1.00"

Kenneth Graunke kenneth at whitecape.org
Tue Jul 31 10:53:11 PDT 2012

On 07/31/2012 08:41 AM, Eric Anholt wrote:
> Kenneth Graunke <kenneth at whitecape.org> writes:
>> This reverts commit e72f20641a6ea7875b6021aac13e778ada3b3d50.
>> The commit has two problems:
>> - The commit message itself quotes language from the GLSL ES 1.00
>>   specification that indicates that it /does/ support the invariant(all)
>>   pragma.  This appears to be the opposite of what the commit actually
>>   does.
>> - The check is wrong: state->Const.GLSL_100ES is set if the driver
>>   supports GLSL ES 1.00, but doesn't mean that the language version
>>   being parsed actually /is/ ES.  state->language_version == 100 is the
>>   right way to do that.
>> Cc: Oliver McFadden <oliver.mcfadden at linux.intel.com>
>> Cc: Eric Anholt <eric at anholt.net>
>> ---
>>  src/glsl/glsl_parser.yy | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>> Am I just missing something here?  I read through the commit several times
>> trying to figure out what it was trying to do...it really seems to claim
>>  #pragma invariant(all) is NOT supported, while quoting spec text that
>> explicitly says it IS supported.  I'm confused.
> Huh?  While the usage of Const is definitely wrong and I should have
> caught it, the commit was trying to make the error no longer occur when
> compiling an ES shader, and the logic looks reasonable for that.

Oh!  I completely read this backwards...sorry.  Knew I was missing

The thing that confused me was the subject line:
glsl: warning: pragma `invariant(all)' not supported in GLSL ES 1.00"

which I interpreted as a claim that invariant(all) /isn't/ supported in
ES...but it's not.  It's actually a cut and paste of the warning the
GLSL compiler printed but which the patch removed for ES.

I've pushed a different patch instead, one which changes the logic to:

if (state->language_version == 110) {
   ...emit "pragma not supported" warning...
} else {
   ...actually do it

Sorry for the trouble.

More information about the mesa-dev mailing list