diff options
author | Markus Wick <markus@selfnet.de> | 2014-05-14 23:08:18 +0200 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2014-06-12 21:24:40 -0700 |
commit | 8da1e4e2bf28c3610cdbe1770a57be89578d37f5 (patch) | |
tree | be4699ae757b73e324de3137b234167718c52822 | |
parent | 3778fab34bc00334edec4f845d0c6d43440f265a (diff) |
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@selfnet.de>
Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
-rw-r--r-- | glamor/glamor.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/glamor/glamor.c b/glamor/glamor.c index 08f6ba174..c398807f1 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 |