diff options
author | Michel Dänzer <[email protected]> | 2014-02-13 11:51:09 +0900 |
---|---|---|
committer | Michel Daenzer <[email protected]> | 2014-02-18 10:46:23 +0900 |
commit | cf0172d46ab940a691da6516057c81f28961482f (patch) | |
tree | ad7d1487d75730537f9d8fdf8a085f076a9e77cb /src/gallium/drivers/r600/r600_pipe.c | |
parent | adad8fb2e947e3ea9e9d84cb3722e46de91346e4 (diff) |
r600g,radeonsi: Consolidate logic for short-circuiting flushes
Fixes radeonsi emitting command streams to the kernel even when there
have been no draw calls before a flush, potentially powering up the GPU
needlessly.
Incidentally, this also cuts the runtime of piglit gpu.py in about half
on my Kaveri system, probably because an X11 client going away no longer
always results in a command stream being submitted to the kernel via
glamor.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=65761
Cc: "10.1" [email protected]
Reviewed-by: Marek Olšák <[email protected]>
Diffstat (limited to 'src/gallium/drivers/r600/r600_pipe.c')
-rw-r--r-- | src/gallium/drivers/r600/r600_pipe.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/gallium/drivers/r600/r600_pipe.c b/src/gallium/drivers/r600/r600_pipe.c index 8ea192ac405..0f75a53748f 100644 --- a/src/gallium/drivers/r600/r600_pipe.c +++ b/src/gallium/drivers/r600/r600_pipe.c @@ -74,7 +74,7 @@ static void r600_flush(struct pipe_context *ctx, unsigned flags) unsigned render_cond_mode = 0; boolean render_cond_cond = FALSE; - if (rctx->b.rings.gfx.cs->cdw == rctx->initial_gfx_cs_size) + if (rctx->b.rings.gfx.cs->cdw == rctx->b.initial_gfx_cs_size) return; rctx->b.rings.gfx.flushing = true; @@ -95,7 +95,7 @@ static void r600_flush(struct pipe_context *ctx, unsigned flags) ctx->render_condition(ctx, render_cond, render_cond_cond, render_cond_mode); } - rctx->initial_gfx_cs_size = rctx->b.rings.gfx.cs->cdw; + rctx->b.initial_gfx_cs_size = rctx->b.rings.gfx.cs->cdw; } static void r600_flush_from_st(struct pipe_context *ctx, |