xserver: Branch 'master' - 4 commits

Keith Packard keithp at kemper.freedesktop.org
Mon Jun 23 13:51:26 PDT 2014


 glamor/glamor.c        |    5 ++++-
 glamor/glamor_fbo.c    |    1 +
 glamor/glamor_font.c   |    1 +
 glamor/glamor_image.c  |    3 +--
 glamor/glamor_pixmap.c |    1 +
 5 files changed, 8 insertions(+), 3 deletions(-)

New commits:
commit ea47341792cf06eda5bbdf0aca48aacc024a5be0
Merge: 334faab a11bbd8
Author: Keith Packard <keithp at keithp.com>
Date:   Mon Jun 23 13:50:54 2014 -0700

    Merge remote-tracking branch 'anholt/glamor-fixes'

commit a11bbd875f3f90a3d02d727778cb1d3524cf59fd
Author: Eric Anholt <eric at anholt.net>
Date:   Fri May 30 10:39:30 2014 -0700

    glamor: Don't leak a prepare_access_gc() in putimage fallbacks.
    
    It turns out putimage doesn't use the GC tile or stipple anyway, so
    there's no need to do this.
    
    Signed-off-by: Eric Anholt <eric at anholt.net>
    Reviewed-by: Keith Packard <keithp at keithp.com>

diff --git a/glamor/glamor_image.c b/glamor/glamor_image.c
index 4791d08..b38b412 100644
--- a/glamor/glamor_image.c
+++ b/glamor/glamor_image.c
@@ -88,8 +88,7 @@ static void
 glamor_put_image_bail(DrawablePtr drawable, GCPtr gc, int depth, int x, int y,
                       int w, int h, int leftPad, int format, char *bits)
 {
-    if (glamor_prepare_access(drawable, GLAMOR_ACCESS_RW) &&
-        glamor_prepare_access_gc(gc))
+    if (glamor_prepare_access(drawable, GLAMOR_ACCESS_RW))
         fbPutImage(drawable, gc, depth, x, y, w, h, leftPad, format, bits);
     glamor_finish_access(drawable);
 }
commit 8da1e4e2bf28c3610cdbe1770a57be89578d37f5
Author: Markus Wick <markus at selfnet.de>
Date:   Wed May 14 23:08:18 2014 +0200

    glamor: Choose max fbo size by texture + viewport size
    
    The max size of renderbuffers and texture often match by accident, but
    as we always use textures, we should check for the right flag.  Also
    check for viewport size as this may be lower and we want to render to
    almost every pixmap.
    
    Signed-off-by: Markus Wick <markus at selfnet.de>
    Signed-off-by: Eric Anholt <eric at anholt.net>
    Reviewed-by: Eric Anholt <eric at anholt.net>

diff --git a/glamor/glamor.c b/glamor/glamor.c
index 08f6ba1..c398807 100644
--- a/glamor/glamor.c
+++ b/glamor/glamor.c
@@ -316,6 +316,7 @@ glamor_init(ScreenPtr screen, unsigned int flags)
 {
     glamor_screen_private *glamor_priv;
     int gl_version;
+    int max_viewport_size;
 
 #ifdef RENDER
     PictureScreenPtr ps = GetPictureScreenIfSet(screen);
@@ -406,7 +407,9 @@ glamor_init(ScreenPtr screen, unsigned int flags)
         epoxy_has_gl_extension("GL_ARB_map_buffer_range");
     glamor_priv->has_buffer_storage =
         epoxy_has_gl_extension("GL_ARB_buffer_storage");
-    glGetIntegerv(GL_MAX_RENDERBUFFER_SIZE, &glamor_priv->max_fbo_size);
+    glGetIntegerv(GL_MAX_TEXTURE_SIZE, &glamor_priv->max_fbo_size);
+    glGetIntegerv(GL_MAX_VIEWPORT_DIMS, &max_viewport_size);
+    glamor_priv->max_fbo_size = MIN(glamor_priv->max_fbo_size, max_viewport_size);
 #ifdef MAX_FBO_SIZE
     glamor_priv->max_fbo_size = MAX_FBO_SIZE;
 #endif
commit 3778fab34bc00334edec4f845d0c6d43440f265a
Author: Markus Wick <markus at selfnet.de>
Date:   Wed May 14 23:08:17 2014 +0200

    glamor: Fix no-mipmap allocations
    
    With GL_TEXTURE_MIN_FILTER, we configure not to use mipmaps, but
    there's no real way until GL_ARB_texture_storage to dictate whether
    memory should be allocated for mipmap levels or not.
    
    GL_TEXTURE_MAX_LEVEL is a stronger hint to the driver than the
    filtering that we really don't want mipmap allocations.  Stops VARM
    wasting warnings from the nvidia driver.
    
    Signed-off-by: Markus Wick <markus at selfnet.de>
    Signed-off-by: Eric Anholt <eric at anholt.net>
    Reviewed-by: Eric Anholt <eric at anholt.net>
    Reviewed-by: Keith Packard <keithp at keithp.com>

diff --git a/glamor/glamor_fbo.c b/glamor/glamor_fbo.c
index 5521683..090dfd8 100644
--- a/glamor/glamor_fbo.c
+++ b/glamor/glamor_fbo.c
@@ -347,6 +347,7 @@ _glamor_create_tex(glamor_screen_private *glamor_priv,
         glamor_make_current(glamor_priv);
         glGenTextures(1, &tex);
         glBindTexture(GL_TEXTURE_2D, tex);
+        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 0);
         glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
         glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
         glTexImage2D(GL_TEXTURE_2D, 0, format, w, h, 0,
diff --git a/glamor/glamor_font.c b/glamor/glamor_font.c
index f747d59..57c607d 100644
--- a/glamor/glamor_font.c
+++ b/glamor/glamor_font.c
@@ -95,6 +95,7 @@ glamor_font_get(ScreenPtr screen, FontPtr font)
     glActiveTexture(GL_TEXTURE0);
     glBindTexture(GL_TEXTURE_2D, glamor_font->texture_id);
 
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 0);
     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
 
diff --git a/glamor/glamor_pixmap.c b/glamor/glamor_pixmap.c
index 54b414b..789d377 100644
--- a/glamor/glamor_pixmap.c
+++ b/glamor/glamor_pixmap.c
@@ -717,6 +717,7 @@ __glamor_upload_pixmap_to_texture(PixmapPtr pixmap, unsigned int *tex,
     }
 
     glBindTexture(GL_TEXTURE_2D, *tex);
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 0);
     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
     glPixelStorei(GL_UNPACK_ALIGNMENT, 4);


More information about the xorg-commit mailing list