r600g,radeonsi: don't skip the context flush if a fence should be returned
authorMarek Olšák <marek.olsak@amd.com>
Fri, 18 Apr 2014 11:25:11 +0000 (13:25 +0200)
committerMarek Olšák <marek.olsak@amd.com>
Fri, 18 Apr 2014 11:33:57 +0000 (13:33 +0200)
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=77589

src/gallium/drivers/r600/r600_hw_context.c
src/gallium/drivers/radeonsi/si_hw_context.c

index a860519d911b390156c88ce8ee97ad7f5945e274..5ecc73daed1ada9b83b0ccc857312ed1633ebf14 100644 (file)
@@ -236,7 +236,7 @@ void r600_context_gfx_flush(void *context, unsigned flags,
        struct r600_context *ctx = context;
        struct radeon_winsys_cs *cs = ctx->b.rings.gfx.cs;
 
-       if (cs->cdw == ctx->b.initial_gfx_cs_size)
+       if (cs->cdw == ctx->b.initial_gfx_cs_size && !fence)
                return;
 
        ctx->b.rings.gfx.flushing = true;
index 185041e959848414ce6b3e37e105fa6c528d302f..383157b7dd3b5f0eb76f2f1b6639ebc929e711a5 100644 (file)
@@ -83,7 +83,7 @@ void si_context_gfx_flush(void *context, unsigned flags,
        struct si_context *ctx = context;
        struct radeon_winsys_cs *cs = ctx->b.rings.gfx.cs;
 
-       if (cs->cdw == ctx->b.initial_gfx_cs_size)
+       if (cs->cdw == ctx->b.initial_gfx_cs_size && !fence)
                return;
 
        ctx->b.rings.gfx.flushing = true;