summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorFritz Koenig <[email protected]>2018-09-10 12:11:16 -0700
committerKristian H. Kristensen <[email protected]>2018-09-17 11:48:00 -0700
commitba6cc32cf9337804d744f234a196c97923c84360 (patch)
tree3fce5b81d4151059b9ab6f1af67dc9f398539870 /src
parentd17443a459383fdd7018fa879134f05b5daff1e1 (diff)
mesa: Additional FlipY applications
Instances where direction was determined based on winsys or user fbo and should be determined based on FlipY. Key STATE_FB_WPOS_Y_TRANSFORM for of FlipY instead of _mesa_is_user_fbo. This corrects gl_FragCoord usage when applying GL_MESA_framebuffer_flip_y. Fixes: ab05dd183cc ("i965: implement GL_MESA_framebuffer_flip_y [v3]") Reviewed-by: Brian Paul <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/mesa/main/multisample.c4
-rw-r--r--src/mesa/program/prog_statevars.c2
2 files changed, 3 insertions, 3 deletions
diff --git a/src/mesa/main/multisample.c b/src/mesa/main/multisample.c
index 8beb1d839ec..d494a43ac7d 100644
--- a/src/mesa/main/multisample.c
+++ b/src/mesa/main/multisample.c
@@ -94,8 +94,8 @@ _mesa_GetMultisamplefv(GLenum pname, GLuint index, GLfloat * val)
ctx->Driver.GetSamplePosition(ctx, ctx->DrawBuffer, index, val);
- /* winsys FBOs are upside down */
- if (_mesa_is_winsys_fbo(ctx->DrawBuffer))
+ /* FBOs can be upside down (winsys always are)*/
+ if (ctx->DrawBuffer->FlipY)
val[1] = 1.0f - val[1];
return;
diff --git a/src/mesa/program/prog_statevars.c b/src/mesa/program/prog_statevars.c
index 4d7f388cfb0..3bbe451399f 100644
--- a/src/mesa/program/prog_statevars.c
+++ b/src/mesa/program/prog_statevars.c
@@ -571,7 +571,7 @@ _mesa_fetch_state(struct gl_context *ctx, const gl_state_index16 state[],
case STATE_FB_WPOS_Y_TRANSFORM:
/* A driver may negate this conditional by using ZW swizzle
* instead of XY (based on e.g. some other state). */
- if (_mesa_is_user_fbo(ctx->DrawBuffer)) {
+ if (!ctx->DrawBuffer->FlipY) {
/* Identity (XY) followed by flipping Y upside down (ZW). */
value[0] = 1.0F;
value[1] = 0.0F;