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

Author: Alex Deucher <alexander.deuc...@amd.com>
Date:   Fri Feb 22 18:42:33 2013 -0500

r600g: fixup PS_PARTIAL_FLUSH flag handling for cayman

So we don't emit it twice if we ever use the flag on
cayman.

Note: this is a candidate for the 9.1 branch.

Signed-off-by: Alex Deucher <alexander.deuc...@amd.com>

---

 src/gallium/drivers/r600/r600_hw_context.c |   13 ++++++-------
 1 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/src/gallium/drivers/r600/r600_hw_context.c 
b/src/gallium/drivers/r600/r600_hw_context.c
index 09dc98b..7309fc7 100644
--- a/src/gallium/drivers/r600/r600_hw_context.c
+++ b/src/gallium/drivers/r600/r600_hw_context.c
@@ -624,11 +624,6 @@ void r600_flush_emit(struct r600_context *rctx)
                return;
        }
 
-       if (rctx->flags & R600_CONTEXT_PS_PARTIAL_FLUSH) {
-               cs->buf[cs->cdw++] = PKT3(PKT3_EVENT_WRITE, 0, 0);
-               cs->buf[cs->cdw++] = EVENT_TYPE(EVENT_TYPE_PS_PARTIAL_FLUSH) | 
EVENT_INDEX(4);
-       }
-
        if (rctx->flags & R600_CONTEXT_WAIT_3D_IDLE) {
                wait_until |= S_008040_WAIT_3D_IDLE(1);
        }
@@ -640,11 +635,15 @@ void r600_flush_emit(struct r600_context *rctx)
                /* Use of WAIT_UNTIL is deprecated on Cayman+ */
                if (rctx->family >= CHIP_CAYMAN) {
                        /* emit a PS partial flush on Cayman/TN */
-                       cs->buf[cs->cdw++] = PKT3(PKT3_EVENT_WRITE, 0, 0);
-                       cs->buf[cs->cdw++] = 
EVENT_TYPE(EVENT_TYPE_PS_PARTIAL_FLUSH) | EVENT_INDEX(4);
+                       rctx->flags |= R600_CONTEXT_PS_PARTIAL_FLUSH;
                }
        }
 
+       if (rctx->flags & R600_CONTEXT_PS_PARTIAL_FLUSH) {
+               cs->buf[cs->cdw++] = PKT3(PKT3_EVENT_WRITE, 0, 0);
+               cs->buf[cs->cdw++] = EVENT_TYPE(EVENT_TYPE_PS_PARTIAL_FLUSH) | 
EVENT_INDEX(4);
+       }
+
        if (rctx->chip_class >= R700 &&
            (rctx->flags & R600_CONTEXT_FLUSH_AND_INV_CB_META)) {
                cs->buf[cs->cdw++] = PKT3(PKT3_EVENT_WRITE, 0, 0);

_______________________________________________
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to