r300g: always put MSAA resources in VRAM
authorMarek Olšák <maraeo@gmail.com>
Thu, 31 Jan 2013 23:32:55 +0000 (00:32 +0100)
committerMarek Olšák <maraeo@gmail.com>
Fri, 1 Feb 2013 14:16:35 +0000 (15:16 +0100)
This along with the latest drm-fixes branch should help with bad performance
of MSAA. Remember: Nx MSAA can't be more than N times slower (where N=2,4,6).

Anyway, I recommend at least 512 MB of VRAM for Full HD 6x MSAA.

NOTE: This is a candidate for the 9.1 branch.

src/gallium/drivers/r300/r300_texture.c

index 6816fd01ab36a79dff8506dfab223bbd977ee4fc..327dbac700bd9566c19caaa5eac3535151efd3b1 100644 (file)
@@ -978,9 +978,9 @@ r300_texture_create_object(struct r300_screen *rscreen,
     tex->tex.microtile = microtile;
     tex->tex.macrotile[0] = macrotile;
     tex->tex.stride_in_bytes_override = stride_in_bytes_override;
-    tex->domain = base->flags & R300_RESOURCE_FLAG_TRANSFER ?
-                  RADEON_DOMAIN_GTT :
-                  RADEON_DOMAIN_VRAM | RADEON_DOMAIN_GTT;
+    tex->domain = base->flags & R300_RESOURCE_FLAG_TRANSFER ? RADEON_DOMAIN_GTT :
+                  base->nr_samples > 1 ? RADEON_DOMAIN_VRAM :
+                                         RADEON_DOMAIN_VRAM | RADEON_DOMAIN_GTT;
     tex->buf = buffer;
 
     r300_texture_desc_init(rscreen, tex, base);