[gtk+] Add a workaround for vulkan crashes
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc: 
- Subject: [gtk+] Add a workaround for vulkan crashes
- Date: Sun,  3 Sep 2017 16:01:27 +0000 (UTC)
commit 7bb202e4a2a243deae1755bd8802a4ce323dff19
Author: Matthias Clasen <mclasen redhat com>
Date:   Sun Sep 3 11:57:21 2017 -0400
    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 files changed, 7 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gskpango.c b/gtk/gskpango.c
index 5263e1c..cb5fa76 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);
 
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]