From: Matthias Clasen Date: Wed, 15 Mar 2023 18:31:45 +0000 (-0400) Subject: gsk: Add a way to limit texture sizes X-Git-Tag: archive/raspbian/4.12.3+ds-1+rpi1~1^2^2^2~22^2~1^2~547^2~3 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=895d427c6a7e883b13d0aeddce18bc271318a63d;p=gtk4.git gsk: Add a way to limit texture sizes Allow to set max texture size using the GSK_MAX_TEXTURE_SIZE environment variable. We only allow to lower the max (for obvious reasons), and we don't allow values smaller than 512 (since our atlases use that size). --- diff --git a/gsk/gl/gskglcommandqueue.c b/gsk/gl/gskglcommandqueue.c index 8fee49fd15..30617898e8 100644 --- a/gsk/gl/gskglcommandqueue.c +++ b/gsk/gl/gskglcommandqueue.c @@ -449,7 +449,22 @@ gsk_gl_command_queue_new (GdkGLContext *context, /* Determine max texture size immediately and restore context */ gdk_gl_context_make_current (context); + glGetIntegerv (GL_MAX_TEXTURE_SIZE, &self->max_texture_size); + if (g_getenv ("GSK_MAX_TEXTURE_SIZE")) + { + int max_texture_size = atoi (g_getenv ("GSK_MAX_TEXTURE_SIZE")); + if (max_texture_size == 0) + { + g_warning ("Failed to parse GSK_MAX_TEXTURE_SIZE"); + } + else + { + max_texture_size = MAX (max_texture_size, 512); + GSK_DEBUG(OPENGL, "Limiting max texture size to %d", max_texture_size); + self->max_texture_size = MIN (self->max_texture_size, max_texture_size); + } + } return g_steal_pointer (&self); }