summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r600/r600_texture.c
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2012-08-02 22:31:22 +0200
committerMarek Olšák <[email protected]>2012-08-30 19:43:55 +0200
commit8698a3b85dd89c5d2fa473e7942b7dc8d25f3c8f (patch)
treed134a9adb325aa6c131021c408b42a7daa9ef7b3 /src/gallium/drivers/r600/r600_texture.c
parentedf22a5c6de5107c3f67357dad7cebbc8daf8368 (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.c7
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 &&