Module: Mesa
Branch: master
Commit: 7ef61c1f1008f26a53db5fdfdb39ea1968c40284
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=7ef61c1f1008f26a53db5fdfdb39ea1968c40284

Author: Eric Anholt <[email protected]>
Date:   Fri Mar 27 10:54:19 2020 -0700

freedreno: Count blits in GL_TIME_ELAPSED and perf counter queries.

Fixes 0 gpu time reported for glBlitFramebuffer in apitrace replay --pgpu.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4356>

---

 src/gallium/drivers/freedreno/a2xx/fd2_query.c   | 2 +-
 src/gallium/drivers/freedreno/a4xx/fd4_query.c   | 2 +-
 src/gallium/drivers/freedreno/a5xx/fd5_query.c   | 4 ++--
 src/gallium/drivers/freedreno/a6xx/fd6_blitter.c | 2 ++
 src/gallium/drivers/freedreno/a6xx/fd6_query.c   | 4 ++--
 5 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/src/gallium/drivers/freedreno/a2xx/fd2_query.c 
b/src/gallium/drivers/freedreno/a2xx/fd2_query.c
index dc6f88ba788..b51903fcf97 100644
--- a/src/gallium/drivers/freedreno/a2xx/fd2_query.c
+++ b/src/gallium/drivers/freedreno/a2xx/fd2_query.c
@@ -151,7 +151,7 @@ perfcntr_accumulate_result(struct fd_acc_query *aq, void 
*buf,
 
 static const struct fd_acc_sample_provider perfcntr = {
                .query_type = FD_QUERY_FIRST_PERFCNTR,
-               .active = FD_STAGE_DRAW | FD_STAGE_CLEAR,
+               .active = FD_STAGE_ALL,
                .resume = perfcntr_resume,
                .pause = perfcntr_pause,
                .result = perfcntr_accumulate_result,
diff --git a/src/gallium/drivers/freedreno/a4xx/fd4_query.c 
b/src/gallium/drivers/freedreno/a4xx/fd4_query.c
index 1f1ce8e8771..ba225af82fc 100644
--- a/src/gallium/drivers/freedreno/a4xx/fd4_query.c
+++ b/src/gallium/drivers/freedreno/a4xx/fd4_query.c
@@ -259,7 +259,7 @@ static const struct fd_hw_sample_provider 
occlusion_predicate_conservative = {
 
 static const struct fd_hw_sample_provider time_elapsed = {
                .query_type = PIPE_QUERY_TIME_ELAPSED,
-               .active = FD_STAGE_DRAW | FD_STAGE_CLEAR,
+               .active = FD_STAGE_ALL,
                .enable = time_elapsed_enable,
                .get_sample = time_elapsed_get_sample,
                .accumulate_result = time_elapsed_accumulate_result,
diff --git a/src/gallium/drivers/freedreno/a5xx/fd5_query.c 
b/src/gallium/drivers/freedreno/a5xx/fd5_query.c
index 28f296d57cf..6cf9e2d6140 100644
--- a/src/gallium/drivers/freedreno/a5xx/fd5_query.c
+++ b/src/gallium/drivers/freedreno/a5xx/fd5_query.c
@@ -229,7 +229,7 @@ timestamp_accumulate_result(struct fd_acc_query *aq, void 
*buf,
 
 static const struct fd_acc_sample_provider time_elapsed = {
                .query_type = PIPE_QUERY_TIME_ELAPSED,
-               .active = FD_STAGE_DRAW | FD_STAGE_CLEAR,
+               .active = FD_STAGE_ALL,
                .size = sizeof(struct fd5_query_sample),
                .resume = timestamp_resume,
                .pause = timestamp_pause,
@@ -366,7 +366,7 @@ perfcntr_accumulate_result(struct fd_acc_query *aq, void 
*buf,
 
 static const struct fd_acc_sample_provider perfcntr = {
                .query_type = FD_QUERY_FIRST_PERFCNTR,
-               .active = FD_STAGE_DRAW | FD_STAGE_CLEAR,
+               .active = FD_STAGE_ALL,
                .resume = perfcntr_resume,
                .pause = perfcntr_pause,
                .result = perfcntr_accumulate_result,
diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_blitter.c 
b/src/gallium/drivers/freedreno/a6xx/fd6_blitter.c
index 24f4e46b89d..757e7117f75 100644
--- a/src/gallium/drivers/freedreno/a6xx/fd6_blitter.c
+++ b/src/gallium/drivers/freedreno/a6xx/fd6_blitter.c
@@ -646,6 +646,8 @@ handle_rgba_blit(struct fd_context *ctx, const struct 
pipe_blit_info *info)
 
        mtx_unlock(&ctx->screen->lock);
 
+       fd_batch_set_stage(batch, FD_STAGE_BLIT);
+
        emit_setup(batch);
 
        if ((info->src.resource->target == PIPE_BUFFER) &&
diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_query.c 
b/src/gallium/drivers/freedreno/a6xx/fd6_query.c
index f58fff7b4ba..374b6f06054 100644
--- a/src/gallium/drivers/freedreno/a6xx/fd6_query.c
+++ b/src/gallium/drivers/freedreno/a6xx/fd6_query.c
@@ -229,7 +229,7 @@ timestamp_accumulate_result(struct fd_acc_query *aq, void 
*buf,
 
 static const struct fd_acc_sample_provider time_elapsed = {
                .query_type = PIPE_QUERY_TIME_ELAPSED,
-               .active = FD_STAGE_DRAW | FD_STAGE_CLEAR,
+               .active = FD_STAGE_ALL,
                .size = sizeof(struct fd6_query_sample),
                .resume = timestamp_resume,
                .pause = timestamp_pause,
@@ -547,7 +547,7 @@ perfcntr_accumulate_result(struct fd_acc_query *aq, void 
*buf,
 
 static const struct fd_acc_sample_provider perfcntr = {
                .query_type = FD_QUERY_FIRST_PERFCNTR,
-               .active = FD_STAGE_DRAW | FD_STAGE_CLEAR,
+               .active = FD_STAGE_ALL,
                .resume = perfcntr_resume,
                .pause = perfcntr_pause,
                .result = perfcntr_accumulate_result,

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to