[Mesa-dev] [PATCH 1/3] mesa: Add support for the ARB_fragment_program part of ARB_draw_buffers.

Alex Deucher alexdeucher at gmail.com
Wed Apr 13 16:25:55 PDT 2011


On Wed, Apr 13, 2011 at 7:23 PM, Ian Romanick <idr at freedesktop.org> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> On 04/13/2011 12:27 PM, Eric Anholt wrote:
>> Fixes fbo-drawbuffers-arbfp.
>>
>> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=34321
>
> I've been using References: for this lately, and I think Chris has too.
>  I don't care which we use, but I want to use just one.  It make
> grepping through 'git log' a lot easier.  What do people typically do in
> the kernel?  I didn't see anything in Documentation/SubmittingPatches.
>

I usually use "Fixes:" but I haven't seen anything consistent.

Alex

> Aside from the comment about the comments in 2/3,
>
> Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
>
>> ---
>>  src/mesa/program/program_parse.y  |   29 +++++++++++++++++++++++++++++
>>  src/mesa/program/program_parser.h |    1 +
>>  2 files changed, 30 insertions(+), 0 deletions(-)
>>
>> diff --git a/src/mesa/program/program_parse.y b/src/mesa/program/program_parse.y
>> index 19aa8cc..b35bc5a 100644
>> --- a/src/mesa/program/program_parse.y
>> +++ b/src/mesa/program/program_parse.y
>> @@ -2064,6 +2064,34 @@ optResultFaceType:
>>             ? VERT_RESULT_COL0
>>             : FRAG_RESULT_COLOR;
>>       }
>> +     | '[' INTEGER ']'
>> +     {
>> +        if (state->mode == ARB_vertex) {
>> +           yyerror(& @1, state, "invalid program result name");
>> +           YYERROR;
>> +        } else {
>> +           if (!state->option.DrawBuffers) {
>> +              /* From the ARB_draw_buffers spec (same text exists
>> +               * for ATI_draw_buffers):
>> +               *
>> +               *     If this option is not specified, a fragment
>> +               *     program that attempts to bind
>> +               *     "result.color[n]" will fail to load, and only
>> +               *     "result.color" will be allowed.
>> +               */
>> +              yyerror(& @1, state,
>> +                      "result.color[] used without "
>> +                      "`OPTION ARB_draw_buffers' or "
>> +                      "`OPTION ATI_draw_buffers'");
>> +              YYERROR;
>> +           } else if ($2 >= state->MaxDrawBuffers) {
>> +              yyerror(& @1, state,
>> +                      "result.color[] exceeds MAX_DRAW_BUFFERS_ARB");
>> +              YYERROR;
>> +           }
>> +           $$ = FRAG_RESULT_DATA0 + $2;
>> +        }
>> +     }
>>       | FRONT
>>       {
>>          if (state->mode == ARB_vertex) {
>> @@ -2681,6 +2709,7 @@ _mesa_parse_arb_program(struct gl_context *ctx, GLenum target, const GLubyte *st
>>     state->MaxClipPlanes = ctx->Const.MaxClipPlanes;
>>     state->MaxLights = ctx->Const.MaxLights;
>>     state->MaxProgramMatrices = ctx->Const.MaxProgramMatrices;
>> +   state->MaxDrawBuffers = ctx->Const.MaxDrawBuffers;
>>
>>     state->state_param_enum = (target == GL_VERTEX_PROGRAM_ARB)
>>        ? STATE_VERTEX_PROGRAM : STATE_FRAGMENT_PROGRAM;
>> diff --git a/src/mesa/program/program_parser.h b/src/mesa/program/program_parser.h
>> index d689eef..8e5aaee 100644
>> --- a/src/mesa/program/program_parser.h
>> +++ b/src/mesa/program/program_parser.h
>> @@ -173,6 +173,7 @@ struct asm_parser_state {
>>     unsigned MaxClipPlanes;
>>     unsigned MaxLights;
>>     unsigned MaxProgramMatrices;
>> +   unsigned MaxDrawBuffers;
>>     /*@}*/
>>
>>     /**
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.11 (GNU/Linux)
> Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org/
>
> iEUEARECAAYFAk2mMHQACgkQX1gOwKyEAw/AggCgh++GLUtXq1yWgC65mxu+j9wq
> 7H0AmLUv9vV0pCkIOdF5omNkhcFeW4w=
> =BTCi
> -----END PGP SIGNATURE-----
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>


More information about the mesa-dev mailing list