vulkan: Actually run the op_finish()
authorBenjamin Otte <otte@redhat.com>
Sat, 24 Jun 2023 20:29:47 +0000 (22:29 +0200)
committerBenjamin Otte <otte@redhat.com>
Sun, 16 Jul 2023 10:12:36 +0000 (12:12 +0200)
It's a no-op for all current ops, so it isn't really necessary. But
that's about to change.

gsk/vulkan/gskvulkanrenderpass.c

index 1633e568d43fa031b74ecead7772145625559fc8..ab2443415e9e031102b87a01c62783dcdc590a22 100644 (file)
@@ -265,8 +265,17 @@ void
 gsk_vulkan_render_pass_free (GskVulkanRenderPass *self)
 {
   VkDevice device = gdk_vulkan_context_get_device (self->vulkan);
+  GskVulkanOp *op;
+  gsize i;
 
+  for (i = 0; i < gsk_vulkan_render_ops_get_size (&self->render_ops); i += op->op_class->size)
+    {
+      op = (GskVulkanOp *) gsk_vulkan_render_ops_index (&self->render_ops, i);
+
+      gsk_vulkan_op_finish (op);
+    }
   gsk_vulkan_render_ops_clear (&self->render_ops);
+
   g_object_unref (self->vulkan);
   g_object_unref (self->target);
   cairo_region_destroy (self->clip);