Skip to content

Commit ac87de1

Browse files
Merge remote-tracking branch 'refs/remotes/origin/master' into Refactor-lightloop
2 parents 4f0b219 + 8d423a8 commit ac87de1

File tree

9 files changed

+38
-22
lines changed

9 files changed

+38
-22
lines changed

Assets/ScriptableRenderLoop/HDRenderLoop/Lighting/TilePass/Resources/lightlistbuild-bigtile.compute

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ void BigTileLightListGen(uint threadID : SV_GroupIndex, uint3 u3GroupID : SV_Gro
145145
int offs = tileIDX.y*nrBigTilesX + tileIDX.x;
146146

147147
for(i=t; i<(iNrCoarseLights+1); i+=NR_THREADS)
148-
g_vLightList[MAX_NR_BIGTILE_LIGHTS_PLUSONE*offs + i] = t==0 ? iNrCoarseLights : lightsListLDS[i-1];
148+
g_vLightList[MAX_NR_BIGTILE_LIGHTS_PLUSONE*offs + i] = i==0 ? iNrCoarseLights : lightsListLDS[i-1];
149149
}
150150

151151

Assets/ScriptableRenderLoop/HDRenderLoop/Lighting/TilePass/Resources/lightlistbuild.compute

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -294,7 +294,7 @@ int SphericalIntersectionTests(uint threadID, int iNrCoarseLights, float2 screen
294294

295295
for(l=threadID; l<iNrCoarseLights; l+=NR_THREADS)
296296
{
297-
SFiniteLightBound lightData = g_data[coarseList[l]];
297+
SFiniteLightBound lightData = g_data[prunedList[l]];
298298

299299
if( DoesSphereOverlapTile(V, halfTileSizeAtZDistOne, lightData.center.xyz, lightData.radius) )
300300
{

Assets/ScriptableRenderLoop/HDRenderLoop/Lighting/TilePass/ShaderBase.hlsl

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,20 @@
1919

2020
float FetchDepth(Texture2D depthTexture, uint2 pixCoord)
2121
{
22-
return 1.0 - LOAD_TEXTURE2D(depthTexture, pixCoord.xy).x;
22+
float zdpth = LOAD_TEXTURE2D(depthTexture, pixCoord.xy).x;
23+
#if !defined(SHADER_API_GLES3) && !defined(SHADER_API_GLCORE)
24+
zdpth = 1.0 - zdpth;
25+
#endif
26+
return zdpth;
2327
}
2428

2529
float FetchDepthMSAA(Texture2DMS<float> depthTexture, uint2 pixCoord, uint sampleIdx)
2630
{
27-
return 1.0 - LOAD_TEXTURE2D_MSAA(depthTexture, pixCoord.xy, sampleIdx).x;
31+
float zdpth = LOAD_TEXTURE2D_MSAA(depthTexture, pixCoord.xy, sampleIdx).x;
32+
#if !defined(SHADER_API_GLES3) && !defined(SHADER_API_GLCORE)
33+
zdpth = 1.0 - zdpth;
34+
#endif
35+
return zdpth;
2836
}
2937

3038
#endif

Assets/ScriptableRenderLoop/RenderPasses/ShadowRenderPass.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -326,7 +326,7 @@ void RenderPackedShadows(RenderLoop loop, CullResults cullResults, ref ShadowOut
326326
if (!cullResults.GetShadowCasterBounds(lightIndex, out bounds))
327327
{
328328
Profiler.EndSample();
329-
return;
329+
continue;
330330
}
331331
Profiler.EndSample();
332332

Assets/ScriptableRenderLoop/common/ShaderBase.h

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,20 @@
3131

3232
float FetchDepth(Texture2D depthTexture, uint2 pixCoord)
3333
{
34-
return 1 - depthTexture.Load(uint3(pixCoord.xy, 0)).x;
34+
float zdpth = depthTexture.Load(uint3(pixCoord.xy, 0)).x;
35+
#if !defined(SHADER_API_GLES3) && !defined(SHADER_API_GLCORE)
36+
zdpth = 1.0 - zdpth;
37+
#endif
38+
return zdpth;
3539
}
3640

3741
float FetchDepthMSAA(Texture2DMS<float> depthTexture, uint2 pixCoord, uint sampleIdx)
3842
{
39-
return 1 - depthTexture.Load(uint3(pixCoord.xy, 0), sampleIdx).x;
43+
float zdpth = depthTexture.Load(uint3(pixCoord.xy, 0), sampleIdx).x;
44+
#if !defined(SHADER_API_GLES3) && !defined(SHADER_API_GLCORE)
45+
zdpth = 1.0 - zdpth;
46+
#endif
47+
return zdpth;
4048
}
4149

4250
#endif

Assets/ScriptableRenderLoop/fptl/LightingTemplate.hlsl

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,10 @@ UNITY_DECLARE_TEXCUBEARRAY(_pointCookieTextures);
4545
StructuredBuffer<DirectionalLight> g_dirLightData;
4646

4747

48-
#define VALVE_DECLARE_SHADOWMAP( tex ) Texture2D tex; SamplerComparisonState sampler##tex
49-
#define VALVE_SAMPLE_SHADOW( tex, coord ) tex.SampleCmpLevelZero( sampler##tex, (coord).xy, (coord).z )
48+
#define DECLARE_SHADOWMAP( tex ) Texture2D tex; SamplerComparisonState sampler##tex
49+
#define SAMPLE_SHADOW( tex, coord ) tex.SampleCmpLevelZero( sampler##tex, (coord).xy, (coord).z )
5050

51-
VALVE_DECLARE_SHADOWMAP(g_tShadowBuffer);
51+
DECLARE_SHADOWMAP(g_tShadowBuffer);
5252

5353
float ComputeShadow_PCF_3x3_Gaussian(float3 vPositionWs, float4x4 matWorldToShadow)
5454
{
@@ -63,23 +63,23 @@ float ComputeShadow_PCF_3x3_Gaussian(float3 vPositionWs, float4x4 matWorldToShad
6363
float objDepth = saturate(257.0 / 256.0 - vPositionTextureSpace.z);
6464

6565
float4 v20Taps;
66-
v20Taps.x = VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms1.xy, objDepth)).x; // 1 1
67-
v20Taps.y = VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms1.zy, objDepth)).x; // -1 1
68-
v20Taps.z = VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms1.xw, objDepth)).x; // 1 -1
69-
v20Taps.w = VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms1.zw, objDepth)).x; // -1 -1
66+
v20Taps.x = SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms1.xy, objDepth)).x; // 1 1
67+
v20Taps.y = SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms1.zy, objDepth)).x; // -1 1
68+
v20Taps.z = SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms1.xw, objDepth)).x; // 1 -1
69+
v20Taps.w = SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms1.zw, objDepth)).x; // -1 -1
7070
float flSum = dot(v20Taps.xyzw, float4(0.25, 0.25, 0.25, 0.25));
7171
if ((flSum == 0.0) || (flSum == 1.0))
7272
return flSum;
7373
flSum *= g_vShadow3x3PCFTerms0.x * 4.0;
7474

7575
float4 v33Taps;
76-
v33Taps.x = VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms2.xz, objDepth)).x; // 1 0
77-
v33Taps.y = VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms3.xz, objDepth)).x; // -1 0
78-
v33Taps.z = VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms3.zy, objDepth)).x; // 0 -1
79-
v33Taps.w = VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms2.zy, objDepth)).x; // 0 1
76+
v33Taps.x = SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms2.xz, objDepth)).x; // 1 0
77+
v33Taps.y = SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms3.xz, objDepth)).x; // -1 0
78+
v33Taps.z = SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms3.zy, objDepth)).x; // 0 -1
79+
v33Taps.w = SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms2.zy, objDepth)).x; // 0 1
8080
flSum += dot(v33Taps.xyzw, g_vShadow3x3PCFTerms0.yyyy);
8181

82-
flSum += VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy, objDepth)).x * g_vShadow3x3PCFTerms0.z;
82+
flSum += SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy, objDepth)).x * g_vShadow3x3PCFTerms0.z;
8383

8484
return flSum;
8585
}

Assets/ScriptableRenderLoop/fptl/StandardTest.shader

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ Shader "Experim/StdShader"
8484
#pragma multi_compile DIRLIGHTMAP_OFF DIRLIGHTMAP_COMBINED DIRLIGHTMAP_SEPARATE
8585
#pragma multi_compile DYNAMICLIGHTMAP_OFF DYNAMICLIGHTMAP_ON
8686
#pragma multi_compile_fog
87+
#pragma multi_compile TILED_FORWARD REGULAR_FORWARD
8788

8889
#pragma vertex vertForward
8990
#pragma fragment fragForward
@@ -124,7 +125,6 @@ Shader "Experim/StdShader"
124125
#pragma multi_compile DIRLIGHTMAP_OFF DIRLIGHTMAP_COMBINED DIRLIGHTMAP_SEPARATE
125126
#pragma multi_compile DYNAMICLIGHTMAP_OFF DYNAMICLIGHTMAP_ON
126127
#pragma multi_compile_fog
127-
#pragma multi_compile TILED_FORWARD REGULAR_FORWARD
128128

129129
#pragma vertex vertForward
130130
#pragma fragment fragNoLight

Assets/ScriptableRenderLoop/fptl/lightlistbuild-bigtile.compute

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ void BigTileLightListGen(uint threadID : SV_GroupIndex, uint3 u3GroupID : SV_Gro
143143
int offs = tileIDX.y*nrBigTilesX + tileIDX.x;
144144

145145
for(int i=t; i<(iNrCoarseLights+1); i+=NR_THREADS)
146-
g_vLightList[MAX_NR_BIGTILE_LIGHTS_PLUSONE*offs + i] = t==0 ? iNrCoarseLights : lightsListLDS[i-1];
146+
g_vLightList[MAX_NR_BIGTILE_LIGHTS_PLUSONE*offs + i] = i==0 ? iNrCoarseLights : lightsListLDS[i-1];
147147
}
148148

149149

Assets/ScriptableRenderLoop/fptl/lightlistbuild.compute

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -294,7 +294,7 @@ int SphericalIntersectionTests(uint threadID, int iNrCoarseLights, float2 screen
294294

295295
for(int l=threadID; l<iNrCoarseLights; l+=NR_THREADS)
296296
{
297-
SFiniteLightBound lightData = g_data[coarseList[l]];
297+
SFiniteLightBound lightData = g_data[prunedList[l]];
298298

299299
if( DoesSphereOverlapTile(V, halfTileSizeAtZDistOne, lightData.center.xyz, lightData.radius) )
300300
{

0 commit comments

Comments
 (0)