[Mesa-dev] [PATCH] radeonsi: fix a crash if a stencil ref state is set before a DSA state
Axel Davy
axel.davy at ens.fr
Sun Feb 15 12:43:48 PST 2015
It works fine.
Since no state tracker need it currently,
why do you want to backport it to older mesa versions ?
In all cases,
Reviewed-by: Axel Davy <axel.davy at ens.fr>
(btw: missing signoff)
Axel Davy
On 15/02/2015 18:21, Marek Olšák wrote :
> From: Marek Olšák <marek.olsak at amd.com>
>
> + minor indentation fixes
>
> Discovered by Axel Davy.
>
> This can't be reproduced with any app, because all state trackers set a DSA
> state first.
>
> Cc: 10.5 10.4 10.3 <mesa-stable at lists.freedesktop.org>
> ---
> src/gallium/drivers/radeonsi/si_state.c | 12 ++++++++----
> 1 file changed, 8 insertions(+), 4 deletions(-)
>
> diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c
> index fb353ad..3eea0b6 100644
> --- a/src/gallium/drivers/radeonsi/si_state.c
> +++ b/src/gallium/drivers/radeonsi/si_state.c
> @@ -735,12 +735,16 @@ static void si_delete_rs_state(struct pipe_context *ctx, void *state)
> */
> static void si_update_dsa_stencil_ref(struct si_context *sctx)
> {
> - struct si_pm4_state *pm4 = CALLOC_STRUCT(si_pm4_state);
> + struct si_pm4_state *pm4;
> struct pipe_stencil_ref *ref = &sctx->stencil_ref;
> - struct si_state_dsa *dsa = sctx->queued.named.dsa;
> + struct si_state_dsa *dsa = sctx->queued.named.dsa;
>
> - if (pm4 == NULL)
> - return;
> + if (!dsa)
> + return;
> +
> + pm4 = CALLOC_STRUCT(si_pm4_state);
> + if (pm4 == NULL)
> + return;
>
> si_pm4_set_reg(pm4, R_028430_DB_STENCILREFMASK,
> S_028430_STENCILTESTVAL(ref->ref_value[0]) |
More information about the mesa-dev
mailing list