mesa: Additional FlipY applications
authorFritz Koenig <frkoenig@google.com>
Mon, 10 Sep 2018 19:11:16 +0000 (12:11 -0700)
committerKristian H. Kristensen <hoegsberg@chromium.org>
Mon, 17 Sep 2018 18:48:00 +0000 (11:48 -0700)
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 <brianp@vmware.com>
src/mesa/main/multisample.c
src/mesa/program/prog_statevars.c

index 8beb1d839ec350f12a23e22169b0e56ab39e0949..d494a43ac7d55f54ff4a104877b2f947575e6370 100644 (file)
@@ -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;
index 4d7f388cfb01e507eb2dddd6444202c8e4b112b4..3bbe451399f5adea1adad9cc9162eabc4b7255e7 100644 (file)
@@ -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;