Mesa (master): radeonsi: fix a critical SI hang since PIPELINESTAT_START/ STOP was added
Marek Olšák
mareko at kemper.freedesktop.org
Tue Apr 12 23:05:37 UTC 2016
Module: Mesa
Branch: master
Commit: 8e70a58af394a8699aecdaad6e406a9183ce2090
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8e70a58af394a8699aecdaad6e406a9183ce2090
Author: Marek Olšák <marek.olsak at amd.com>
Date: Tue Apr 12 23:39:42 2016 +0200
radeonsi: fix a critical SI hang since PIPELINESTAT_START/STOP was added
For some reason unknown to me, SI hangs if the event is written after
CONTEXT_CONTROL.
---
src/gallium/drivers/radeonsi/si_hw_context.c | 3 ++-
src/gallium/drivers/radeonsi/si_state.c | 8 --------
2 files changed, 2 insertions(+), 9 deletions(-)
diff --git a/src/gallium/drivers/radeonsi/si_hw_context.c b/src/gallium/drivers/radeonsi/si_hw_context.c
index 242c22c..b621b55 100644
--- a/src/gallium/drivers/radeonsi/si_hw_context.c
+++ b/src/gallium/drivers/radeonsi/si_hw_context.c
@@ -155,7 +155,8 @@ void si_begin_new_cs(struct si_context *ctx)
SI_CONTEXT_INV_VMEM_L1 |
SI_CONTEXT_INV_GLOBAL_L2 |
SI_CONTEXT_INV_SMEM_L1 |
- SI_CONTEXT_INV_ICACHE;
+ SI_CONTEXT_INV_ICACHE |
+ R600_CONTEXT_START_PIPELINE_STATS;
/* set all valid group as dirty so they get reemited on
* next draw command
diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c
index 664506e..4d24fa3 100644
--- a/src/gallium/drivers/radeonsi/si_state.c
+++ b/src/gallium/drivers/radeonsi/si_state.c
@@ -3817,14 +3817,6 @@ static void si_init_config(struct si_context *sctx)
si_pm4_cmd_add(pm4, 0x80000000);
si_pm4_cmd_end(pm4, false);
- /* This enables pipeline stat & streamout queries.
- * They are only disabled by blits.
- */
- si_pm4_cmd_begin(pm4, PKT3_EVENT_WRITE);
- si_pm4_cmd_add(pm4, EVENT_TYPE(V_028A90_PIPELINESTAT_START) |
- EVENT_INDEX(0));
- si_pm4_cmd_end(pm4, false);
-
si_pm4_set_reg(pm4, R_028A18_VGT_HOS_MAX_TESS_LEVEL, fui(64));
si_pm4_set_reg(pm4, R_028A1C_VGT_HOS_MIN_TESS_LEVEL, fui(0));
More information about the mesa-commit
mailing list