[Mesa-dev] [PATCH] radeonsi: Fix primitive restart when index changes
Marek Olšák
maraeo at gmail.com
Tue Oct 4 14:03:57 UTC 2016
I've pushed the patch. Thanks!
Marek
On Tue, Oct 4, 2016 at 3:30 PM, James Legg <jlegg at feralinteractive.com> wrote:
> If primitive restart is enabled for two consecutive draws which use
> different primitive restart indices, then the first draw's primitive
> restart index was incorrectly used for the second draw.
>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98025
> ---
> src/gallium/drivers/radeonsi/si_state_draw.c | 14 +++++++-------
> 1 file changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/src/gallium/drivers/radeonsi/si_state_draw.c b/src/gallium/drivers/radeonsi/si_state_draw.c
> index e44147f..10e8be4 100644
> --- a/src/gallium/drivers/radeonsi/si_state_draw.c
> +++ b/src/gallium/drivers/radeonsi/si_state_draw.c
> @@ -509,13 +509,13 @@ static void si_emit_draw_registers(struct si_context *sctx,
> radeon_set_context_reg(cs, R_028A94_VGT_MULTI_PRIM_IB_RESET_EN, info->primitive_restart);
> sctx->last_primitive_restart_en = info->primitive_restart;
>
> - if (info->primitive_restart &&
> - (info->restart_index != sctx->last_restart_index ||
> - sctx->last_restart_index == SI_RESTART_INDEX_UNKNOWN)) {
> - radeon_set_context_reg(cs, R_02840C_VGT_MULTI_PRIM_IB_RESET_INDX,
> - info->restart_index);
> - sctx->last_restart_index = info->restart_index;
> - }
> + }
> + if (info->primitive_restart &&
> + (info->restart_index != sctx->last_restart_index ||
> + sctx->last_restart_index == SI_RESTART_INDEX_UNKNOWN)) {
> + radeon_set_context_reg(cs, R_02840C_VGT_MULTI_PRIM_IB_RESET_INDX,
> + info->restart_index);
> + sctx->last_restart_index = info->restart_index;
> }
> }
>
> --
> 2.8.3
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list