svga: enable MSAA for SM4_1 device

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>
This commit is contained in:
Brian Paul 2018-09-05 09:48:35 -06:00
parent 8088cb6f53
commit 3f55425ee6
3 changed files with 5 additions and 2 deletions

View 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);

View 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;

View 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) {