[Mesa-dev] [PATCH] mesa: invalidate pipeline status after glUseProgramStages

Timothy Arceri timothy.arceri at collabora.com
Tue Dec 8 13:24:18 PST 2015


On Tue, 2015-12-08 at 19:02 +0200, Tapani Pälli wrote:
> This will cause validation to run during next draw, this is done
> because possible changes in used stages and programs can cause
> invalid pipeline state.
> 
> This fixes a subtest in following CTS test:
> 	ES31-CTS.sepshaderobjs.StateInteraction
> 
> Signed-off-by: Tapani Pälli <tapani.palli at intel.com>

Reviewed-by: Timothy Arceri <timothy.arceri at collabora.com>

Thanks for your patience. If you end up trying to optimise this again
feel free to Cc me. Although I do think we will need to add some more
corner cases to the piglit tests before doing so.


> ---
>  src/mesa/main/pipelineobj.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/src/mesa/main/pipelineobj.c
> b/src/mesa/main/pipelineobj.c
> index 5eda4e5..f2a872d 100644
> --- a/src/mesa/main/pipelineobj.c
> +++ b/src/mesa/main/pipelineobj.c
> @@ -341,6 +341,8 @@ _mesa_UseProgramStages(GLuint pipeline,
> GLbitfield stages, GLuint program)
>  
>     if ((stages & GL_COMPUTE_SHADER_BIT) != 0)
>        _mesa_use_shader_program(ctx, GL_COMPUTE_SHADER, shProg,
> pipe);
> +
> +   pipe->Validated = false;
>  }
>  
>  /**


More information about the mesa-dev mailing list