[Mesa-dev] [PATCH V2 03/12] mesa: Pass number of samples as a program state variable

Brian Paul brianp at vmware.com
Sat Oct 26 16:09:48 CEST 2013


On 10/25/2013 05:45 PM, Anuj Phogat wrote:
> Number of samples will be required in fragment shader program by new
> GLSL builtin uniform "gl_NumSamples".
>
> V2: Use "state.numsamples" in place of "state.num.samples"
>      Use _NEW_BUFFERS flag in place of _NEW_MULTISAMPLE
>
> Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
> Reviewed-by: Ian Romanick <idr at freedesktop.org>
> Reviewed-by: Ken Graunke <kenneth at whitecape.org>
> Reviewed-by: Paul Berry <stereotype441 at gmail.com>
> ---
>   src/mesa/program/prog_statevars.c | 11 +++++++++++
>   src/mesa/program/prog_statevars.h |  2 ++
>   2 files changed, 13 insertions(+)
>
> diff --git a/src/mesa/program/prog_statevars.c b/src/mesa/program/prog_statevars.c
> index 145c07c..f6fd535 100644
> --- a/src/mesa/program/prog_statevars.c
> +++ b/src/mesa/program/prog_statevars.c
> @@ -349,6 +349,9 @@ _mesa_fetch_state(struct gl_context *ctx, const gl_state_index state[],
>            }
>         }
>         return;
> +   case STATE_NUM_SAMPLES:
> +      ((int *)value)[0] = ctx->DrawBuffer->Visual.samples;
> +      return;
>      case STATE_DEPTH_RANGE:
>         value[0] = ctx->Viewport.Near;                     /* near       */
>         value[1] = ctx->Viewport.Far;                      /* far        */
> @@ -665,6 +668,9 @@ _mesa_program_state_flags(const gl_state_index state[STATE_LENGTH])
>      case STATE_PROGRAM_MATRIX:
>         return _NEW_TRACK_MATRIX;
>
> +   case STATE_NUM_SAMPLES:
> +      return _NEW_BUFFERS;
> +
>      case STATE_DEPTH_RANGE:
>         return _NEW_VIEWPORT;
>
> @@ -852,6 +858,9 @@ append_token(char *dst, gl_state_index k)
>      case STATE_TEXENV_COLOR:
>         append(dst, "texenv");
>         break;
> +   case STATE_NUM_SAMPLES:
> +      append(dst, "numsamples");
> +      break;
>      case STATE_DEPTH_RANGE:
>         append(dst, "depth.range");
>         break;
> @@ -1027,6 +1036,8 @@ _mesa_program_state_string(const gl_state_index state[STATE_LENGTH])
>         break;
>      case STATE_FOG_COLOR:
>         break;
> +   case STATE_NUM_SAMPLES:
> +      break;
>      case STATE_DEPTH_RANGE:
>         break;
>      case STATE_FRAGMENT_PROGRAM:
> diff --git a/src/mesa/program/prog_statevars.h b/src/mesa/program/prog_statevars.h
> index ec22b73..c3081c4 100644
> --- a/src/mesa/program/prog_statevars.h
> +++ b/src/mesa/program/prog_statevars.h
> @@ -103,6 +103,8 @@ typedef enum gl_state_index_ {
>
>      STATE_TEXENV_COLOR,
>
> +   STATE_NUM_SAMPLES,
> +

You might put a comment on that token to note that it's an integer, not 
a float like the other state vars.


>      STATE_DEPTH_RANGE,
>
>      STATE_VERTEX_PROGRAM,
>



More information about the mesa-dev mailing list