[Mesa-dev] [PATCH] i965: Avoid recompiles for fragment clamping on non-clamping APIs.

Marek Olšák maraeo at gmail.com
Wed Apr 24 07:45:30 PDT 2013


Not only was the fragment and vertex color clamping deprecated, it was
also *removed* from the core API, but if you expose
ARB_color_buffer_float, you add all the removed functionality back.

If you want to avoid recompiles entirely, set:

ctx->Extensions.ARB_color_buffer_float = ctx->API == API_OPENGL_COMPAT;

Then, core Mesa will never set _ClampFragmentColor and
_ClampVertexColor to TRUE.

Marek


On Fri, Apr 19, 2013 at 7:54 PM, Eric Anholt <eric at anholt.net> wrote:
> Removes 75/78 state-dependent recompiles in GLB2.7 (the remaining 3 are
> due to FBO-rendering size predictions).
> ---
>  src/mesa/drivers/dri/i965/brw_fs.cpp |    2 +-
>  src/mesa/drivers/dri/i965/brw_vs.c   |    2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
> index 5f659b1..66e78d0 100644
> --- a/src/mesa/drivers/dri/i965/brw_fs.cpp
> +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
> @@ -3153,7 +3153,7 @@ brw_fs_precompile(struct gl_context *ctx, struct gl_shader_program *prog)
>        }
>     }
>
> -   key.clamp_fragment_color = true;
> +   key.clamp_fragment_color = ctx->API == API_OPENGL_COMPAT;
>
>     for (int i = 0; i < MAX_SAMPLERS; i++) {
>        if (fp->Base.ShadowSamplers & (1 << i)) {
> diff --git a/src/mesa/drivers/dri/i965/brw_vs.c b/src/mesa/drivers/dri/i965/brw_vs.c
> index 998edb0..6eb916e 100644
> --- a/src/mesa/drivers/dri/i965/brw_vs.c
> +++ b/src/mesa/drivers/dri/i965/brw_vs.c
> @@ -564,7 +564,7 @@ brw_vs_precompile(struct gl_context *ctx, struct gl_shader_program *prog)
>     memset(&key, 0, sizeof(key));
>
>     key.base.program_string_id = bvp->id;
> -   key.base.clamp_vertex_color = true;
> +   key.base.clamp_vertex_color = ctx->API == API_OPENGL_COMPAT;
>
>     for (int i = 0; i < MAX_SAMPLERS; i++) {
>        if (vp->Base.ShadowSamplers & (1 << i)) {
> --
> 1.7.10.4
>
> _______________________________________________
> 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