diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Frame-Settings.md b/com.unity.render-pipelines.high-definition/Documentation~/Frame-Settings.md index 8037715e3ac..7e3832e0cd3 100644 --- a/com.unity.render-pipelines.high-definition/Documentation~/Frame-Settings.md +++ b/com.unity.render-pipelines.high-definition/Documentation~/Frame-Settings.md @@ -93,6 +93,7 @@ These settings control lighting features for your rendering components. Here you ### Asynchronous Compute Shaders These settings control which effects, if any, can make use execute compute Shader commands in parallel. +Note that these settings will have an effect only if asynchronous compute is supported by the target platform. | **Property** | **Description** | | ---------------------------------- | ------------------------------------------------------------ | diff --git a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Settings/FrameSettings.cs b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Settings/FrameSettings.cs index fd48e4900f2..4c9eefd70f7 100644 --- a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Settings/FrameSettings.cs +++ b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Settings/FrameSettings.cs @@ -765,7 +765,8 @@ internal static void Sanitize(ref FrameSettings sanitizedFrameSettings, Camera c sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.Distortion] &= renderPipelineSettings.supportDistortion && !msaa && !preview; sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.LowResTransparent] &= renderPipelineSettings.lowresTransparentSettings.enabled; - bool async = sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.AsyncCompute] &= SystemInfo.supportsAsyncCompute; + // NOTE: We currently disable async compute on D3D12 for an issue we have with constant buffer update. TODO We need to renable it when case 1238431 is resolved + bool async = sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.AsyncCompute] &= (SystemInfo.supportsAsyncCompute && SystemInfo.graphicsDeviceType != GraphicsDeviceType.Direct3D12); sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.LightListAsync] &= async; sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.SSRAsync] &= (async && !rayTracingActive); sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.SSAOAsync] &= (async && !rayTracingActive);