Module: Mesa
Branch: staging/19.0
Commit: f4189ebe2e5e072b1ed053a7c027597b2184f599
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=f4189ebe2e5e072b1ed053a7c027597b2184f599

Author: Erik Faye-Lund <[email protected]>
Date:   Tue Apr 30 13:41:39 2019 +0200

softpipe: setup pixel_offset for all primitive types

If we don't update this for all primitive-types, we end up rendering
slightly offset points and lines up until the point where the first
triangle gets drawn. This is obviously not correct, and violates
OpenGL's repeatability rule.

Signed-off-by: Erik Faye-Lund <[email protected]>
Fixes: ca9c413647b ("softpipe: Respect gl_rasterization_rules in
       primitive setup.")
Reviewed-By: Gert Wollny <[email protected]>
(cherry picked from commit f753ac355e5bbd1129755224c54a73339da97cb1)

---

 src/gallium/drivers/softpipe/sp_setup.c | 21 ++++++++++-----------
 1 file changed, 10 insertions(+), 11 deletions(-)

diff --git a/src/gallium/drivers/softpipe/sp_setup.c 
b/src/gallium/drivers/softpipe/sp_setup.c
index ffe49260b9a..a91e4f588c8 100644
--- a/src/gallium/drivers/softpipe/sp_setup.c
+++ b/src/gallium/drivers/softpipe/sp_setup.c
@@ -390,17 +390,6 @@ setup_sort_vertices(struct setup_context *setup,
         return FALSE;
    }
 
-
-   /* Prepare pixel offset for rasterisation:
-    *  - pixel center (0.5, 0.5) for GL, or
-    *  - assume (0.0, 0.0) for other APIs.
-    */
-   if (setup->softpipe->rasterizer->half_pixel_center) {
-      setup->pixel_offset = 0.5f;
-   } else {
-      setup->pixel_offset = 0.0f;
-   }
-
    return TRUE;
 }
 
@@ -1476,6 +1465,16 @@ sp_setup_prepare(struct setup_context *setup)
       }
    }
 
+   /* Prepare pixel offset for rasterisation:
+    *  - pixel center (0.5, 0.5) for GL, or
+    *  - assume (0.0, 0.0) for other APIs.
+    */
+   if (setup->softpipe->rasterizer->half_pixel_center) {
+      setup->pixel_offset = 0.5f;
+   } else {
+      setup->pixel_offset = 0.0f;
+   }
+
    setup->max_layer = max_layer;
 
    sp->quad.first->begin( sp->quad.first );

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to