From 895d427c6a7e883b13d0aeddce18bc271318a63d Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 15 Mar 2023 14:31:45 -0400 Subject: [PATCH] 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). --- gsk/gl/gskglcommandqueue.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) 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); } -- 2.30.2