svga: enable MSAA for SM4_1 device
authorBrian Paul <brianp@vmware.com>
Wed, 5 Sep 2018 15:48:35 +0000 (09:48 -0600)
committerBrian Paul <brianp@vmware.com>
Mon, 10 Sep 2018 19:07:30 +0000 (13:07 -0600)
The SVGA device is deprecating the DX9 MSAA support.
This patch enables MSAA for SM4_1 device by explicitly
setting the SVGA3D_SURFACE_MULTISAMPLE bit.
For SM4_1 device, only 4 samples is supported.

Reviewed-by: Brian Paul <brianp@vmware.com>
src/gallium/drivers/svga/svga_resource_buffer_upload.c
src/gallium/drivers/svga/svga_resource_texture.c
src/gallium/drivers/svga/svga_surface.c

index 9daae9c0f448490d21d531a5c3548db8f756197b..93a6dee0724a4204f9731133292d882bc513bc6d 100644 (file)
@@ -191,6 +191,7 @@ svga_buffer_create_host_surface(struct svga_screen *ss,
       sbuf->key.numMipLevels = 1;
       sbuf->key.cachable = 1;
       sbuf->key.arraySize = 1;
+      sbuf->key.sampleCount = 0;
 
       SVGA_DBG(DEBUG_DMA, "surface_create for buffer sz %d\n",
                sbuf->b.b.width0);
index aaf625349457ab6a1f8700a4abeaa0c2c23a38e8..aaba3ac5f96b01447ae44fae5240ea43743a1968 100644 (file)
@@ -1000,7 +1000,8 @@ svga_texture_create(struct pipe_screen *screen,
       tex->b.b.nr_samples = 0;
    }
    else if (tex->b.b.nr_samples > 1) {
-      tex->key.flags |= SVGA3D_SURFACE_MASKABLE_ANTIALIAS;
+      assert(svgascreen->sws->have_sm4_1);
+      tex->key.flags |= SVGA3D_SURFACE_MULTISAMPLE;
    }
 
    tex->key.sampleCount = tex->b.b.nr_samples;
index 6237999b75f9082a621ac16080aae2d3437b527a..45badae6ce823904d848039450bec7242c6a5f95 100644 (file)
@@ -186,7 +186,8 @@ svga_texture_view_surface(struct svga_context *svga,
    key->sampleCount = tex->b.b.nr_samples > 1 ? tex->b.b.nr_samples : 0;
 
    if (key->sampleCount > 1) {
-      key->flags |= SVGA3D_SURFACE_MASKABLE_ANTIALIAS;
+      assert(ss->sws->have_sm4_1);
+      key->flags |= SVGA3D_SURFACE_MULTISAMPLE;
    }
 
    if (tex->b.b.target == PIPE_TEXTURE_CUBE && layer_pick < 0) {