Skip to content

Commit 7b8d780

Browse files
kennytannEvergreen
authored andcommitted
[UUM-59543] Fix Light2D shader warnings
Fix shader warnings in URP 2D template
1 parent 215c96d commit 7b8d780

File tree

4 files changed

+23
-12
lines changed

4 files changed

+23
-12
lines changed

Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/DrawRenderer2DPass.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -153,10 +153,8 @@ public void Render(RenderGraph graph, ContextContainer frameData, Renderer2DData
153153
builder.UseTexture(passData.lightTextures[i]);
154154
}
155155

156-
AccessFlags accessFlags = SystemInfo.graphicsDeviceType == GraphicsDeviceType.Metal ? AccessFlags.Write: AccessFlags.Read;
157-
158156
builder.SetRenderAttachment(commonResourceData.activeColorTexture, 0);
159-
builder.SetRenderAttachmentDepth(commonResourceData.activeDepthTexture, accessFlags);
157+
builder.SetRenderAttachmentDepth(commonResourceData.activeDepthTexture);
160158
builder.AllowPassCulling(false);
161159
builder.AllowGlobalStateModification(true);
162160
builder.UseAllGlobalTextures(true);

Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/DrawShadow2DPass.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,13 +61,16 @@ public void Render(RenderGraph graph, ContextContainer frameData, Renderer2DData
6161
passData.isVolumetric = isVolumetric;
6262
passData.shadowMap = shadowTexture;
6363
passData.shadowDepth = depthTexture;
64-
passData.depthTexture = !isVolumetric ? universal2DResourceData.intermediateDepth : commonResourceData.activeDepthTexture;
6564
passData.normalMap = layerBatch.lightStats.useNormalMap ? universal2DResourceData.normalsTexture[batchIndex] : TextureHandle.nullHandle;
6665
passData.fallOffLookUp = graph.ImportTexture(DrawLight2DPass.m_FallOffRTHandle);
6766
passData.lightLookUp = graph.ImportTexture(DrawLight2DPass.m_LightLookupRTHandle);
6867

6968
if (!isVolumetric)
69+
{
7070
passData.lightTextures = universal2DResourceData.lightTextures[batchIndex];
71+
passData.depthTexture = universal2DResourceData.intermediateDepth;
72+
builder.UseTexture(passData.depthTexture, AccessFlags.Write);
73+
}
7174
else
7275
{
7376
intermediateTexture[0] = commonResourceData.activeColorTexture;
@@ -85,7 +88,6 @@ public void Render(RenderGraph graph, ContextContainer frameData, Renderer2DData
8588

8689
builder.UseTexture(shadowTexture, AccessFlags.Write);
8790
builder.UseTexture(depthTexture, AccessFlags.Write);
88-
builder.UseTexture(passData.depthTexture, AccessFlags.Write);
8991
builder.UseTexture(passData.fallOffLookUp);
9092
builder.UseTexture(passData.lightLookUp);
9193

@@ -122,7 +124,7 @@ public void Render(RenderGraph graph, ContextContainer frameData, Renderer2DData
122124
cmd.SetRenderTarget(data.lightTexturesRT, data.depthTexture);
123125
}
124126
else
125-
cmd.SetRenderTarget(data.lightTextures[0], data.depthTexture);
127+
cmd.SetRenderTarget(data.lightTextures[0]);
126128

127129
// Light Pass
128130
using (new ProfilingScope(cmd, DrawLight2DPass.m_ProfilingSamplerLowLevel))

Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/LightingUtility.hlsl

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -78,18 +78,31 @@
7878
half4 _ShapeLightMaskFilter##index;\
7979
half4 _ShapeLightInvertedFilter##index;
8080

81+
#if !defined(USE_SHAPE_LIGHT_TYPE_0) && !defined(USE_SHAPE_LIGHT_TYPE_1) && !defined(USE_SHAPE_LIGHT_TYPE_2) && !defined(USE_SHAPE_LIGHT_TYPE_3)
82+
#define USE_DEFAULT_LIGHT_TYPE 1
83+
#endif
84+
8185
struct FragmentOutput
8286
{
83-
half4 GLightBuffer0 : SV_Target0;
87+
#if USE_SHAPE_LIGHT_TYPE_0 || USE_DEFAULT_LIGHT_TYPE
88+
half4 GLightBuffer0 : SV_Target0;
89+
#endif
90+
#if USE_SHAPE_LIGHT_TYPE_1
8491
half4 GLightBuffer1 : SV_Target1;
92+
#endif
93+
#if USE_SHAPE_LIGHT_TYPE_2
8594
half4 GLightBuffer2 : SV_Target2;
95+
#endif
96+
#if USE_SHAPE_LIGHT_TYPE_3
8697
half4 GLightBuffer3 : SV_Target3;
98+
#endif
8799
};
88100

89101
FragmentOutput ToFragmentOutput(half4 finalColor)
90102
{
91103
FragmentOutput output;
92-
#if USE_SHAPE_LIGHT_TYPE_0
104+
105+
#if USE_SHAPE_LIGHT_TYPE_0 || USE_DEFAULT_LIGHT_TYPE
93106
output.GLightBuffer0 = finalColor;
94107
#endif
95108
#if USE_SHAPE_LIGHT_TYPE_1
@@ -101,9 +114,7 @@ FragmentOutput ToFragmentOutput(half4 finalColor)
101114
#if USE_SHAPE_LIGHT_TYPE_3
102115
output.GLightBuffer3 = finalColor;
103116
#endif
104-
#if !defined(USE_SHAPE_LIGHT_TYPE_0) && !defined(USE_SHAPE_LIGHT_TYPE_1) && !defined(USE_SHAPE_LIGHT_TYPE_2) && !defined(USE_SHAPE_LIGHT_TYPE_3)
105-
output.GLightBuffer0 = finalColor;
106-
#endif
117+
107118
return output;
108119
}
109120

Packages/com.unity.render-pipelines.universal/Shaders/2D/Light2D.shader

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ Shader "Hidden/Light2D"
218218
return ToFragmentOutput(lightColor * _InverseHDREmulationScale);
219219
}
220220

221-
FragmentOutput frag(Varyings i) : SV_Target
221+
FragmentOutput frag(Varyings i)
222222
{
223223

224224
PerLight2D light;

0 commit comments

Comments
 (0)