From 004cbc94686be0555586411bf7fbb7d9d8bdee7b Mon Sep 17 00:00:00 2001 From: Nico de Poel Date: Wed, 26 Jun 2024 11:37:46 +0200 Subject: [PATCH] Fixed opaque-only copy buffer not keeping dynamic resolution scaling in mind. --- .../PostProcessing/Runtime/Effects/SuperResolution.cs | 2 +- .../PostProcessing/Runtime/PostProcessLayer.cs | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/SuperResolution.cs b/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/SuperResolution.cs index 1148403..90c4f59 100644 --- a/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/SuperResolution.cs +++ b/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/SuperResolution.cs @@ -323,7 +323,7 @@ namespace UnityEngine.Rendering.PostProcessing _genReactiveDescription.Flags = generateReactiveParameters.flags; } - private Vector2Int GetScaledRenderSize(Camera camera) + internal Vector2Int GetScaledRenderSize(Camera camera) { if (!RuntimeUtilities.IsDynamicResolutionEnabled(camera)) return _maxRenderSize; diff --git a/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/PostProcessLayer.cs b/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/PostProcessLayer.cs index 42e42df..b1d4168 100644 --- a/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/PostProcessLayer.cs +++ b/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/PostProcessLayer.cs @@ -741,7 +741,8 @@ namespace UnityEngine.Rendering.PostProcessing // Create a copy of the opaque-only color buffer for auto-reactive mask generation if (context.IsSuperResolutionActive() && (superResolution.autoGenerateReactiveMask || superResolution.autoGenerateTransparencyAndComposition)) { - m_opaqueOnly = context.GetScreenSpaceTemporaryRT(colorFormat: sourceFormat); + Vector2Int scaledRenderSize = superResolution.GetScaledRenderSize(context.camera); + m_opaqueOnly = context.GetScreenSpaceTemporaryRT(colorFormat: sourceFormat, widthOverride: scaledRenderSize.x, heightOverride: scaledRenderSize.y); m_LegacyCmdBufferOpaque.BuiltinBlit(cameraTarget, m_opaqueOnly); }