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

Author: Marek Olšák <[email protected]>
Date:   Tue Aug  9 00:42:14 2016 +0200

gallium/radeon: handle render_condition_enable for clear_rt/ds

Reviewed-by: Nicolai Hähnle <[email protected]>

---

 src/gallium/drivers/r300/r300_blit.c   | 6 ++++--
 src/gallium/drivers/r600/r600_blit.c   | 6 ++++--
 src/gallium/drivers/radeonsi/si_blit.c | 6 ++++--
 3 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/src/gallium/drivers/r300/r300_blit.c 
b/src/gallium/drivers/r300/r300_blit.c
index cfb3f6d..b5c3ae5 100644
--- a/src/gallium/drivers/r300/r300_blit.c
+++ b/src/gallium/drivers/r300/r300_blit.c
@@ -435,7 +435,8 @@ static void r300_clear_render_target(struct pipe_context 
*pipe,
 {
     struct r300_context *r300 = r300_context(pipe);
 
-    r300_blitter_begin(r300, R300_CLEAR_SURFACE);
+    r300_blitter_begin(r300, R300_CLEAR_SURFACE |
+                       (render_condition_enabled ? 0 : 
R300_IGNORE_RENDER_COND));
     util_blitter_clear_render_target(r300->blitter, dst, color,
                                      dstx, dsty, width, height);
     r300_blitter_end(r300);
@@ -462,7 +463,8 @@ static void r300_clear_depth_stencil(struct pipe_context 
*pipe,
     }
 
     /* XXX Do not decompress ZMask of the currently-set zbuffer. */
-    r300_blitter_begin(r300, R300_CLEAR_SURFACE);
+    r300_blitter_begin(r300, R300_CLEAR_SURFACE |
+                       (render_condition_enabled ? 0 : 
R300_IGNORE_RENDER_COND));
     util_blitter_clear_depth_stencil(r300->blitter, dst, clear_flags, depth, 
stencil,
                                      dstx, dsty, width, height);
     r300_blitter_end(r300);
diff --git a/src/gallium/drivers/r600/r600_blit.c 
b/src/gallium/drivers/r600/r600_blit.c
index 327efc2..adf616e 100644
--- a/src/gallium/drivers/r600/r600_blit.c
+++ b/src/gallium/drivers/r600/r600_blit.c
@@ -478,7 +478,8 @@ static void r600_clear_render_target(struct pipe_context 
*ctx,
 {
        struct r600_context *rctx = (struct r600_context *)ctx;
 
-       r600_blitter_begin(ctx, R600_CLEAR_SURFACE);
+       r600_blitter_begin(ctx, R600_CLEAR_SURFACE |
+                          (render_condition_enabled ? 0 : 
R600_DISABLE_RENDER_COND));
        util_blitter_clear_render_target(rctx->blitter, dst, color,
                                         dstx, dsty, width, height);
        r600_blitter_end(ctx);
@@ -495,7 +496,8 @@ static void r600_clear_depth_stencil(struct pipe_context 
*ctx,
 {
        struct r600_context *rctx = (struct r600_context *)ctx;
 
-       r600_blitter_begin(ctx, R600_CLEAR_SURFACE);
+       r600_blitter_begin(ctx, R600_CLEAR_SURFACE |
+                          (render_condition_enabled ? 0 : 
R600_DISABLE_RENDER_COND));
        util_blitter_clear_depth_stencil(rctx->blitter, dst, clear_flags, 
depth, stencil,
                                         dstx, dsty, width, height);
        r600_blitter_end(ctx);
diff --git a/src/gallium/drivers/radeonsi/si_blit.c 
b/src/gallium/drivers/radeonsi/si_blit.c
index ce13e97..f4bff6b 100644
--- a/src/gallium/drivers/radeonsi/si_blit.c
+++ b/src/gallium/drivers/radeonsi/si_blit.c
@@ -764,7 +764,8 @@ static void si_clear_render_target(struct pipe_context *ctx,
 {
        struct si_context *sctx = (struct si_context *)ctx;
 
-       si_blitter_begin(ctx, SI_CLEAR_SURFACE);
+       si_blitter_begin(ctx, SI_CLEAR_SURFACE |
+                        (render_condition_enabled ? 0 : 
SI_DISABLE_RENDER_COND));
        util_blitter_clear_render_target(sctx->blitter, dst, color,
                                         dstx, dsty, width, height);
        si_blitter_end(ctx);
@@ -781,7 +782,8 @@ static void si_clear_depth_stencil(struct pipe_context *ctx,
 {
        struct si_context *sctx = (struct si_context *)ctx;
 
-       si_blitter_begin(ctx, SI_CLEAR_SURFACE);
+       si_blitter_begin(ctx, SI_CLEAR_SURFACE |
+                        (render_condition_enabled ? 0 : 
SI_DISABLE_RENDER_COND));
        util_blitter_clear_depth_stencil(sctx->blitter, dst, clear_flags, 
depth, stencil,
                                         dstx, dsty, width, height);
        si_blitter_end(ctx);

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

Reply via email to