Mesa (master): svga: if we get nr_samples==1, store nr_samples=0

Brian Paul brianp at kemper.freedesktop.org
Tue Oct 3 18:10:05 UTC 2017


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

Author: Brian Paul <brianp at vmware.com>
Date:   Thu Aug  3 10:54:18 2017 -0600

svga: if we get nr_samples==1, store nr_samples=0

We need to be more careful not to treat nr_samples=1 as an msaa surface.
This patch prevents us from errantly declaring an MSAA shader resource
with 1 sample.

No Piglit regressions, fixes the above-described errors.

Reviewed-by: Neha Bhende <bhenden at vmware.com>

---

 src/gallium/drivers/svga/svga_resource_texture.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/gallium/drivers/svga/svga_resource_texture.c b/src/gallium/drivers/svga/svga_resource_texture.c
index 5b82e9eb7b..9e4d6c9fb1 100644
--- a/src/gallium/drivers/svga/svga_resource_texture.c
+++ b/src/gallium/drivers/svga/svga_resource_texture.c
@@ -985,13 +985,16 @@ svga_texture_create(struct pipe_screen *screen,
    tex->key.arraySize = 1;
    tex->key.numFaces = 1;
 
-   /* 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) {
+   /* nr_samples=1 must be treated as a non-multisample texture */
+   if (tex->b.b.nr_samples == 1) {
+      tex->b.b.nr_samples = 0;
+   }
+   else if (tex->b.b.nr_samples > 1) {
       tex->key.flags |= SVGA3D_SURFACE_MASKABLE_ANTIALIAS;
    }
 
+   tex->key.sampleCount = tex->b.b.nr_samples;
+
    if (svgascreen->sws->have_vgpu10) {
       switch (template->target) {
       case PIPE_TEXTURE_1D:




More information about the mesa-commit mailing list