[Mesa-dev] glsl es question: invalid pragma debug argument

Matt Turner mattst88 at gmail.com
Mon Nov 24 11:04:07 PST 2014


On Mon, Nov 24, 2014 at 2:13 AM, Samuel Iglesias Gonsálvez
<siglesias at igalia.com> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Hello,
>
> I found a GLSL ES test that provides an invalid argument to #pragma
> debug() such as:
>
>     #pragma debug (1.23)
>
> And it expects a compilation error. Mesa doesn't complain about it,
> just ignore the whole thing. The allowed keywords are 'on' and 'off'
> for that pragma.
>
> - From GLSL ES 3.00 spec, chapter 3.4 (Preprocessor), page 12:
>
>        "#pragma allows implementation dependent compiler control.
>        Tokens following #pragma are not subject to preprocessor macro
>        expansion. If an implementation does not recognize the tokens
>        following #pragma, then it will ignore that pragma. [...] The
>        debug pragma
>           #pragma debug(on)
>           #pragma debug(off)
>        can be used to enable compiling and annotating a shader with
>        debug information, so that it can be used with a debugger. It
>        can only be used outside function definitions. By default, debug
>        is turned off.
>        The scope as well as the effect of the optimize and debug
>        pragmas is implementation-dependent except that their use must
>        not generate an error."
>
> So, from the spec, I understand that Mesa is doing the right thing but
> I would like to have a confirmation because it is a valid pragma but
> with wrong argument.

I think you're correct that Mesa is doing the right thing. The spec
seems pretty black-and-white to me.


More information about the mesa-dev mailing list