<div dir="ltr">Ping<br></div><br><div class="gmail_quote"><div dir="ltr">On Tue, Nov 13, 2018 at 4:23 PM Marek Olšák <<a href="mailto:maraeo@gmail.com">maraeo@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">From: Marek Olšák <<a href="mailto:marek.olsak@amd.com" target="_blank">marek.olsak@amd.com</a>><br>
<br>
Bugzilla: <a href="https://bugs.freedesktop.org/show_bug.cgi?id=102597" rel="noreferrer" target="_blank">https://bugs.freedesktop.org/show_bug.cgi?id=102597</a><br>
<br>
Cc: 18.3 <<a href="mailto:mesa-stable@lists.freedesktop.org" target="_blank">mesa-stable@lists.freedesktop.org</a>><br>
---<br>
 src/gallium/drivers/radeonsi/si_query.c | 15 ++++-----------<br>
 1 file changed, 4 insertions(+), 11 deletions(-)<br>
<br>
diff --git a/src/gallium/drivers/radeonsi/si_query.c b/src/gallium/drivers/radeonsi/si_query.c<br>
index 21b9aeeac28..aed3e1e80c1 100644<br>
--- a/src/gallium/drivers/radeonsi/si_query.c<br>
+++ b/src/gallium/drivers/radeonsi/si_query.c<br>
@@ -786,31 +786,24 @@ static void si_query_hw_do_emit_start(struct si_context *sctx,<br>
        case PIPE_QUERY_PRIMITIVES_GENERATED:<br>
        case PIPE_QUERY_SO_STATISTICS:<br>
        case PIPE_QUERY_SO_OVERFLOW_PREDICATE:<br>
                emit_sample_streamout(cs, va, query->stream);<br>
                break;<br>
        case PIPE_QUERY_SO_OVERFLOW_ANY_PREDICATE:<br>
                for (unsigned stream = 0; stream < SI_MAX_STREAMS; ++stream)<br>
                        emit_sample_streamout(cs, va + 32 * stream, stream);<br>
                break;<br>
        case PIPE_QUERY_TIME_ELAPSED:<br>
-               /* Write the timestamp from the CP not waiting for<br>
-                * outstanding draws (top-of-pipe).<br>
-                */<br>
-               radeon_emit(cs, PKT3(PKT3_COPY_DATA, 4, 0));<br>
-               radeon_emit(cs, COPY_DATA_COUNT_SEL |<br>
-                               COPY_DATA_SRC_SEL(COPY_DATA_TIMESTAMP) |<br>
-                               COPY_DATA_DST_SEL(COPY_DATA_DST_MEM));<br>
-               radeon_emit(cs, 0);<br>
-               radeon_emit(cs, 0);<br>
-               radeon_emit(cs, va);<br>
-               radeon_emit(cs, va >> 32);<br>
+               si_cp_release_mem(sctx, V_028A90_BOTTOM_OF_PIPE_TS, 0,<br>
+                                 EOP_DST_SEL_MEM, EOP_INT_SEL_NONE,<br>
+                                 EOP_DATA_SEL_TIMESTAMP, NULL, va,<br>
+                                 0, query->b.type);<br>
                break;<br>
        case PIPE_QUERY_PIPELINE_STATISTICS:<br>
                radeon_emit(cs, PKT3(PKT3_EVENT_WRITE, 2, 0));<br>
                radeon_emit(cs, EVENT_TYPE(V_028A90_SAMPLE_PIPELINESTAT) | EVENT_INDEX(2));<br>
                radeon_emit(cs, va);<br>
                radeon_emit(cs, va >> 32);<br>
                break;<br>
        default:<br>
                assert(0);<br>
        }<br>
-- <br>
2.17.1<br>
<br>
</blockquote></div>