vulkan: Port linear gradient to new ops
authorBenjamin Otte <otte@redhat.com>
Mon, 3 Jul 2023 01:15:59 +0000 (03:15 +0200)
committerBenjamin Otte <otte@redhat.com>
Sun, 16 Jul 2023 10:12:36 +0000 (12:12 +0200)
This was the last user of GskVulkanOpRender, so delete that one, too.

gsk/meson.build
gsk/vulkan/gskvulkanlineargradientop.c [new file with mode: 0644]
gsk/vulkan/gskvulkanlineargradientopprivate.h [new file with mode: 0644]
gsk/vulkan/gskvulkanlineargradientpipeline.c [deleted file]
gsk/vulkan/gskvulkanlineargradientpipelineprivate.h [deleted file]
gsk/vulkan/gskvulkanrender.c
gsk/vulkan/gskvulkanrenderpass.c
gsk/vulkan/gskvulkanrenderprivate.h

index f264ac03f38231c9929f74ae89269a7121423832..e1c06513f19c859e89361274d84acb7c6380a8d8 100644 (file)
@@ -120,7 +120,7 @@ if have_vulkan
     'vulkan/gskvulkanglyphcache.c',
     'vulkan/gskvulkanimage.c',
     'vulkan/gskvulkaninsetshadowop.c',
-    'vulkan/gskvulkanlineargradientpipeline.c',
+    'vulkan/gskvulkanlineargradientop.c',
     'vulkan/gskvulkanmemory.c',
     'vulkan/gskvulkanoffscreenop.c',
     'vulkan/gskvulkanop.c',
diff --git a/gsk/vulkan/gskvulkanlineargradientop.c b/gsk/vulkan/gskvulkanlineargradientop.c
new file mode 100644 (file)
index 0000000..f3275cb
--- /dev/null
@@ -0,0 +1,147 @@
+#include "config.h"
+
+#include "gskvulkanlineargradientopprivate.h"
+
+#include "vulkan/resources/linear.vert.h"
+
+typedef struct _GskVulkanLinearGradientOp GskVulkanLinearGradientOp;
+
+struct _GskVulkanLinearGradientOp
+{
+  GskVulkanOp op;
+
+  graphene_rect_t rect;
+  graphene_point_t start;
+  graphene_point_t end;
+  gboolean repeating;
+  GskColorStop *stops;
+  gsize n_stops;
+
+  gsize buffer_offset;
+  gsize vertex_offset;
+};
+
+static void
+gsk_vulkan_linear_gradient_op_finish (GskVulkanOp *op)
+{
+  GskVulkanLinearGradientOp *self = (GskVulkanLinearGradientOp *) op;
+
+  g_free (self->stops);
+}
+
+static void
+gsk_vulkan_linear_gradient_op_upload (GskVulkanOp           *op,
+                                      GskVulkanRenderPass   *pass,
+                                      GskVulkanRender       *render,
+                                      GskVulkanUploader     *uploader,
+                                      const graphene_rect_t *clip,
+                                      const graphene_vec2_t *scale)
+{
+}
+
+static inline gsize
+round_up (gsize number, gsize divisor)
+{
+  return (number + divisor - 1) / divisor * divisor;
+}
+
+static gsize
+gsk_vulkan_linear_gradient_op_count_vertex_data (GskVulkanOp *op,
+                                                 gsize        n_bytes)
+{
+  GskVulkanLinearGradientOp *self = (GskVulkanLinearGradientOp *) op;
+  gsize vertex_stride;
+
+  vertex_stride = gsk_vulkan_linear_info.pVertexBindingDescriptions[0].stride;
+  n_bytes = round_up (n_bytes, vertex_stride);
+  self->vertex_offset = n_bytes;
+  n_bytes += vertex_stride;
+  return n_bytes;
+}
+
+static void
+gsk_vulkan_linear_gradient_op_collect_vertex_data (GskVulkanOp         *op,
+                                                   GskVulkanRenderPass *pass,
+                                                   GskVulkanRender     *render,
+                                                   guchar              *data)
+{
+  GskVulkanLinearGradientOp *self = (GskVulkanLinearGradientOp *) op;
+  GskVulkanLinearInstance *instance = (GskVulkanLinearInstance *) (data + self->vertex_offset);
+
+  gsk_vulkan_rect_to_float (&self->rect, instance->rect);
+  gsk_vulkan_point_to_float (&self->start, instance->start);
+  gsk_vulkan_point_to_float (&self->end, instance->end);
+  instance->repeating = self->repeating;
+  instance->stop_offset = self->buffer_offset;
+  instance->stop_count = self->n_stops;
+}
+
+static void
+gsk_vulkan_linear_gradient_op_reserve_descriptor_sets (GskVulkanOp     *op,
+                                                       GskVulkanRender *render)
+{
+  GskVulkanLinearGradientOp *self = (GskVulkanLinearGradientOp *) op;
+  guchar *mem;
+
+  mem = gsk_vulkan_render_get_buffer_memory (render,
+                                             self->n_stops * sizeof (GskColorStop),
+                                             G_ALIGNOF (GskColorStop),
+                                             &self->buffer_offset);
+  memcpy (mem, self->stops, self->n_stops * sizeof (GskColorStop));
+}
+
+static VkPipeline
+gsk_vulkan_linear_gradient_op_get_pipeline (GskVulkanOp *op)
+{
+  return VK_NULL_HANDLE;
+}
+
+static void
+gsk_vulkan_linear_gradient_op_command (GskVulkanOp      *op,
+                                       GskVulkanRender  *render,
+                                       VkPipelineLayout  pipeline_layout,
+                                       VkCommandBuffer   command_buffer)
+{
+  GskVulkanLinearGradientOp *self = (GskVulkanLinearGradientOp *) op;
+
+  vkCmdDraw (command_buffer,
+             6, 1,
+             0, self->vertex_offset / gsk_vulkan_linear_info.pVertexBindingDescriptions[0].stride);
+}
+
+static const GskVulkanOpClass GSK_VULKAN_LINEAR_GRADIENT_OP_CLASS = {
+  GSK_VULKAN_OP_SIZE (GskVulkanLinearGradientOp),
+  "linear",
+  &gsk_vulkan_linear_info,
+  gsk_vulkan_linear_gradient_op_finish,
+  gsk_vulkan_linear_gradient_op_upload,
+  gsk_vulkan_linear_gradient_op_count_vertex_data,
+  gsk_vulkan_linear_gradient_op_collect_vertex_data,
+  gsk_vulkan_linear_gradient_op_reserve_descriptor_sets,
+  gsk_vulkan_linear_gradient_op_get_pipeline,
+  gsk_vulkan_linear_gradient_op_command
+};
+
+void
+gsk_vulkan_linear_gradient_op (GskVulkanRenderPass    *render_pass,
+                               const char             *clip_type,
+                               const graphene_rect_t  *rect,
+                               const graphene_point_t *offset,
+                               const graphene_point_t *start,
+                               const graphene_point_t *end,
+                               gboolean                repeating,
+                               const GskColorStop     *stops,
+                               gsize                   n_stops)
+{
+  GskVulkanLinearGradientOp *self;
+
+  self = (GskVulkanLinearGradientOp *) gsk_vulkan_op_alloc (render_pass, &GSK_VULKAN_LINEAR_GRADIENT_OP_CLASS);
+
+  ((GskVulkanOp *) self)->clip_type = g_intern_string (clip_type);
+  graphene_rect_offset_r (rect, offset->x, offset->y, &self->rect);
+  self->start = GRAPHENE_POINT_INIT (start->x + offset->x, start->y + offset->y);
+  self->end = GRAPHENE_POINT_INIT (end->x + offset->x, end->y + offset->y);
+  self->repeating = repeating;
+  self->stops = g_memdup (stops, sizeof (GskColorStop) * n_stops);
+  self->n_stops = n_stops;
+}
diff --git a/gsk/vulkan/gskvulkanlineargradientopprivate.h b/gsk/vulkan/gskvulkanlineargradientopprivate.h
new file mode 100644 (file)
index 0000000..4e8de81
--- /dev/null
@@ -0,0 +1,19 @@
+#pragma once
+
+#include "gskvulkanopprivate.h"
+
+G_BEGIN_DECLS
+
+void                    gsk_vulkan_linear_gradient_op                   (GskVulkanRenderPass            *render_pass,
+                                                                         const char                     *clip_type,
+                                                                         const graphene_rect_t          *rect,
+                                                                         const graphene_point_t         *offset,
+                                                                         const graphene_point_t         *start,
+                                                                         const graphene_point_t         *end,
+                                                                         gboolean                        repeating,
+                                                                         const GskColorStop             *stops,
+                                                                         gsize                           n_stops);
+
+
+G_END_DECLS
+
diff --git a/gsk/vulkan/gskvulkanlineargradientpipeline.c b/gsk/vulkan/gskvulkanlineargradientpipeline.c
deleted file mode 100644 (file)
index 3e62778..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-#include "config.h"
-
-#include "gskvulkanlineargradientpipelineprivate.h"
-
-#include "vulkan/resources/linear.vert.h"
-
-struct _GskVulkanLinearGradientPipeline
-{
-  GObject parent_instance;
-};
-
-G_DEFINE_TYPE (GskVulkanLinearGradientPipeline, gsk_vulkan_linear_gradient_pipeline, GSK_TYPE_VULKAN_PIPELINE)
-
-static const VkPipelineVertexInputStateCreateInfo *
-gsk_vulkan_linear_gradient_pipeline_get_input_state_create_info (GskVulkanPipeline *self)
-{
-  return &gsk_vulkan_linear_info;
-}
-
-static void
-gsk_vulkan_linear_gradient_pipeline_finalize (GObject *gobject)
-{
-  //GskVulkanLinearGradientPipeline *self = GSK_VULKAN_LINEAR_GRADIENT_PIPELINE (gobject);
-
-  G_OBJECT_CLASS (gsk_vulkan_linear_gradient_pipeline_parent_class)->finalize (gobject);
-}
-
-static void
-gsk_vulkan_linear_gradient_pipeline_class_init (GskVulkanLinearGradientPipelineClass *klass)
-{
-  GskVulkanPipelineClass *pipeline_class = GSK_VULKAN_PIPELINE_CLASS (klass);
-
-  G_OBJECT_CLASS (klass)->finalize = gsk_vulkan_linear_gradient_pipeline_finalize;
-
-  pipeline_class->get_input_state_create_info = gsk_vulkan_linear_gradient_pipeline_get_input_state_create_info;
-}
-
-static void
-gsk_vulkan_linear_gradient_pipeline_init (GskVulkanLinearGradientPipeline *self)
-{
-}
-
-GskVulkanPipeline *
-gsk_vulkan_linear_gradient_pipeline_new (GdkVulkanContext        *context,
-                                         VkPipelineLayout         layout,
-                                         const char              *shader_name,
-                                         VkRenderPass             render_pass)
-{
-  return gsk_vulkan_pipeline_new (GSK_TYPE_VULKAN_LINEAR_GRADIENT_PIPELINE, context, layout, shader_name, render_pass);
-}
-
-void
-gsk_vulkan_linear_gradient_pipeline_collect_vertex_data (GskVulkanLinearGradientPipeline *pipeline,
-                                                         guchar                          *data,
-                                                         const graphene_point_t          *offset,
-                                                         const graphene_rect_t           *rect,
-                                                         const graphene_point_t          *start,
-                                                         const graphene_point_t          *end,
-                                                         gboolean                         repeating,
-                                                         gsize                            gradient_offset,
-                                                         gsize                            n_stops)
-{
-  GskVulkanLinearInstance *instance = (GskVulkanLinearInstance *) data;
-
-  instance->rect[0] = rect->origin.x + offset->x;
-  instance->rect[1] = rect->origin.y + offset->y;
-  instance->rect[2] = rect->size.width;
-  instance->rect[3] = rect->size.height;
-  instance->start[0] = start->x + offset->x;
-  instance->start[1] = start->y + offset->y;
-  instance->end[0] = end->x + offset->x;
-  instance->end[1] = end->y + offset->y;
-  instance->repeating = repeating;
-  instance->stop_offset = gradient_offset;
-  instance->stop_count = n_stops;
-}
-
-gsize
-gsk_vulkan_linear_gradient_pipeline_draw (GskVulkanLinearGradientPipeline *pipeline,
-                                   VkCommandBuffer            command_buffer,
-                                   gsize                      offset,
-                                   gsize                      n_commands)
-{
-  vkCmdDraw (command_buffer,
-             6, n_commands,
-             0, offset);
-
-  return n_commands;
-}
diff --git a/gsk/vulkan/gskvulkanlineargradientpipelineprivate.h b/gsk/vulkan/gskvulkanlineargradientpipelineprivate.h
deleted file mode 100644 (file)
index 21bf100..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-#pragma once
-
-#include <graphene.h>
-
-#include "gskvulkanpipelineprivate.h"
-#include "gskrendernode.h"
-
-G_BEGIN_DECLS
-
-#define GSK_VULKAN_LINEAR_GRADIENT_PIPELINE_MAX_COLOR_STOPS 8
-
-typedef struct _GskVulkanLinearGradientPipelineLayout GskVulkanLinearGradientPipelineLayout;
-
-#define GSK_TYPE_VULKAN_LINEAR_GRADIENT_PIPELINE (gsk_vulkan_linear_gradient_pipeline_get_type ())
-
-G_DECLARE_FINAL_TYPE (GskVulkanLinearGradientPipeline, gsk_vulkan_linear_gradient_pipeline, GSK, VULKAN_LINEAR_GRADIENT_PIPELINE, GskVulkanPipeline)
-
-GskVulkanPipeline *     gsk_vulkan_linear_gradient_pipeline_new         (GdkVulkanContext               *context,
-                                                                         VkPipelineLayout                layout,
-                                                                         const char                     *shader_name,
-                                                                         VkRenderPass                    render_pass);
-
-void                    gsk_vulkan_linear_gradient_pipeline_collect_vertex_data
-                                                                        (GskVulkanLinearGradientPipeline*pipeline,
-                                                                         guchar                         *data,
-                                                                         const graphene_point_t         *offset,
-                                                                         const graphene_rect_t          *rect,
-                                                                         const graphene_point_t         *start,
-                                                                         const graphene_point_t         *end,
-                                                                         gboolean                        repeating,
-                                                                         gsize                           gradient_offset,
-                                                                         gsize                           n_stops);
-gsize                   gsk_vulkan_linear_gradient_pipeline_draw        (GskVulkanLinearGradientPipeline*pipeline,
-                                                                         VkCommandBuffer                 command_buffer,
-                                                                         gsize                           offset,
-                                                                         gsize                           n_commands);
-
-G_END_DECLS
-
index bd36a04aba30db24d93c7591796eaec20191680b..e39d0122bd43c6e2e5b1ca6449fa6515afce248c 100644 (file)
@@ -11,7 +11,6 @@
 #include "gskvulkanrenderpassprivate.h"
 
 #include "gskvulkancolortextpipelineprivate.h"
-#include "gskvulkanlineargradientpipelineprivate.h"
 #include "gskvulkantextpipelineprivate.h"
 #include "gskvulkanpushconstantsprivate.h"
 
@@ -497,9 +496,6 @@ gsk_vulkan_render_get_pipeline (GskVulkanRender       *self,
     guint num_textures;
     GskVulkanPipeline * (* create_func) (GdkVulkanContext *context, VkPipelineLayout layout, const char *name, VkRenderPass render_pass);
   } pipeline_info[GSK_VULKAN_N_PIPELINES] = {
-    { "linear",                     0, gsk_vulkan_linear_gradient_pipeline_new },
-    { "linear-clip",                0, gsk_vulkan_linear_gradient_pipeline_new },
-    { "linear-clip-rounded",        0, gsk_vulkan_linear_gradient_pipeline_new },
     { "mask",                       1, gsk_vulkan_text_pipeline_new },
     { "mask-clip",                  1, gsk_vulkan_text_pipeline_new },
     { "mask-clip-rounded",          1, gsk_vulkan_text_pipeline_new },
index db7b4f25a4fb0cf5cd7c09aae950058fef6325f1..520e42d8559421206110f1bec59eb2ffbec15b10 100644 (file)
@@ -18,7 +18,7 @@
 #include "gskvulkancolortextpipelineprivate.h"
 #include "gskvulkancrossfadeopprivate.h"
 #include "gskvulkaninsetshadowopprivate.h"
-#include "gskvulkanlineargradientpipelineprivate.h"
+#include "gskvulkanlineargradientopprivate.h"
 #include "gskvulkanopprivate.h"
 #include "gskvulkanrendererprivate.h"
 #include "gskvulkantextpipelineprivate.h"
@@ -47,13 +47,10 @@ typedef struct _GskVulkanParseState GskVulkanParseState;
 
 typedef struct _GskVulkanOpAny GskVulkanOpAny;
 typedef union  _GskVulkanOpAll GskVulkanOpAll;
-typedef struct _GskVulkanOpRender GskVulkanOpRender;
 typedef struct _GskVulkanOpText GskVulkanOpText;
 typedef struct _GskVulkanOpPushConstants GskVulkanOpPushConstants;
 
 typedef enum {
-  /* GskVulkanOpRender */
-  GSK_VULKAN_OP_LINEAR_GRADIENT,
   /* GskVulkanOpText */
   GSK_VULKAN_OP_TEXT,
   GSK_VULKAN_OP_COLOR_TEXT,
@@ -61,18 +58,6 @@ typedef enum {
   GSK_VULKAN_OP_PUSH_VERTEX_CONSTANTS,
 } GskVulkanOpType;
 
-/* render ops with 0, 1 or 2 sources */
-struct _GskVulkanOpRender
-{
-  GskVulkanOp          base;
-  GskVulkanOpType      type;
-  GskRenderNode       *node; /* node that's the source of this op */
-  graphene_point_t     offset; /* offset of the node */
-  GskVulkanPipeline   *pipeline; /* pipeline to use */
-  gsize                vertex_offset; /* offset into vertex buffer */
-  gsize                buffer_offset; /* offset into buffer */
-};
-
 struct _GskVulkanOpText
 {
   GskVulkanOp          base;
@@ -109,7 +94,6 @@ struct _GskVulkanOpAny
 union _GskVulkanOpAll
 {
   GskVulkanOpAny          any;
-  GskVulkanOpRender        render;
   GskVulkanOpText          text;
   GskVulkanOpPushConstants constants;
 };
@@ -527,23 +511,15 @@ gsk_vulkan_render_pass_add_linear_gradient_node (GskVulkanRenderPass       *self
                                                  const GskVulkanParseState *state,
                                                  GskRenderNode             *node)
 {
-  GskVulkanPipelineType pipeline_type;
-  GskVulkanOpRender op = {
-    .type = GSK_VULKAN_OP_LINEAR_GRADIENT,
-    .node = node,
-    .offset = state->offset,
-  };
-
-  if (gsk_vulkan_clip_contains_rect (&state->clip, &state->offset, &node->bounds))
-    pipeline_type = GSK_VULKAN_PIPELINE_LINEAR_GRADIENT;
-  else if (state->clip.type == GSK_VULKAN_CLIP_RECT)
-    pipeline_type = GSK_VULKAN_PIPELINE_LINEAR_GRADIENT_CLIP;
-  else
-    pipeline_type = GSK_VULKAN_PIPELINE_LINEAR_GRADIENT_CLIP_ROUNDED;
-
-  op.pipeline = gsk_vulkan_render_pass_get_pipeline (self, render, pipeline_type);
-  gsk_vulkan_render_pass_add_op (self, (GskVulkanOp *) &op);
-
+  gsk_vulkan_linear_gradient_op (self,
+                                 gsk_vulkan_clip_get_clip_type (&state->clip, &state->offset, &node->bounds),
+                                 &node->bounds,
+                                 &state->offset,
+                                 gsk_linear_gradient_node_get_start (node),
+                                 gsk_linear_gradient_node_get_end (node),
+                                 gsk_render_node_get_node_type (node) == GSK_REPEATING_LINEAR_GRADIENT_NODE,
+                                 gsk_linear_gradient_node_get_color_stops (node, NULL),
+                                 gsk_linear_gradient_node_get_n_color_stops (node));
   return TRUE;
 }
 
@@ -1491,7 +1467,6 @@ gsk_vulkan_render_op_upload (GskVulkanOp           *op_,
         default:
           g_assert_not_reached ();
         case GSK_VULKAN_OP_PUSH_VERTEX_CONSTANTS:
-        case GSK_VULKAN_OP_LINEAR_GRADIENT:
           break;
         }
 }
@@ -1523,16 +1498,9 @@ gsk_vulkan_render_op_count_vertex_data (GskVulkanOp *op_,
 
       switch (op->any.type)
         {
-        case GSK_VULKAN_OP_LINEAR_GRADIENT:
-          vertex_stride = gsk_vulkan_pipeline_get_vertex_stride (op->render.pipeline);
-          n_bytes = round_up (n_bytes, vertex_stride);
-          op->render.vertex_offset = n_bytes;
-          n_bytes += vertex_stride;
-          break;
-
         case GSK_VULKAN_OP_TEXT:
         case GSK_VULKAN_OP_COLOR_TEXT:
-          vertex_stride = gsk_vulkan_pipeline_get_vertex_stride (op->render.pipeline);
+          vertex_stride = gsk_vulkan_pipeline_get_vertex_stride (op->text.pipeline);
           n_bytes = round_up (n_bytes, vertex_stride);
           op->text.vertex_offset = n_bytes;
           n_bytes += vertex_stride * op->text.num_glyphs;
@@ -1585,8 +1553,8 @@ gsk_vulkan_render_op_collect_vertex_data (GskVulkanOp         *op_,
                                                         gsk_text_node_get_glyphs (op->text.node, NULL),
                                                         gsk_text_node_get_color (op->text.node),
                                                         &GRAPHENE_POINT_INIT (
-                                                          gsk_text_node_get_offset (op->text.node)->x + op->render.offset.x,
-                                                          gsk_text_node_get_offset (op->text.node)->y + op->render.offset.y
+                                                          gsk_text_node_get_offset (op->text.node)->x + op->text.offset.x,
+                                                          gsk_text_node_get_offset (op->text.node)->y + op->text.offset.y
                                                         ),
                                                         op->text.start_glyph,
                                                         op->text.num_glyphs,
@@ -1603,26 +1571,14 @@ gsk_vulkan_render_op_collect_vertex_data (GskVulkanOp         *op_,
                                                               gsk_text_node_get_num_glyphs (op->text.node),
                                                               gsk_text_node_get_glyphs (op->text.node, NULL),
                                                               &GRAPHENE_POINT_INIT (
-                                                                gsk_text_node_get_offset (op->text.node)->x + op->render.offset.x,
-                                                                gsk_text_node_get_offset (op->text.node)->y + op->render.offset.y
+                                                                gsk_text_node_get_offset (op->text.node)->x + op->text.offset.x,
+                                                                gsk_text_node_get_offset (op->text.node)->y + op->text.offset.y
                                                               ),
                                                               op->text.start_glyph,
                                                               op->text.num_glyphs,
                                                               op->text.scale);
           break;
 
-        case GSK_VULKAN_OP_LINEAR_GRADIENT:
-          gsk_vulkan_linear_gradient_pipeline_collect_vertex_data (GSK_VULKAN_LINEAR_GRADIENT_PIPELINE (op->render.pipeline),
-                                                                   data + op->render.vertex_offset,
-                                                                   &op->render.offset,
-                                                                   &op->render.node->bounds,
-                                                                   gsk_linear_gradient_node_get_start (op->render.node),
-                                                                   gsk_linear_gradient_node_get_end (op->render.node),
-                                                                   gsk_render_node_get_node_type (op->render.node) == GSK_REPEATING_LINEAR_GRADIENT_NODE,
-                                                                   op->render.buffer_offset,
-                                                                   gsk_linear_gradient_node_get_n_color_stops (op->render.node));
-          break;
-
         default:
           g_assert_not_reached ();
         case GSK_VULKAN_OP_PUSH_VERTEX_CONSTANTS:
@@ -1698,21 +1654,6 @@ gsk_vulkan_render_op_reserve_descriptor_sets (GskVulkanOp     *op_,
                                                                               GSK_VULKAN_SAMPLER_DEFAULT);
           break;
 
-        case GSK_VULKAN_OP_LINEAR_GRADIENT:
-          {
-            gsize n_stops = gsk_linear_gradient_node_get_n_color_stops (op->render.node);
-            guchar *mem;
-
-            mem = gsk_vulkan_render_get_buffer_memory (render,
-                                                       n_stops * sizeof (GskColorStop),
-                                                       G_ALIGNOF (GskColorStop),
-                                                       &op->render.buffer_offset);
-            memcpy (mem,
-                    gsk_linear_gradient_node_get_color_stops (op->render.node, NULL),
-                    n_stops * sizeof (GskColorStop));
-          }
-          break;
-
         default:
           g_assert_not_reached ();
 
@@ -1779,9 +1720,6 @@ gsk_vulkan_render_op_get_pipeline (GskVulkanOp *op_)
 
   switch (op->any.type)
     {
-    case GSK_VULKAN_OP_LINEAR_GRADIENT:
-      return gsk_vulkan_pipeline_get_pipeline (op->render.pipeline);
-
     case GSK_VULKAN_OP_TEXT:
     case GSK_VULKAN_OP_COLOR_TEXT:
       return gsk_vulkan_pipeline_get_pipeline (op->text.pipeline);
@@ -1819,13 +1757,6 @@ gsk_vulkan_render_op_command (GskVulkanOp      *op_,
                                                op->text.num_glyphs);
           break;
 
-        case GSK_VULKAN_OP_LINEAR_GRADIENT:
-          gsk_vulkan_linear_gradient_pipeline_draw (GSK_VULKAN_LINEAR_GRADIENT_PIPELINE (op->render.pipeline),
-                                                    command_buffer,
-                                                    op->render.vertex_offset / gsk_vulkan_pipeline_get_vertex_stride (op->render.pipeline),
-                                                    1);
-          break;
-
         case GSK_VULKAN_OP_PUSH_VERTEX_CONSTANTS:
           gsk_vulkan_push_constants_push (command_buffer,
                                           pipeline_layout,
index ae8c0a32ee9ca393648d8e2246eff4e9c94380ca..7e605a1933263c35b53561daa9b9c06ac947d876 100644 (file)
@@ -11,9 +11,6 @@
 G_BEGIN_DECLS
 
 typedef enum {
-  GSK_VULKAN_PIPELINE_LINEAR_GRADIENT,
-  GSK_VULKAN_PIPELINE_LINEAR_GRADIENT_CLIP,
-  GSK_VULKAN_PIPELINE_LINEAR_GRADIENT_CLIP_ROUNDED,
   GSK_VULKAN_PIPELINE_TEXT,
   GSK_VULKAN_PIPELINE_TEXT_CLIP,
   GSK_VULKAN_PIPELINE_TEXT_CLIP_ROUNDED,