Re: [Mesa-dev] [PATCH] radeonsi: Fix primitive restart when index changes

2016-10-04 Thread Marek Olšák
I've pushed the patch. Thanks!

Marek

On Tue, Oct 4, 2016 at 3:30 PM, James Legg  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@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [PATCH] radeonsi: Fix primitive restart when index changes

2016-10-04 Thread James Legg
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@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev