i965: Do not log a perf warning when mapping an idle bo
authorChris Wilson <chris@chris-wilson.co.uk>
Wed, 18 Oct 2017 08:49:31 +0000 (09:49 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Thu, 19 Oct 2017 06:12:39 +0000 (07:12 +0100)
We only want to scare the user away from causing a GPU stall for mapping
a busy bo. The time taken to instantiate the set of pages for a buffer
and their mmapping is unavoidable and flagging idle bo as being busy is
"crying wolf".

Reported-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/brw_bufmgr.c

index 82bf30727e999dff5ce14066b62f1f9742a977a3..7c5a9651ebad5e2683483d675474fc60d27bf686 100644 (file)
@@ -669,11 +669,12 @@ bo_wait_with_stall_warning(struct brw_context *brw,
                            struct brw_bo *bo,
                            const char *action)
 {
-   double elapsed = unlikely(brw && brw->perf_debug) ? -get_time() : 0.0;
+   bool busy = brw && brw->perf_debug && !bo->idle;
+   double elapsed = unlikely(busy) ? -get_time() : 0.0;
 
    brw_bo_wait_rendering(bo);
 
-   if (unlikely(brw && brw->perf_debug)) {
+   if (unlikely(busy)) {
       elapsed += get_time();
       if (elapsed > 1e-5) /* 0.01ms */
          perf_debug("%s a busy \"%s\" BO stalled and took %.03f ms.\n",