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