[Mesa-dev] [PATCH 2/2] radeonsi: Compile dummy pixel shader on demand

Marek Olšák maraeo at gmail.com
Mon Sep 1 03:08:05 PDT 2014


On Wed, Aug 27, 2014 at 10:57 AM, Michel Dänzer <michel at daenzer.net> wrote:
> From: Michel Dänzer <michel.daenzer at amd.com>
>
> It's never used under normal circumstances.
>
> Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
> ---
>  src/gallium/drivers/radeonsi/si_pipe.c  |  7 -------
>  src/gallium/drivers/radeonsi/si_state.c | 11 ++++++++++-
>  2 files changed, 10 insertions(+), 8 deletions(-)
>
> diff --git a/src/gallium/drivers/radeonsi/si_pipe.c b/src/gallium/drivers/radeonsi/si_pipe.c
> index ae1d043..f39529a 100644
> --- a/src/gallium/drivers/radeonsi/si_pipe.c
> +++ b/src/gallium/drivers/radeonsi/si_pipe.c
> @@ -27,7 +27,6 @@
>
>  #include "radeon/radeon_uvd.h"
>  #include "util/u_memory.h"
> -#include "util/u_simple_shaders.h"
>  #include "vl/vl_decoder.h"
>
>  /*
> @@ -129,12 +128,6 @@ static struct pipe_context *si_create_context(struct pipe_screen *screen, void *
>                 goto fail;
>         sctx->blitter->draw_rectangle = r600_draw_rectangle;
>
> -       sctx->dummy_pixel_shader =
> -               util_make_fragment_cloneinput_shader(&sctx->b.b, 0,
> -                                                    TGSI_SEMANTIC_GENERIC,
> -                                                    TGSI_INTERPOLATE_CONSTANT);
> -       sctx->b.b.bind_fs_state(&sctx->b.b, sctx->dummy_pixel_shader);

This removes binding the dummy shader at context creation, but I don't
remember if it is still needed. Hopefully not.

For the series:

Reviewed-by: Marek Olšák <marek.olsak at amd.com>

Marek

> -
>         /* these must be last */
>         si_begin_new_cs(sctx);
>         r600_query_init_backend_mask(&sctx->b); /* this emits commands and must be last */
> diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c
> index 6fcb14b..e06a4ac 100644
> --- a/src/gallium/drivers/radeonsi/si_state.c
> +++ b/src/gallium/drivers/radeonsi/si_state.c
> @@ -36,6 +36,7 @@
>  #include "util/u_framebuffer.h"
>  #include "util/u_helpers.h"
>  #include "util/u_memory.h"
> +#include "util/u_simple_shaders.h"
>
>  static void si_init_atom(struct r600_atom *atom, struct r600_atom **list_elem,
>                          void (*emit)(struct si_context *ctx, struct r600_atom *state),
> @@ -2306,8 +2307,16 @@ static void si_bind_ps_shader(struct pipe_context *ctx, void *state)
>                 return;
>
>         /* use dummy shader if supplied shader is corrupt */
> -       if (!sel || !sel->current)
> +       if (!sel || !sel->current) {
> +               if (!sctx->dummy_pixel_shader) {
> +                       sctx->dummy_pixel_shader =
> +                               util_make_fragment_cloneinput_shader(&sctx->b.b, 0,
> +                                                                    TGSI_SEMANTIC_GENERIC,
> +                                                                    TGSI_INTERPOLATE_CONSTANT);
> +               }
> +
>                 sel = sctx->dummy_pixel_shader;
> +       }
>
>         sctx->ps_shader = sel;
>  }
> --
> 2.1.0
>
> _______________________________________________
> 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