From 7bb202e4a2a243deae1755bd8802a4ce323dff19 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sun, 3 Sep 2017 11:57:21 -0400 Subject: [PATCH] Add a workaround for vulkan crashes I see 'out of memory' errors and crashes inside libvulkan when creating nodes that have empty bounds and end up in the fallback paths, like a shadow around an empty text node. Prevent this by not creating text nodes in that case. --- gtk/gskpango.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/gtk/gskpango.c b/gtk/gskpango.c index 5263e1c950..cb5fa76768 100644 --- a/gtk/gskpango.c +++ b/gtk/gskpango.c @@ -117,6 +117,13 @@ gsk_pango_renderer_show_text_glyphs (PangoRenderer *renderer, int x_offset, y_offset; GskRenderNode *node; GdkRGBA color; + PangoRectangle ink_rect; + + /* FIXME: vulkan fallbacks don't deal with empty nodes gracefully */ + pango_glyph_string_extents (glyphs, font, &ink_rect, NULL); + pango_extents_to_pixels (&ink_rect, NULL); + if (ink_rect.width == 0 || ink_rect.height == 0) + return; gtk_snapshot_get_offset (crenderer->snapshot, &x_offset, &y_offset);