summaryrefslogtreecommitdiff
path: root/lib/mesa/src/gallium/drivers/radeonsi
diff options
context:
space:
mode:
authorJonathan Gray <jsg@cvs.openbsd.org>2022-04-21 04:37:21 +0000
committerJonathan Gray <jsg@cvs.openbsd.org>2022-04-21 04:37:21 +0000
commit09a91eb2d5bd3dcae073e25b08def9bce6cb32b1 (patch)
tree3719f9a7d09ae49da28e356df309cfac1d2580c8 /lib/mesa/src/gallium/drivers/radeonsi
parenta09152815d99b8a68f7f5ed0e44bab39dd14a1e5 (diff)
Merge Mesa 21.3.8
Diffstat (limited to 'lib/mesa/src/gallium/drivers/radeonsi')
-rw-r--r--lib/mesa/src/gallium/drivers/radeonsi/si_perfcounter.c5
-rw-r--r--lib/mesa/src/gallium/drivers/radeonsi/si_pm4.c2
2 files changed, 5 insertions, 2 deletions
diff --git a/lib/mesa/src/gallium/drivers/radeonsi/si_perfcounter.c b/lib/mesa/src/gallium/drivers/radeonsi/si_perfcounter.c
index 0bee2f7d0..ee996f525 100644
--- a/lib/mesa/src/gallium/drivers/radeonsi/si_perfcounter.c
+++ b/lib/mesa/src/gallium/drivers/radeonsi/si_perfcounter.c
@@ -158,7 +158,10 @@ static void si_pc_emit_stop(struct si_context *sctx, struct si_resource *buffer,
radeon_emit(EVENT_TYPE(V_028A90_PERFCOUNTER_STOP) | EVENT_INDEX(0));
radeon_set_uconfig_reg(
R_036020_CP_PERFMON_CNTL,
- S_036020_PERFMON_STATE(V_036020_CP_PERFMON_STATE_STOP_COUNTING) | S_036020_PERFMON_SAMPLE_ENABLE(1));
+ S_036020_PERFMON_STATE(sctx->screen->info.never_stop_sq_perf_counters ?
+ V_036020_CP_PERFMON_STATE_START_COUNTING :
+ V_036020_CP_PERFMON_STATE_STOP_COUNTING) |
+ S_036020_PERFMON_SAMPLE_ENABLE(1));
radeon_end();
}
diff --git a/lib/mesa/src/gallium/drivers/radeonsi/si_pm4.c b/lib/mesa/src/gallium/drivers/radeonsi/si_pm4.c
index ae4affa1b..d4ea07692 100644
--- a/lib/mesa/src/gallium/drivers/radeonsi/si_pm4.c
+++ b/lib/mesa/src/gallium/drivers/radeonsi/si_pm4.c
@@ -137,7 +137,7 @@ void si_pm4_reset_emitted(struct si_context *sctx, bool first_cs)
* added to the buffer list on the next draw call.
*/
for (unsigned i = 0; i < SI_NUM_STATES; i++) {
- struct si_pm4_state *state = sctx->emitted.array[i];
+ struct si_pm4_state *state = sctx->queued.array[i];
if (state && state->is_shader) {
sctx->emitted.array[i] = NULL;