[Mesa-dev] [PATCH 1/2] r600g: move selecting the pixel shader earlier.
Glenn Kennard
glenn.kennard at gmail.com
Tue Jan 27 03:02:20 PST 2015
On Tue, 27 Jan 2015 04:46:32 +0100, Dave Airlie <airlied at gmail.com> wrote:
> From: Dave Airlie <airlied at redhat.com>
>
> In order to detect that a pixel shader has a prim id
> input when we have no geometry shader we need to reorder
> the shader selection so the pixel shader is selected
> first, then the vertex shader key can take into account
> the primitive id input requirement and lack of geom shader.
>
> Signed-off-by: Dave Airlie <airlied at redhat.com>
> ---
> src/gallium/drivers/r600/r600_state_common.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/src/gallium/drivers/r600/r600_state_common.c
> b/src/gallium/drivers/r600/r600_state_common.c
> index 09d8952..1030620 100644
> --- a/src/gallium/drivers/r600/r600_state_common.c
> +++ b/src/gallium/drivers/r600/r600_state_common.c
> @@ -1170,6 +1170,10 @@ static bool r600_update_derived_state(struct
> r600_context *rctx)
> }
> }
> + r600_shader_select(ctx, rctx->ps_shader, &ps_dirty);
> + if (unlikely(!rctx->ps_shader->current))
> + return false;
> +
> update_gs_block_state(rctx, rctx->gs_shader != NULL);
> if (rctx->gs_shader) {
> @@ -1232,9 +1236,6 @@ static bool r600_update_derived_state(struct
> r600_context *rctx)
> }
> }
> - r600_shader_select(ctx, rctx->ps_shader, &ps_dirty);
> - if (unlikely(!rctx->ps_shader->current))
> - return false;
> if (unlikely(ps_dirty || rctx->pixel_shader.shader !=
> rctx->ps_shader->current ||
> rctx->rasterizer->sprite_coord_enable !=
> rctx->ps_shader->current->sprite_coord_enable ||
Reviewed-by: Glenn Kennard <glenn.kennard at gmail.com>
More information about the mesa-dev
mailing list