Browse Source

Fixed opaque-only copy buffer not keeping dynamic resolution scaling in mind.

fsr3
Nico de Poel 2 years ago
parent
commit
004cbc9468
  1. 2
      Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/SuperResolution.cs
  2. 3
      Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/PostProcessLayer.cs

2
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;

3
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);
}

Loading…
Cancel
Save