Skip to content
This repository was archived by the owner on Nov 30, 2020. It is now read-only.

Commit 618fffc

Browse files
committed
Quick hack for HDRP
!FIXME!
1 parent 4f9ea06 commit 618fffc

File tree

1 file changed

+20
-9
lines changed

1 file changed

+20
-9
lines changed

PostProcessing/Runtime/Effects/AmbientOcclusion.cs

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -64,27 +64,38 @@ public sealed class AmbientOcclusion : PostProcessEffectSettings
6464
[Tooltip("Number of sample points, which affects quality and performance. Lowest, Low & Medium passes are downsampled. High and Ultra are not and should only be used on high-end hardware.")]
6565
public AmbientOcclusionQualityParameter quality = new AmbientOcclusionQualityParameter { value = AmbientOcclusionQuality.Medium };
6666

67+
// SRPs can call this method without a context set (see HDRP)
68+
// We need a better way to handle this than checking for a null context, context should
69+
// never be null.
6770
public override bool IsEnabledAndSupported(PostProcessRenderContext context)
6871
{
6972
bool state = enabled.value
7073
&& intensity.value > 0f;
7174

7275
if (mode.value == AmbientOcclusionMode.ScalableAmbientObscurance)
7376
{
74-
state &= !RuntimeUtilities.scriptableRenderPipelineActive
75-
&& context.resources.shaders.scalableAO
76-
&& context.resources.shaders.scalableAO.isSupported;
77+
state &= !RuntimeUtilities.scriptableRenderPipelineActive;
78+
79+
if (context != null)
80+
{
81+
state &= context.resources.shaders.scalableAO
82+
&& context.resources.shaders.scalableAO.isSupported;
83+
}
7784
}
7885
else if (mode.value == AmbientOcclusionMode.MultiScaleVolumetricObscurance)
7986
{
8087
#if UNITY_2017_1_OR_NEWER
88+
if (context != null)
89+
{
90+
state &= context.resources.shaders.multiScaleAO
91+
&& context.resources.shaders.multiScaleAO.isSupported
92+
&& context.resources.computeShaders.multiScaleAODownsample1
93+
&& context.resources.computeShaders.multiScaleAODownsample2
94+
&& context.resources.computeShaders.multiScaleAORender
95+
&& context.resources.computeShaders.multiScaleAOUpsample;
96+
}
97+
8198
state &= SystemInfo.supportsComputeShaders
82-
&& context.resources.shaders.multiScaleAO
83-
&& context.resources.shaders.multiScaleAO.isSupported
84-
&& context.resources.computeShaders.multiScaleAODownsample1
85-
&& context.resources.computeShaders.multiScaleAODownsample2
86-
&& context.resources.computeShaders.multiScaleAORender
87-
&& context.resources.computeShaders.multiScaleAOUpsample
8899
&& RenderTextureFormat.RFloat.IsSupported()
89100
&& RenderTextureFormat.RHalf.IsSupported()
90101
&& RenderTextureFormat.R8.IsSupported();

0 commit comments

Comments
 (0)