Mesa (master): svga: single sample surface can be created as non-multisamples surface

Brian Paul brianp at kemper.freedesktop.org
Sat Sep 17 16:26:31 UTC 2016


Module: Mesa
Branch: master
Commit: 2a4b019239ea74c5573322881d663529bfd8191a
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=2a4b019239ea74c5573322881d663529bfd8191a

Author: Charmaine Lee <charmainel at vmware.com>
Date:   Mon Sep 12 14:21:40 2016 -0700

svga: single sample surface can be created as non-multisamples surface

With this patch, single sample surface will be created as non-multisamples
surface.

Tested with piglit, glretrace.

Reviewed-by: Brian Paul <brianp at vmware.com>

---

 src/gallium/drivers/svga/svga_resource_texture.c | 4 +++-
 src/gallium/drivers/svga/svga_surface.c          | 4 +++-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/svga/svga_resource_texture.c b/src/gallium/drivers/svga/svga_resource_texture.c
index 2086afa..484a240 100644
--- a/src/gallium/drivers/svga/svga_resource_texture.c
+++ b/src/gallium/drivers/svga/svga_resource_texture.c
@@ -841,7 +841,9 @@ svga_texture_create(struct pipe_screen *screen,
    tex->key.size.depth = template->depth0;
    tex->key.arraySize = 1;
    tex->key.numFaces = 1;
-   tex->key.sampleCount = template->nr_samples;
+
+   /* single sample texture can be treated as non-multisamples texture */
+   tex->key.sampleCount = template->nr_samples > 1 ? template->nr_samples : 0;
 
    if (template->nr_samples > 1) {
       tex->key.flags |= SVGA3D_SURFACE_MASKABLE_ANTIALIAS;
diff --git a/src/gallium/drivers/svga/svga_surface.c b/src/gallium/drivers/svga/svga_surface.c
index 81b0f48..42636bc 100644
--- a/src/gallium/drivers/svga/svga_surface.c
+++ b/src/gallium/drivers/svga/svga_surface.c
@@ -134,7 +134,9 @@ svga_texture_view_surface(struct svga_context *svga,
    key->cachable = 1;
    key->arraySize = 1;
    key->numFaces = 1;
-   key->sampleCount = tex->b.b.nr_samples;
+
+   /* single sample surface can be treated as non-multisamples surface */
+   key->sampleCount = tex->b.b.nr_samples > 1 ? tex->b.b.nr_samples : 0;
 
    if (key->sampleCount > 1) {
       key->flags |= SVGA3D_SURFACE_MASKABLE_ANTIALIAS;




More information about the mesa-commit mailing list