gallium: Enable MESA_framebuffer_flip_y
authorFritz Koenig <frkoenig@google.com>
Tue, 30 Jul 2019 21:40:33 +0000 (14:40 -0700)
committerFritz Koenig <frkoenig@google.com>
Tue, 8 Oct 2019 20:53:01 +0000 (13:53 -0700)
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
src/mesa/state_tracker/st_atom_stipple.c
src/mesa/state_tracker/st_cb_fbo.c
src/mesa/state_tracker/st_extensions.c
src/mesa/state_tracker/st_util.h

index 87599f94d50d55766a95b7fd350d137bc3b927b1..3437553c154f7ca38b2c79026ce27aae62288820 100644 (file)
@@ -74,7 +74,7 @@ st_update_polygon_stipple( struct st_context *st )
 
       memcpy(st->state.poly_stipple, ctx->PolygonStipple, sz);
 
-      if (_mesa_is_user_fbo(ctx->DrawBuffer)) {
+      if (ctx->DrawBuffer->FlipY) {
          memcpy(newStipple.stipple, ctx->PolygonStipple, sizeof(newStipple.stipple));
       } else {
          invert_stipple(newStipple.stipple, ctx->PolygonStipple,
index 55546f9fab3728c46a2851d186eec05aee7fbe01..7cb4a3e1650be7699e1c464a1cafc64fa7ab6b82 100644 (file)
@@ -863,13 +863,10 @@ st_MapRenderbuffer(struct gl_context *ctx,
    struct st_context *st = st_context(ctx);
    struct st_renderbuffer *strb = st_renderbuffer(rb);
    struct pipe_context *pipe = st->pipe;
-   const GLboolean invert = rb->Name == 0;
+   const GLboolean invert = flip_y;
    GLuint y2;
    GLubyte *map;
 
-   /* driver does not support GL_FRAMEBUFFER_FLIP_Y_MESA */
-   assert((rb->Name == 0) == flip_y);
-
    if (strb->software) {
       /* software-allocated renderbuffer (probably an accum buffer) */
       if (strb->data) {
index 3f8230a22fb162331c31b7322c6b7d85877a826b..c9a99b06f4b2bd78c1477c85987a10853f5fb522 100644 (file)
@@ -1024,6 +1024,7 @@ void st_init_extensions(struct pipe_screen *screen,
    extensions->ATI_fragment_shader = GL_TRUE;
    extensions->ATI_texture_env_combine3 = GL_TRUE;
 
+   extensions->MESA_framebuffer_flip_y = GL_TRUE;
    extensions->MESA_pack_invert = GL_TRUE;
 
    extensions->NV_fog_distance = GL_TRUE;
index b6454e5a958367409c782f5018a4063c5d162517..bae85974f0e3c0d7e36820c8bc0876bd1bb171f2 100644 (file)
@@ -71,7 +71,7 @@ st_invalidate_readpix_cache(struct st_context *st)
 static inline GLuint
 st_fb_orientation(const struct gl_framebuffer *fb)
 {
-   if (fb && _mesa_is_winsys_fbo(fb)) {
+   if (fb && fb->FlipY) {
       /* Drawing into a window (on-screen buffer).
        *
        * Negate Y scale to flip image vertically.