Mesa (master): st/mesa: only flip stipple pattern for winsys fbo's

Ilia Mirkin imirkin at kemper.freedesktop.org
Wed Oct 12 21:07:11 UTC 2016


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

Author: Ilia Mirkin <imirkin at alum.mit.edu>
Date:   Wed Oct 12 14:01:34 2016 -0400

st/mesa: only flip stipple pattern for winsys fbo's

Gallium is completely oblivious to whether the fbo is flipped or not.
Only flip the stipple pattern when the fbo is flipped as well. Otherwise
the driver has no idea when to unflip the pattern.

Fixes bin/gl-2.1-polygon-stipple-fs -fbo

Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
Reviewed-by: Brian Paul <brianp at vmware.com>
Tested-by: Brian Paul <brianp at vmware.com>
Reviewed-by: Marek Olšák <marek.olsak at amd.com>

---

 src/mesa/state_tracker/st_atom_stipple.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/mesa/state_tracker/st_atom_stipple.c b/src/mesa/state_tracker/st_atom_stipple.c
index a30215f..5f7bf82 100644
--- a/src/mesa/state_tracker/st_atom_stipple.c
+++ b/src/mesa/state_tracker/st_atom_stipple.c
@@ -61,7 +61,7 @@ invert_stipple(GLuint dest[32], const GLuint src[32], GLuint winHeight)
 
 
 
-static void 
+static void
 update_stipple( struct st_context *st )
 {
    const struct gl_context *ctx = st->ctx;
@@ -74,8 +74,12 @@ update_stipple( struct st_context *st )
 
       memcpy(st->state.poly_stipple, ctx->PolygonStipple, sz);
 
-      invert_stipple(newStipple.stipple, ctx->PolygonStipple,
-                     ctx->DrawBuffer->Height);
+      if (_mesa_is_user_fbo(ctx->DrawBuffer)) {
+         memcpy(newStipple.stipple, ctx->PolygonStipple, sizeof(newStipple.stipple));
+      } else {
+         invert_stipple(newStipple.stipple, ctx->PolygonStipple,
+                        ctx->DrawBuffer->Height);
+      }
 
       st->pipe->set_polygon_stipple(st->pipe, &newStipple);
    }




More information about the mesa-commit mailing list