diff options
Diffstat (limited to 'src/gallium/drivers/radeon')
-rw-r--r-- | src/gallium/drivers/radeon/r600_texture.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/gallium/drivers/radeon/r600_texture.c b/src/gallium/drivers/radeon/r600_texture.c index c6d2381b122..dbcfd58a4bc 100644 --- a/src/gallium/drivers/radeon/r600_texture.c +++ b/src/gallium/drivers/radeon/r600_texture.c @@ -1625,7 +1625,9 @@ static void *r600_texture_transfer_map(struct pipe_context *ctx, * Use the staging texture for uploads if the underlying BO * is busy. */ - if (!rtex->surface.is_linear) + /* TODO: Linear CPU mipmap addressing is broken on GFX9: */ + if (!rtex->surface.is_linear || + (rctx->chip_class == GFX9 && level)) use_staging_texture = true; else if (usage & PIPE_TRANSFER_READ) use_staging_texture = @@ -2632,6 +2634,10 @@ void evergreen_do_fast_color_clear(struct r600_common_context *rctx, if (rctx->render_cond) return; + /* TODO: fix CMASK and DCC fast clear */ + if (rctx->chip_class >= GFX9) + return; + for (i = 0; i < fb->nr_cbufs; i++) { struct r600_texture *tex; unsigned clear_bit = PIPE_CLEAR_COLOR0 << i; |