diff options
author | Dave Airlie <[email protected]> | 2011-05-06 08:40:08 +1000 |
---|---|---|
committer | Dave Airlie <[email protected]> | 2011-05-06 08:41:13 +1000 |
commit | 5066f7cd0e010db46b42f8f08a33c10cb34f8726 (patch) | |
tree | 8e6da5764909e72a986074351888c5d8d50347de /src | |
parent | d116fe51c1aee3453290ac30ffe993bc131c53f7 (diff) |
r600g: add rv670 flushing workaround.
Hopefully we can find out the proper fix for this, but for now
this makes the fbo mipmap tests pass on my rv670 (x2 card).
Signed-off-by: Dave Airlie <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/gallium/winsys/r600/drm/r600_hw_context.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/gallium/winsys/r600/drm/r600_hw_context.c b/src/gallium/winsys/r600/drm/r600_hw_context.c index b8a8108fb12..ff99143485b 100644 --- a/src/gallium/winsys/r600/drm/r600_hw_context.c +++ b/src/gallium/winsys/r600/drm/r600_hw_context.c @@ -812,6 +812,10 @@ void r600_context_bo_flush(struct r600_context *ctx, unsigned flush_flags, use_event_flush = TRUE; if (use_event_flush && (ctx->flags & R600_CONTEXT_CHECK_EVENT_FLUSH)) { + /* the rv670 seems to fail fbo-generatemipmap unless we flush the CB1 dest base ena */ + if (ctx->radeon->family == CHIP_RV670) + r600_context_flush_all(ctx, S_0085F0_CB1_DEST_BASE_ENA(1)); + ctx->pm4[ctx->pm4_cdwords++] = PKT3(PKT3_EVENT_WRITE, 0, ctx->predicate_drawing); ctx->pm4[ctx->pm4_cdwords++] = EVENT_TYPE(EVENT_TYPE_CACHE_FLUSH_AND_INV_EVENT) | EVENT_INDEX(0); ctx->flags &= ~R600_CONTEXT_CHECK_EVENT_FLUSH; |