[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