diff options
author | Eric Anholt <[email protected]> | 2012-08-07 10:05:38 -0700 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2012-08-12 19:08:25 -0700 |
commit | 006c1a3c652803e2ff8d5f7ea55c9cb5d8353279 (patch) | |
tree | 5e9cca2fc9d3f45780fb65d65faf76c5fee9e0aa /src/mesa/drivers/dri/i965/brw_fs.cpp | |
parent | 97a5f0ff2eb3a6e8b303ce402a4e1d9be7e7b323 (diff) |
i965: Add perf debug for stalls during shader compiles.
v2: fix bad comment from before I gave up and decided to just use doubles.
Reviewed-by: Jordan Justen <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_fs.cpp')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_fs.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp index 642d95a9289..3010ed0b435 100644 --- a/src/mesa/drivers/dri/i965/brw_fs.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp @@ -2062,10 +2062,18 @@ brw_wm_fs_emit(struct brw_context *brw, struct brw_wm_compile *c, struct gl_shader_program *prog) { struct intel_context *intel = &brw->intel; + bool start_busy = false; + float start_time = 0; if (!prog) return false; + if (unlikely(INTEL_DEBUG & DEBUG_PERF)) { + start_busy = (intel->batch.last_bo && + drm_intel_bo_busy(intel->batch.last_bo)); + start_time = get_time(); + } + struct brw_shader *shader = (brw_shader *) prog->_LinkedShaders[MESA_SHADER_FRAGMENT]; if (!shader) @@ -2108,6 +2116,11 @@ brw_wm_fs_emit(struct brw_context *brw, struct brw_wm_compile *c, if (shader->compiled_once) brw_wm_debug_recompile(brw, prog, &c->key); shader->compiled_once = true; + + if (start_busy && !drm_intel_bo_busy(intel->batch.last_bo)) { + perf_debug("FS compile took %.03f ms and stalled the GPU\n", + (get_time() - start_time) / 1000); + } } return true; |