From 0f184d3270cfac522a05ae06d28cc2f1e32c0e6d Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Sat, 31 Mar 2018 08:17:42 +0200 Subject: [PATCH] vulkan: Always render clip extents Now that we have the full render nodes available, there is not much benefit in fine-grained control over multiple rectangles. In particular, it's causing pain with complex regions. There might be a benefit in clipping to the region's rectangles in cases like widget-factory where the whole diff is made up of the 2 rectangles of spinner and the pulsing progress bar, but it needs a good heuristic for where this is useful. --- gsk/vulkan/gskvulkanrender.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gsk/vulkan/gskvulkanrender.c b/gsk/vulkan/gskvulkanrender.c index a544f5df72..29c54aae3a 100644 --- a/gsk/vulkan/gskvulkanrender.c +++ b/gsk/vulkan/gskvulkanrender.c @@ -86,7 +86,12 @@ gsk_vulkan_render_setup (GskVulkanRender *self, } if (clip) { - self->clip = cairo_region_reference ((cairo_region_t *) clip); + cairo_rectangle_int_t extents; + cairo_region_get_extents (clip, &extents); + self->clip = cairo_region_create_rectangle (&(cairo_rectangle_int_t) { + extents.x, extents.y, + extents.width, extents.height + }); } else { -- 2.30.2