diff options
author | Marek Olšák <[email protected]> | 2012-08-02 22:31:22 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2012-08-30 19:43:55 +0200 |
commit | 8698a3b85dd89c5d2fa473e7942b7dc8d25f3c8f (patch) | |
tree | d134a9adb325aa6c131021c408b42a7daa9ef7b3 /src/gallium/drivers/r600/r600_texture.c | |
parent | edf22a5c6de5107c3f67357dad7cebbc8daf8368 (diff) |
r600g: implement MSAA for r700
Reviewed-by: Jerome Glisse <[email protected]>
Diffstat (limited to 'src/gallium/drivers/r600/r600_texture.c')
-rw-r--r-- | src/gallium/drivers/r600/r600_texture.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/gallium/drivers/r600/r600_texture.c b/src/gallium/drivers/r600/r600_texture.c index acb77d5c4dd..0b2fdda53f7 100644 --- a/src/gallium/drivers/r600/r600_texture.c +++ b/src/gallium/drivers/r600/r600_texture.c @@ -282,6 +282,11 @@ static void r600_texture_allocate_fmask(struct r600_screen *rscreen, return; } + /* R600-R700 errata? Anyway, this fixes colorbuffer corruption. */ + if (rscreen->chip_class <= R700) { + fmask.bpe *= 2; + } + if (rscreen->chip_class >= EVERGREEN) { fmask.bankh = nr_samples <= 4 ? 4 : 1; } @@ -379,8 +384,8 @@ r600_texture_create_object(struct pipe_screen *screen, } if (base->nr_samples > 1 && !rtex->is_depth && alloc_bo) { - r600_texture_allocate_fmask(rscreen, rtex); r600_texture_allocate_cmask(rscreen, rtex); + r600_texture_allocate_fmask(rscreen, rtex); } if (!rtex->is_depth && base->nr_samples > 1 && |