diff --git a/src/cairo-egl-context.c b/src/cairo-egl-context.c index bb0772ab4..bf704c630 100644 --- a/src/cairo-egl-context.c +++ b/src/cairo-egl-context.c @@ -244,6 +244,12 @@ cairo_egl_device_create (EGLDisplay dpy, EGLContext egl) return _cairo_gl_context_create_in_error (status); } + /* Tune the default VBO size to reduce overhead on embedded devices. + * This smaller size means that flushing needs to be done more often, + * but it is less demanding of scarce memory on embedded devices. + */ + ctx->base.vbo_size = 16*1024; + eglMakeCurrent (dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); return &ctx->base.base; diff --git a/src/cairo-gl-private.h b/src/cairo-gl-private.h index c1104b6ee..cb915c8cf 100644 --- a/src/cairo-gl-private.h +++ b/src/cairo-gl-private.h @@ -95,7 +95,7 @@ * but larger means hogging more memory and can cause trouble for drivers * (especially on embedded devices). Use the CAIRO_GL_VBO_SIZE environment * variable to set this to a different size. */ -#define CAIRO_GL_VBO_SIZE_DEFAULT (16*1024) +#define CAIRO_GL_VBO_SIZE_DEFAULT (1024*1024) typedef struct _cairo_gl_surface cairo_gl_surface_t;