gl renderer: Don't assume an atlas
authorMatthias Clasen <mclasen@redhat.com>
Wed, 13 Sep 2023 20:56:47 +0000 (16:56 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Tue, 19 Sep 2023 20:32:27 +0000 (16:32 -0400)
The source uniform may or may not point
to a glyph atlas. The optimization we do
for color nodes is only possible if it does,
so check this.

Fixes: #6094
gsk/gl/gskglrenderjob.c

index 7baa9e5cb8113948a9fcf70024e969ee1bc32e55..c862cb50a3ce816b6381a2e0742fe782a0161198 100644 (file)
@@ -1462,7 +1462,8 @@ gsk_gl_render_job_visit_color_node (GskGLRenderJob      *job,
   batch = gsk_gl_command_queue_get_batch (job->command_queue);
 
   /* Limit the size, or we end up with a coordinate overflow somewhere. */
-  if (node->bounds.size.width < 300 &&
+  if (job->source_is_glyph_atlas &&
+      node->bounds.size.width < 300 &&
       node->bounds.size.height < 300 &&
       batch->any.kind == GSK_GL_COMMAND_KIND_DRAW &&
       batch->any.program == program->id)