From a1f27d74b132fc1d9c50c32f37b8d8b2dfea5fd9 Mon Sep 17 00:00:00 2001 From: Harald Csaszar Date: Wed, 31 May 2023 17:53:02 +0200 Subject: [PATCH] [unity] URP shaders: Fixed SRP batcher compatibility issues and compile errors at some project configurations. --- .../2D/Include/Spine-Sprite-StandardPass-URP-2D.hlsl | 2 +- .../Shaders/2D/Spine-Sprite-URP-2D.shader | 11 ++++------- .../Shaders/Include/Spine-Input-Outline-URP.hlsl | 3 ++- .../Shaders/Include/Spine-Input-Sprite-URP.hlsl | 4 ++-- .../Shaders/Include/Spine-Input-URP.hlsl | 6 ++---- .../Shaders/Include/Spine-Sprite-ForwardPass-URP.hlsl | 2 +- .../Outline/Spine-Skeleton-OutlineOnly-URP.shader | 1 + .../Shaders/Spine-Sprite-URP.shader | 7 +------ 8 files changed, 14 insertions(+), 22 deletions(-) diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Include/Spine-Sprite-StandardPass-URP-2D.hlsl b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Include/Spine-Sprite-StandardPass-URP-2D.hlsl index 6b35dc94d..2f95b1bb2 100644 --- a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Include/Spine-Sprite-StandardPass-URP-2D.hlsl +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Include/Spine-Sprite-StandardPass-URP-2D.hlsl @@ -7,7 +7,7 @@ #include "../Include/SpineCoreShaders/SpriteLighting.cginc" #if defined(_ALPHAPREMULTIPLY_ON) #undef _STRAIGHT_ALPHA_INPUT -#else +#elif !defined(_STRAIGHT_ALPHA_INPUT) #define _STRAIGHT_ALPHA_INPUT #endif #include "../Include/SpineCoreShaders/Spine-Skeleton-Tint-Common.cginc" diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Spine-Sprite-URP-2D.shader b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Spine-Sprite-URP-2D.shader index 8a2d51686..425eefb55 100644 --- a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Spine-Sprite-URP-2D.shader +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Spine-Sprite-URP-2D.shader @@ -90,7 +90,7 @@ Shader "Universal Render Pipeline/2D/Spine/Sprite" #pragma shader_feature _TINT_BLACK_ON #pragma fragmentoption ARB_precision_hint_fastest - #pragma multi_compile _ PIXELSNAP_ON + #pragma multi_compile_local _ PIXELSNAP_ON //-------------------------------------- // GPU Instancing @@ -98,7 +98,6 @@ Shader "Universal Render Pipeline/2D/Spine/Sprite" //-------------------------------------- // Spine related keywords - #pragma shader_feature _ _STRAIGHT_ALPHA_INPUT #pragma vertex CombinedShapeLightVertex #pragma fragment CombinedShapeLightFragment @@ -109,6 +108,7 @@ Shader "Universal Render Pipeline/2D/Spine/Sprite" #include "Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/LightingUtility.hlsl" + #define SPRITE_SHADER_2D #include "../Include/Spine-Input-Sprite-URP.hlsl" #include "Include/Spine-Sprite-StandardPass-URP-2D.hlsl" ENDHLSL @@ -133,7 +133,7 @@ Shader "Universal Render Pipeline/2D/Spine/Sprite" #pragma shader_feature _NORMALMAP #pragma shader_feature _ALPHA_CLIP - #pragma multi_compile _ PIXELSNAP_ON + #pragma multi_compile_local _ PIXELSNAP_ON //-------------------------------------- // GPU Instancing @@ -143,7 +143,7 @@ Shader "Universal Render Pipeline/2D/Spine/Sprite" #define fixed4 half4 #define fixed3 half3 #define fixed half - + #define SPRITE_SHADER_2D #include "../Include/Spine-Input-Sprite-URP.hlsl" #include "Include/Spine-Sprite-NormalsPass-URP-2D.hlsl" @@ -161,9 +161,6 @@ Shader "Universal Render Pipeline/2D/Spine/Sprite" HLSLPROGRAM #pragma shader_feature _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAPREMULTIPLY_VERTEX_ONLY _ADDITIVEBLEND _ADDITIVEBLEND_SOFT _MULTIPLYBLEND _MULTIPLYBLEND_X2 - #if defined(_ALPHAPREMULTIPLY_VERTEX_ONLY) || defined(_ALPHABLEND_ON) - #define _STRAIGHT_ALPHA_INPUT - #endif #pragma prefer_hlslcc gles #pragma vertex UnlitVertex diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Input-Outline-URP.hlsl b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Input-Outline-URP.hlsl index adddea66a..ec749f38f 100644 --- a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Input-Outline-URP.hlsl +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Input-Outline-URP.hlsl @@ -10,8 +10,9 @@ CBUFFER_START(UnityPerMaterial) float4 _MainTex_ST; +#ifndef NO_CUTOFF_PARAM half _Cutoff; - +#endif float _OutlineWidth; float4 _OutlineColor; float4 _MainTex_TexelSize; diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Input-Sprite-URP.hlsl b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Input-Sprite-URP.hlsl index 6b8abdebe..cdd1d3841 100644 --- a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Input-Sprite-URP.hlsl +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Input-Sprite-URP.hlsl @@ -7,15 +7,15 @@ CBUFFER_START(UnityPerMaterial) float4 _MainTex_ST; half4 _Color; -#if defined(_TINT_BLACK_ON) half4 _Black; -#endif half _Cutoff; half _ShadowAlphaCutoff; +#ifndef SPRITE_SHADER_2D half _Metallic; half _Glossiness; half _GlossMapScale; +#endif half _BumpScale; diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Input-URP.hlsl b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Input-URP.hlsl index b0dad22cf..1b2867099 100644 --- a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Input-URP.hlsl +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Input-URP.hlsl @@ -12,10 +12,8 @@ CBUFFER_START(UnityPerMaterial) float4 _MainTex_ST; half _Cutoff; -#if defined(_TINT_BLACK_ON) - half4 _Color; - half4 _Black; -#endif +half4 _Color; +half4 _Black; CBUFFER_END diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Sprite-ForwardPass-URP.hlsl b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Sprite-ForwardPass-URP.hlsl index be3730242..fc573a132 100644 --- a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Sprite-ForwardPass-URP.hlsl +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Sprite-ForwardPass-URP.hlsl @@ -9,7 +9,7 @@ #if defined(_ALPHAPREMULTIPLY_ON) #undef _STRAIGHT_ALPHA_INPUT -#else +#elif !defined(_STRAIGHT_ALPHA_INPUT) #define _STRAIGHT_ALPHA_INPUT #endif #include "SpineCoreShaders/Spine-Skeleton-Tint-Common.cginc" diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Outline/Spine-Skeleton-OutlineOnly-URP.shader b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Outline/Spine-Skeleton-OutlineOnly-URP.shader index 0c01bb842..5f58688d7 100644 --- a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Outline/Spine-Skeleton-OutlineOnly-URP.shader +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Outline/Spine-Skeleton-OutlineOnly-URP.shader @@ -49,6 +49,7 @@ Shader "Universal Render Pipeline/Spine/Outline/Skeleton-OutlineOnly" { #define fixed4 half4 #define fixed3 half3 #define fixed half + #define NO_CUTOFF_PARAM #include "../Include/Spine-Input-Outline-URP.hlsl" #include "../Include/Spine-Outline-Pass-URP.hlsl" ENDHLSL diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Spine-Sprite-URP.shader b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Spine-Sprite-URP.shader index 399937973..01add5f75 100644 --- a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Spine-Sprite-URP.shader +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Spine-Sprite-URP.shader @@ -111,7 +111,7 @@ Shader "Universal Render Pipeline/Spine/Sprite" #pragma multi_compile _ _SHADOWS_SOFT #pragma multi_compile _ _MIXED_LIGHTING_SUBTRACTIVE #pragma multi_compile_fragment _ _LIGHT_COOKIES - + // Farward+ renderer keywords #pragma multi_compile_fragment _ _LIGHT_LAYERS #pragma multi_compile _ _FORWARD_PLUS @@ -129,7 +129,6 @@ Shader "Universal Render Pipeline/Spine/Sprite" //-------------------------------------- // Spine related keywords - #pragma shader_feature _ _STRAIGHT_ALPHA_INPUT #pragma vertex ForwardPassVertexSprite #pragma fragment ForwardPassFragmentSprite @@ -225,10 +224,6 @@ Shader "Universal Render Pipeline/Spine/Sprite" HLSLPROGRAM #pragma shader_feature _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAPREMULTIPLY_VERTEX_ONLY _ADDITIVEBLEND _ADDITIVEBLEND_SOFT _MULTIPLYBLEND _MULTIPLYBLEND_X2 - #if defined(_ALPHAPREMULTIPLY_VERTEX_ONLY) || defined(_ALPHABLEND_ON) - #define _STRAIGHT_ALPHA_INPUT - #endif - #pragma prefer_hlslcc gles #pragma vertex vert #pragma fragment frag