radeonsi: go back to using bottom-of-pipe for beginning of TIME_ELAPSED
authorMarek Olšák <marek.olsak@amd.com>
Tue, 13 Nov 2018 21:19:42 +0000 (16:19 -0500)
committerMarek Olšák <marek.olsak@amd.com>
Wed, 21 Nov 2018 02:18:48 +0000 (21:18 -0500)
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102597

Cc: 18.3 <mesa-stable@lists.freedesktop.org>
Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de>
Reviewed-by: Dave Airlie <airlied@redhat.com>
src/gallium/drivers/radeonsi/si_query.c

index 21b9aeeac28da2fb73fe982bdfc9ee36e376a3d9..aed3e1e80c1086bb0f896dc87ee51eaf4b2b965f 100644 (file)
@@ -793,17 +793,10 @@ static void si_query_hw_do_emit_start(struct si_context *sctx,
                        emit_sample_streamout(cs, va + 32 * stream, stream);
                break;
        case PIPE_QUERY_TIME_ELAPSED:
-               /* Write the timestamp from the CP not waiting for
-                * outstanding draws (top-of-pipe).
-                */
-               radeon_emit(cs, PKT3(PKT3_COPY_DATA, 4, 0));
-               radeon_emit(cs, COPY_DATA_COUNT_SEL |
-                               COPY_DATA_SRC_SEL(COPY_DATA_TIMESTAMP) |
-                               COPY_DATA_DST_SEL(COPY_DATA_DST_MEM));
-               radeon_emit(cs, 0);
-               radeon_emit(cs, 0);
-               radeon_emit(cs, va);
-               radeon_emit(cs, va >> 32);
+               si_cp_release_mem(sctx, V_028A90_BOTTOM_OF_PIPE_TS, 0,
+                                 EOP_DST_SEL_MEM, EOP_INT_SEL_NONE,
+                                 EOP_DATA_SEL_TIMESTAMP, NULL, va,
+                                 0, query->b.type);
                break;
        case PIPE_QUERY_PIPELINE_STATISTICS:
                radeon_emit(cs, PKT3(PKT3_EVENT_WRITE, 2, 0));