diff options
author | Ilia Mirkin <[email protected]> | 2016-10-12 14:01:34 -0400 |
---|---|---|
committer | Ilia Mirkin <[email protected]> | 2016-10-12 17:04:16 -0400 |
commit | e6a693c447213b578f562edad8f15ccc43056acd (patch) | |
tree | b5dd8a08d730d3224149cfd30d84d7a1bf7858d6 /src/mesa/state_tracker/st_atom_stipple.c | |
parent | a4622305e67dbb3ed224fa966160616688e43ee8 (diff) |
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 <[email protected]>
Reviewed-by: Brian Paul <[email protected]>
Tested-by: Brian Paul <[email protected]>
Reviewed-by: Marek Olšák <[email protected]>
Diffstat (limited to 'src/mesa/state_tracker/st_atom_stipple.c')
-rw-r--r-- | src/mesa/state_tracker/st_atom_stipple.c | 10 |
1 files 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 a30215ff326..5f7bf82c0b4 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); } |