summaryrefslogtreecommitdiff
path: root/glamor
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2014-04-08 01:01:28 -0700
committerKeith Packard <keithp@keithp.com>2014-04-17 15:01:26 -0700
commitc917fa411502d402b9c69de30f6a88e102bb8610 (patch)
tree9cc8c3a141a8b22d3ee7950ca8ab1687f0802e13 /glamor
parent3028ae6c9aa37168e249e0d847b29f8e3efb05b2 (diff)
glamor: Always allocate precisely the requested pixmap size
Using a pixmap as a tile or stipple means that we must have the underlying FBO match the pixmap geometry exactly. We may want to add some complexity here to migrate pixmaps into exact sized objects as necessary, but for now, make the server work correctly by skipping this optimization. Signed-off-by: Keith Packard <keithp@keithp.com> Reviewed-by: Eric Anholt <eric@anholt.net>
Diffstat (limited to 'glamor')
-rw-r--r--glamor/glamor_fbo.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/glamor/glamor_fbo.c b/glamor/glamor_fbo.c
index 4f6da67fb..d0215beef 100644
--- a/glamor/glamor_fbo.c
+++ b/glamor/glamor_fbo.c
@@ -367,10 +367,11 @@ glamor_create_fbo(glamor_screen_private *glamor_priv,
if (flag == GLAMOR_CREATE_PIXMAP_MAP)
goto no_tex;
- if (flag == GLAMOR_CREATE_PIXMAP_FIXUP)
- cache_flag = GLAMOR_CACHE_EXACT_SIZE;
- else
- cache_flag = 0;
+ /* Tiling from textures requires exact pixmap sizes. As we don't
+ * know which pixmaps will be used as tiles, just allocate
+ * everything at the requested size
+ */
+ cache_flag = GLAMOR_CACHE_EXACT_SIZE;
fbo = glamor_pixmap_fbo_cache_get(glamor_priv, w, h, format, cache_flag);
if (fbo)