[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