static const GskVulkanShaderOpClass GSK_VULKAN_BLEND_MODE_OP_CLASS = {
GSK_VULKAN_OP_SIZE (GskVulkanBlendModeOp),
+ GSK_VULKAN_STAGE_COMMAND,
"blend-mode",
&gsk_vulkan_blend_mode_info,
gsk_vulkan_blend_mode_op_finish,
static const GskVulkanOpClass GSK_VULKAN_BLUR_OP_CLASS = {
GSK_VULKAN_OP_SIZE (GskVulkanBlurOp),
+ GSK_VULKAN_STAGE_COMMAND,
"blur",
&gsk_vulkan_blur_info,
gsk_vulkan_blur_op_finish,
static const GskVulkanOpClass GSK_VULKAN_BORDER_OP_CLASS = {
GSK_VULKAN_OP_SIZE (GskVulkanBorderOp),
+ GSK_VULKAN_STAGE_COMMAND,
"border",
&gsk_vulkan_border_info,
gsk_vulkan_border_op_finish,
static const GskVulkanOpClass GSK_VULKAN_COLOR_MATRIX_OP_CLASS = {
GSK_VULKAN_OP_SIZE (GskVulkanColorMatrixOp),
+ GSK_VULKAN_STAGE_COMMAND,
"color-matrix",
&gsk_vulkan_color_matrix_info,
gsk_vulkan_color_matrix_op_finish,
static const GskVulkanOpClass GSK_VULKAN_COLOR_OP_CLASS = {
GSK_VULKAN_OP_SIZE (GskVulkanColorOp),
+ GSK_VULKAN_STAGE_COMMAND,
"color",
&gsk_vulkan_color_info,
gsk_vulkan_color_op_finish,
static const GskVulkanOpClass GSK_VULKAN_CROSS_FADE_OP_CLASS = {
GSK_VULKAN_OP_SIZE (GskVulkanCrossFadeOp),
+ GSK_VULKAN_STAGE_COMMAND,
"cross-fade",
&gsk_vulkan_cross_fade_info,
gsk_vulkan_cross_fade_op_finish,
static const GskVulkanOpClass GSK_VULKAN_GLYPH_OP_CLASS = {
GSK_VULKAN_OP_SIZE (GskVulkanGlyphOp),
+ GSK_VULKAN_STAGE_COMMAND,
"glyph",
&gsk_vulkan_glyph_info,
gsk_vulkan_glyph_op_finish,
static const GskVulkanOpClass GSK_VULKAN_INSET_SHADOW_OP_CLASS = {
GSK_VULKAN_OP_SIZE (GskVulkanInsetShadowOp),
+ GSK_VULKAN_STAGE_COMMAND,
"inset-shadow",
&gsk_vulkan_inset_shadow_info,
gsk_vulkan_inset_shadow_op_finish,
static const GskVulkanOpClass GSK_VULKAN_LINEAR_GRADIENT_OP_CLASS = {
GSK_VULKAN_OP_SIZE (GskVulkanLinearGradientOp),
+ GSK_VULKAN_STAGE_COMMAND,
"linear",
&gsk_vulkan_linear_info,
gsk_vulkan_linear_gradient_op_finish,
static const GskVulkanOpClass GSK_VULKAN_COLOR_MASK_OP_CLASS = {
GSK_VULKAN_OP_SIZE (GskVulkanMaskOp),
+ GSK_VULKAN_STAGE_COMMAND,
"mask",
&gsk_vulkan_mask_info,
gsk_vulkan_mask_op_finish,
static const GskVulkanOpClass GSK_VULKAN_OFFSCREEN_OP_CLASS = {
GSK_VULKAN_OP_SIZE (GskVulkanOffscreenOp),
+ GSK_VULKAN_STAGE_BEGIN_PASS,
NULL,
NULL,
gsk_vulkan_offscreen_op_finish,
static const GskVulkanOpClass GSK_VULKAN_OFFSCREEN_END_OP_CLASS = {
GSK_VULKAN_OP_SIZE (GskVulkanOffscreenEndOp),
+ GSK_VULKAN_STAGE_END_PASS,
NULL,
NULL,
gsk_vulkan_offscreen_end_op_finish,
typedef struct _GskVulkanOp GskVulkanOp;
+typedef enum
+{
+ GSK_VULKAN_STAGE_UPLOAD,
+ GSK_VULKAN_STAGE_COMMAND,
+ /* magic ones */
+ GSK_VULKAN_STAGE_BEGIN_PASS,
+ GSK_VULKAN_STAGE_END_PASS
+} GskVulkanStage;
+
struct _GskVulkanOp
{
const GskVulkanOpClass *op_class;
struct _GskVulkanOpClass
{
gsize size;
+ GskVulkanStage stage;
const char * shader_name;
const VkPipelineVertexInputStateCreateInfo *vertex_input_state;
static const GskVulkanOpClass GSK_VULKAN_OUTSET_SHADOW_OP_CLASS = {
GSK_VULKAN_OP_SIZE (GskVulkanOutsetShadowOp),
+ GSK_VULKAN_STAGE_COMMAND,
"outset-shadow",
&gsk_vulkan_outset_shadow_info,
gsk_vulkan_outset_shadow_op_finish,
static const GskVulkanOpClass GSK_VULKAN_PUSH_CONSTANTS_OP_CLASS = {
GSK_VULKAN_OP_SIZE (GskVulkanPushConstantsOp),
+ GSK_VULKAN_STAGE_COMMAND,
NULL,
NULL,
gsk_vulkan_push_constants_op_finish,
static const GskVulkanOpClass GSK_VULKAN_SCISSOR_OP_CLASS = {
GSK_VULKAN_OP_SIZE (GskVulkanScissorOp),
+ GSK_VULKAN_STAGE_COMMAND,
NULL,
NULL,
gsk_vulkan_scissor_op_finish,
static const GskVulkanOpClass GSK_VULKAN_TEXTURE_OP_CLASS = {
GSK_VULKAN_OP_SIZE (GskVulkanTextureOp),
+ GSK_VULKAN_STAGE_COMMAND,
"texture",
&gsk_vulkan_texture_info,
gsk_vulkan_texture_op_finish,
static const GskVulkanOpClass GSK_VULKAN_UPLOAD_CAIRO_OP_CLASS = {
GSK_VULKAN_OP_SIZE (GskVulkanUploadCairoOp),
+ GSK_VULKAN_STAGE_UPLOAD,
NULL,
NULL,
gsk_vulkan_upload_cairo_op_finish,
static const GskVulkanOpClass GSK_VULKAN_UPLOAD_OP_CLASS = {
GSK_VULKAN_OP_SIZE (GskVulkanUploadOp),
+ GSK_VULKAN_STAGE_UPLOAD,
NULL,
NULL,
gsk_vulkan_upload_op_finish,