summaryrefslogtreecommitdiffstats
path: root/globals.cginc
diff options
context:
space:
mode:
authoryum <yum.food.vr@gmail.com>2026-01-02 16:21:34 -0800
committeryum <yum.food.vr@gmail.com>2026-01-02 17:32:14 -0800
commitfcc76b257ef5cfb4514669df3b0144f8e8dd76ef (patch)
treebb6e73c8f199699b3e88afb85e24e2c8b3df5aab /globals.cginc
parent43d81e11992c11eda06e4b67d2c5bd0b9c4b729b (diff)
Fold: implement dynamic branching in shader
Switch from static branching approach using per-op data and fixed execution order to dynamic branching approach using dynamic data. This confers the main benefit of letting us dynamically reorder ops and duplicate them. It also lets us eliminate some of the plumbing tedium whenever we want to add new ops.
Diffstat (limited to 'globals.cginc')
-rw-r--r--globals.cginc255
1 files changed, 178 insertions, 77 deletions
diff --git a/globals.cginc b/globals.cginc
index ddb126c..911aceb 100644
--- a/globals.cginc
+++ b/globals.cginc
@@ -75,83 +75,6 @@ float3 _Cloth_Sheen_Color;
texture2D _Cloth_Sheen_DFG_LUT;
#endif // _CLOTH_SHEEN
-#if defined(_VERTEX_DEFORMATION_TUBE_TO_PLANE_0)
-float3 _Vertex_Deformation_Tube_To_Plane_0_p;
-float3 _Vertex_Deformation_Tube_To_Plane_0_r;
-float3 _Vertex_Deformation_Tube_To_Plane_0_s;
-float _Vertex_Deformation_Tube_To_Plane_0_t;
-#endif // _VERTEX_DEFORMATION_TUBE_TO_PLANE_0
-
-#if defined(_VERTEX_DEFORMATION_AXIS_ALIGN)
-float3 _Vertex_Deformation_Axis_Align_po;
-float3 _Vertex_Deformation_Axis_Align_pp;
-float3 _Vertex_Deformation_Axis_Align_r;
-float _Vertex_Deformation_Axis_Align_t;
-#endif // _VERTEX_DEFORMATION_AXIS_ALIGN
-
-#if defined(_VERTEX_DEFORMATION_TUBE_TO_PLANE_1)
-float3 _Vertex_Deformation_Tube_To_Plane_1_p;
-float3 _Vertex_Deformation_Tube_To_Plane_1_r;
-float3 _Vertex_Deformation_Tube_To_Plane_1_s;
-float _Vertex_Deformation_Tube_To_Plane_1_t;
-#endif // _VERTEX_DEFORMATION_TUBE_TO_PLANE_1
-
-#if defined(_VERTEX_DEFORMATION_PLANE_TO_TUBE_0)
-float3 _Vertex_Deformation_Plane_To_Tube_0_p;
-float3 _Vertex_Deformation_Plane_To_Tube_0_r;
-float3 _Vertex_Deformation_Plane_To_Tube_0_s;
-float _Vertex_Deformation_Plane_To_Tube_0_t;
-#endif // _VERTEX_DEFORMATION_PLANE_TO_TUBE_0
-
-#if defined(_VERTEX_DEFORMATION_POINT_ALIGN_0)
-float3 _Vertex_Deformation_Point_Align_0_po;
-float3 _Vertex_Deformation_Point_Align_0_pp;
-float3 _Vertex_Deformation_Point_Align_0_r;
-float _Vertex_Deformation_Point_Align_0_t;
-#endif // _VERTEX_DEFORMATION_POINT_ALIGN_0
-
-#if defined(_VERTEX_DEFORMATION_POINT_ALIGN_1)
-float3 _Vertex_Deformation_Point_Align_1_po;
-float3 _Vertex_Deformation_Point_Align_1_pp;
-float3 _Vertex_Deformation_Point_Align_1_r;
-float _Vertex_Deformation_Point_Align_1_t;
-#endif // _VERTEX_DEFORMATION_POINT_ALIGN_1
-
-#if defined(_VERTEX_DEFORMATION_PLANE_TO_TUBE_1)
-float3 _Vertex_Deformation_Plane_To_Tube_1_p;
-float3 _Vertex_Deformation_Plane_To_Tube_1_r;
-float3 _Vertex_Deformation_Plane_To_Tube_1_s;
-float _Vertex_Deformation_Plane_To_Tube_1_t;
-#endif // _VERTEX_DEFORMATION_PLANE_TO_TUBE_1
-
-#if defined(_VERTEX_DEFORMATION_NORM_CONVERSION)
-float _Vertex_Deformation_Norm_Conversion_Input_k;
-float _Vertex_Deformation_Norm_Conversion_Output_k;
-float _Vertex_Deformation_Norm_Conversion_t;
-#endif // _VERTEX_DEFORMATION_NORM_CONVERSION
-
-#if defined(_VERTEX_DEFORMATION_SEAL)
-float _Vertex_Deformation_Seal_A;
-float _Vertex_Deformation_Seal_k;
-float _Vertex_Deformation_Seal_t;
-#endif // _VERTEX_DEFORMATION_SEAL
-
-#if defined(_VERTEX_DEFORMATION_SINE_WAVES)
-float3 _Vertex_Deformation_Sine_Waves_Amplitude;
-float3 _Vertex_Deformation_Sine_Waves_Direction;
-float3 _Vertex_Deformation_Sine_Waves_k;
-float3 _Vertex_Deformation_Sine_Waves_omega;
-#endif // _VERTEX_DEFORMATION_SINE_WAVES
-
-#if defined(_VERTEX_DEFORMATION_FBM)
-float3 _Vertex_Deformation_FBM_Velocity;
-float3 _Vertex_Deformation_FBM_Amplitude;
-float _Vertex_Deformation_FBM_Gain;
-float _Vertex_Deformation_FBM_Lacunarity;
-float3 _Vertex_Deformation_FBM_Period;
-float _Vertex_Deformation_FBM_Octaves;
-#endif // _VERTEX_DEFORMATION_FBM
-
#if defined(_UV_SCROLL)
float2 _UV_Scroll_Speed;
#endif // _UV_SCROLL
@@ -243,4 +166,182 @@ float _Ray_Marching_Hexagon_Radius;
float _Ray_Marching_Hexagon_Height;
#endif // _RAY_MARCHING_HEXAGON
+#if defined(_VERTEX_DEFORMATION)
+float _Vertex_Deformation_Slot_0_Enabled;
+int _Vertex_Deformation_Slot_0_Opcode;
+float _Vertex_Deformation_Slot_0_Float_0;
+float _Vertex_Deformation_Slot_0_Float_1;
+float _Vertex_Deformation_Slot_0_Float_2;
+float _Vertex_Deformation_Slot_0_Float_3;
+float4 _Vertex_Deformation_Slot_0_Vector_0;
+float4 _Vertex_Deformation_Slot_0_Vector_1;
+float4 _Vertex_Deformation_Slot_0_Vector_2;
+float4 _Vertex_Deformation_Slot_0_Vector_3;
+
+float _Vertex_Deformation_Slot_1_Enabled;
+int _Vertex_Deformation_Slot_1_Opcode;
+float _Vertex_Deformation_Slot_1_Float_0;
+float _Vertex_Deformation_Slot_1_Float_1;
+float _Vertex_Deformation_Slot_1_Float_2;
+float _Vertex_Deformation_Slot_1_Float_3;
+float4 _Vertex_Deformation_Slot_1_Vector_0;
+float4 _Vertex_Deformation_Slot_1_Vector_1;
+float4 _Vertex_Deformation_Slot_1_Vector_2;
+float4 _Vertex_Deformation_Slot_1_Vector_3;
+
+float _Vertex_Deformation_Slot_2_Enabled;
+int _Vertex_Deformation_Slot_2_Opcode;
+float _Vertex_Deformation_Slot_2_Float_0;
+float _Vertex_Deformation_Slot_2_Float_1;
+float _Vertex_Deformation_Slot_2_Float_2;
+float _Vertex_Deformation_Slot_2_Float_3;
+float4 _Vertex_Deformation_Slot_2_Vector_0;
+float4 _Vertex_Deformation_Slot_2_Vector_1;
+float4 _Vertex_Deformation_Slot_2_Vector_2;
+float4 _Vertex_Deformation_Slot_2_Vector_3;
+
+float _Vertex_Deformation_Slot_3_Enabled;
+int _Vertex_Deformation_Slot_3_Opcode;
+float _Vertex_Deformation_Slot_3_Float_0;
+float _Vertex_Deformation_Slot_3_Float_1;
+float _Vertex_Deformation_Slot_3_Float_2;
+float _Vertex_Deformation_Slot_3_Float_3;
+float4 _Vertex_Deformation_Slot_3_Vector_0;
+float4 _Vertex_Deformation_Slot_3_Vector_1;
+float4 _Vertex_Deformation_Slot_3_Vector_2;
+float4 _Vertex_Deformation_Slot_3_Vector_3;
+
+float _Vertex_Deformation_Slot_4_Enabled;
+int _Vertex_Deformation_Slot_4_Opcode;
+float _Vertex_Deformation_Slot_4_Float_0;
+float _Vertex_Deformation_Slot_4_Float_1;
+float _Vertex_Deformation_Slot_4_Float_2;
+float _Vertex_Deformation_Slot_4_Float_3;
+float4 _Vertex_Deformation_Slot_4_Vector_0;
+float4 _Vertex_Deformation_Slot_4_Vector_1;
+float4 _Vertex_Deformation_Slot_4_Vector_2;
+float4 _Vertex_Deformation_Slot_4_Vector_3;
+
+float _Vertex_Deformation_Slot_5_Enabled;
+int _Vertex_Deformation_Slot_5_Opcode;
+float _Vertex_Deformation_Slot_5_Float_0;
+float _Vertex_Deformation_Slot_5_Float_1;
+float _Vertex_Deformation_Slot_5_Float_2;
+float _Vertex_Deformation_Slot_5_Float_3;
+float4 _Vertex_Deformation_Slot_5_Vector_0;
+float4 _Vertex_Deformation_Slot_5_Vector_1;
+float4 _Vertex_Deformation_Slot_5_Vector_2;
+float4 _Vertex_Deformation_Slot_5_Vector_3;
+
+float _Vertex_Deformation_Slot_6_Enabled;
+int _Vertex_Deformation_Slot_6_Opcode;
+float _Vertex_Deformation_Slot_6_Float_0;
+float _Vertex_Deformation_Slot_6_Float_1;
+float _Vertex_Deformation_Slot_6_Float_2;
+float _Vertex_Deformation_Slot_6_Float_3;
+float4 _Vertex_Deformation_Slot_6_Vector_0;
+float4 _Vertex_Deformation_Slot_6_Vector_1;
+float4 _Vertex_Deformation_Slot_6_Vector_2;
+float4 _Vertex_Deformation_Slot_6_Vector_3;
+
+float _Vertex_Deformation_Slot_7_Enabled;
+int _Vertex_Deformation_Slot_7_Opcode;
+float _Vertex_Deformation_Slot_7_Float_0;
+float _Vertex_Deformation_Slot_7_Float_1;
+float _Vertex_Deformation_Slot_7_Float_2;
+float _Vertex_Deformation_Slot_7_Float_3;
+float4 _Vertex_Deformation_Slot_7_Vector_0;
+float4 _Vertex_Deformation_Slot_7_Vector_1;
+float4 _Vertex_Deformation_Slot_7_Vector_2;
+float4 _Vertex_Deformation_Slot_7_Vector_3;
+
+float _Vertex_Deformation_Slot_8_Enabled;
+int _Vertex_Deformation_Slot_8_Opcode;
+float _Vertex_Deformation_Slot_8_Float_0;
+float _Vertex_Deformation_Slot_8_Float_1;
+float _Vertex_Deformation_Slot_8_Float_2;
+float _Vertex_Deformation_Slot_8_Float_3;
+float4 _Vertex_Deformation_Slot_8_Vector_0;
+float4 _Vertex_Deformation_Slot_8_Vector_1;
+float4 _Vertex_Deformation_Slot_8_Vector_2;
+float4 _Vertex_Deformation_Slot_8_Vector_3;
+
+float _Vertex_Deformation_Slot_9_Enabled;
+int _Vertex_Deformation_Slot_9_Opcode;
+float _Vertex_Deformation_Slot_9_Float_0;
+float _Vertex_Deformation_Slot_9_Float_1;
+float _Vertex_Deformation_Slot_9_Float_2;
+float _Vertex_Deformation_Slot_9_Float_3;
+float4 _Vertex_Deformation_Slot_9_Vector_0;
+float4 _Vertex_Deformation_Slot_9_Vector_1;
+float4 _Vertex_Deformation_Slot_9_Vector_2;
+float4 _Vertex_Deformation_Slot_9_Vector_3;
+
+float _Vertex_Deformation_Slot_10_Enabled;
+int _Vertex_Deformation_Slot_10_Opcode;
+float _Vertex_Deformation_Slot_10_Float_0;
+float _Vertex_Deformation_Slot_10_Float_1;
+float _Vertex_Deformation_Slot_10_Float_2;
+float _Vertex_Deformation_Slot_10_Float_3;
+float4 _Vertex_Deformation_Slot_10_Vector_0;
+float4 _Vertex_Deformation_Slot_10_Vector_1;
+float4 _Vertex_Deformation_Slot_10_Vector_2;
+float4 _Vertex_Deformation_Slot_10_Vector_3;
+
+float _Vertex_Deformation_Slot_11_Enabled;
+int _Vertex_Deformation_Slot_11_Opcode;
+float _Vertex_Deformation_Slot_11_Float_0;
+float _Vertex_Deformation_Slot_11_Float_1;
+float _Vertex_Deformation_Slot_11_Float_2;
+float _Vertex_Deformation_Slot_11_Float_3;
+float4 _Vertex_Deformation_Slot_11_Vector_0;
+float4 _Vertex_Deformation_Slot_11_Vector_1;
+float4 _Vertex_Deformation_Slot_11_Vector_2;
+float4 _Vertex_Deformation_Slot_11_Vector_3;
+
+float _Vertex_Deformation_Slot_12_Enabled;
+int _Vertex_Deformation_Slot_12_Opcode;
+float _Vertex_Deformation_Slot_12_Float_0;
+float _Vertex_Deformation_Slot_12_Float_1;
+float _Vertex_Deformation_Slot_12_Float_2;
+float _Vertex_Deformation_Slot_12_Float_3;
+float4 _Vertex_Deformation_Slot_12_Vector_0;
+float4 _Vertex_Deformation_Slot_12_Vector_1;
+float4 _Vertex_Deformation_Slot_12_Vector_2;
+float4 _Vertex_Deformation_Slot_12_Vector_3;
+
+float _Vertex_Deformation_Slot_13_Enabled;
+int _Vertex_Deformation_Slot_13_Opcode;
+float _Vertex_Deformation_Slot_13_Float_0;
+float _Vertex_Deformation_Slot_13_Float_1;
+float _Vertex_Deformation_Slot_13_Float_2;
+float _Vertex_Deformation_Slot_13_Float_3;
+float4 _Vertex_Deformation_Slot_13_Vector_0;
+float4 _Vertex_Deformation_Slot_13_Vector_1;
+float4 _Vertex_Deformation_Slot_13_Vector_2;
+float4 _Vertex_Deformation_Slot_13_Vector_3;
+
+float _Vertex_Deformation_Slot_14_Enabled;
+int _Vertex_Deformation_Slot_14_Opcode;
+float _Vertex_Deformation_Slot_14_Float_0;
+float _Vertex_Deformation_Slot_14_Float_1;
+float _Vertex_Deformation_Slot_14_Float_2;
+float _Vertex_Deformation_Slot_14_Float_3;
+float4 _Vertex_Deformation_Slot_14_Vector_0;
+float4 _Vertex_Deformation_Slot_14_Vector_1;
+float4 _Vertex_Deformation_Slot_14_Vector_2;
+float4 _Vertex_Deformation_Slot_14_Vector_3;
+
+float _Vertex_Deformation_Slot_15_Enabled;
+int _Vertex_Deformation_Slot_15_Opcode;
+float _Vertex_Deformation_Slot_15_Float_0;
+float _Vertex_Deformation_Slot_15_Float_1;
+float _Vertex_Deformation_Slot_15_Float_2;
+float _Vertex_Deformation_Slot_15_Float_3;
+float4 _Vertex_Deformation_Slot_15_Vector_0;
+float4 _Vertex_Deformation_Slot_15_Vector_1;
+float4 _Vertex_Deformation_Slot_15_Vector_2;
+float4 _Vertex_Deformation_Slot_15_Vector_3;
+#endif // _VERTEX_DEFORMATION
+
#endif // __GLOBALS_INC