[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