diff --git a/Packages/com.unity.postprocessing@3.2.2/CHANGELOG.md b/Packages/com.unity.postprocessing@3.2.2/CHANGELOG.md index 12023f3..7e6c51c 100644 --- a/Packages/com.unity.postprocessing@3.2.2/CHANGELOG.md +++ b/Packages/com.unity.postprocessing@3.2.2/CHANGELOG.md @@ -8,6 +8,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ### Fixed - Fixed obsolete FormatUsage bug +- Disabled compute based effects not supported on WebGL and Android OpenGL ## [3.3.0] - 2023-05-11 diff --git a/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Editor/Effects/AmbientOcclusionEditor.cs b/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Editor/Effects/AmbientOcclusionEditor.cs index c200d59..ecb253d 100644 --- a/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Editor/Effects/AmbientOcclusionEditor.cs +++ b/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Editor/Effects/AmbientOcclusionEditor.cs @@ -49,8 +49,14 @@ namespace UnityEditor.Rendering.PostProcessing } else if (aoMode == (int)AmbientOcclusionMode.MultiScaleVolumetricObscurance) { - if (!SystemInfo.supportsComputeShaders) - EditorGUILayout.HelpBox("Multi-scale volumetric obscurance requires compute shader support.", MessageType.Warning); + if (!SystemInfo.supportsComputeShaders || EditorUtilities.isTargetingWebGL) + { + EditorGUILayout.HelpBox("Multi-scale volumetric obscurance requires compute shader support which is not available on this platform.", MessageType.Error); + } + else if(EditorUtilities.isTargetingAndroid) + { + EditorGUILayout.HelpBox("Multi-scale volumetric obscurance requires compute shader support (Vulkan) when running on Android.", MessageType.Warning); + } PropertyField(m_ThicknessModifier); PropertyField(m_ZBias); diff --git a/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Editor/Effects/AutoExposureEditor.cs b/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Editor/Effects/AutoExposureEditor.cs index cdf1e78..559cf51 100644 --- a/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Editor/Effects/AutoExposureEditor.cs +++ b/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Editor/Effects/AutoExposureEditor.cs @@ -31,8 +31,14 @@ namespace UnityEditor.Rendering.PostProcessing public override void OnInspectorGUI() { - if (!SystemInfo.supportsComputeShaders) - EditorGUILayout.HelpBox("Auto exposure requires compute shader support.", MessageType.Warning); + if (!SystemInfo.supportsComputeShaders || EditorUtilities.isTargetingWebGL) + { + EditorGUILayout.HelpBox("Auto exposure requires compute shader support which is not available on this platform.", MessageType.Error); + } + else if (EditorUtilities.isTargetingAndroid) + { + EditorGUILayout.HelpBox("Auto exposure requires compute shader support (Vulkan) when running on Android.", MessageType.Warning); + } EditorUtilities.DrawHeaderLabel("Exposure"); diff --git a/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Editor/Utils/EditorUtilities.cs b/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Editor/Utils/EditorUtilities.cs index 276f775..f59f69e 100644 --- a/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Editor/Utils/EditorUtilities.cs +++ b/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Editor/Utils/EditorUtilities.cs @@ -64,6 +64,30 @@ namespace UnityEditor.Rendering.PostProcessing } } + /// + /// Returns true if the current target is Android, false otherwise. + /// + public static bool isTargetingAndroid + { + get + { + var t = EditorUserBuildSettings.activeBuildTarget; + return t == BuildTarget.Android; + } + } + + /// + /// Returns true if the current target is WebGL, false otherwise. + /// + public static bool isTargetingWebGL + { + get + { + var t = EditorUserBuildSettings.activeBuildTarget; + return t == BuildTarget.WebGL; + } + } + /// /// Returns true if the current target is a console or a mobile, false /// otherwise. diff --git a/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/AmbientOcclusion.cs b/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/AmbientOcclusion.cs index db13cec..afffab9 100644 --- a/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/AmbientOcclusion.cs +++ b/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/AmbientOcclusion.cs @@ -196,6 +196,7 @@ namespace UnityEngine.Rendering.PostProcessing state &= SystemInfo.supportsComputeShaders && !RuntimeUtilities.isAndroidOpenGL + && !RuntimeUtilities.isWebGL #if UNITY_2023_2_OR_NEWER && SystemInfo.IsFormatSupported(GraphicsFormat.R32_SFloat, GraphicsFormatUsage.Render) && SystemInfo.IsFormatSupported(GraphicsFormat.R16_SFloat, GraphicsFormatUsage.Render) diff --git a/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/AutoExposure.cs b/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/AutoExposure.cs index 79b8696..7a0e933 100644 --- a/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/AutoExposure.cs +++ b/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/AutoExposure.cs @@ -85,6 +85,7 @@ namespace UnityEngine.Rendering.PostProcessing return enabled.value && SystemInfo.supportsComputeShaders && !RuntimeUtilities.isAndroidOpenGL + && !RuntimeUtilities.isWebGL && RenderTextureFormat.RFloat.IsSupported() && context.resources.computeShaders.autoExposure && context.resources.computeShaders.exposureHistogram; diff --git a/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Monitors/Monitor.cs b/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Monitors/Monitor.cs index 4cb3ad9..fbcbb21 100644 --- a/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Monitors/Monitor.cs +++ b/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Monitors/Monitor.cs @@ -48,6 +48,7 @@ namespace UnityEngine.Rendering.PostProcessing return requested && SystemInfo.supportsComputeShaders && !RuntimeUtilities.isAndroidOpenGL + && !RuntimeUtilities.isWebGL && ShaderResourcesAvailable(context); } diff --git a/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Utils/RuntimeUtilities.cs b/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Utils/RuntimeUtilities.cs index 13497b8..405921b 100644 --- a/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Utils/RuntimeUtilities.cs +++ b/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Utils/RuntimeUtilities.cs @@ -858,6 +858,21 @@ namespace UnityEngine.Rendering.PostProcessing get { return Application.platform == RuntimePlatform.Android && SystemInfo.graphicsDeviceType != GraphicsDeviceType.Vulkan; } } + /// + /// Returns true if the target platform is WebGL, + /// false otherwise. + /// + public static bool isWebGL + { + get { +#if UNITY_WEBGL + return true; +#else + return false; +#endif + } + } + /// /// Gets the default HDR render texture format for the current target platform. ///