From 364469f4b3889a95172160b3a631ed33f2583286 Mon Sep 17 00:00:00 2001 From: Nico de Poel Date: Tue, 29 Oct 2024 17:16:58 +0100 Subject: [PATCH] Improved XeSS implementation by properly including motion vector scale and jitter scale parameters. --- .../Plugins/Win64/XeSSUnityPlugin.dll | Bin 107520 -> 109568 bytes .../Upscalers/XeSSUpscalerPlugin.cs | 29 ++++++++++++++++-- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/Upscalers/Plugins/Win64/XeSSUnityPlugin.dll b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/Upscalers/Plugins/Win64/XeSSUnityPlugin.dll index 56c3e943755604f23a08b090e7848d52be4ed935..09ac2d33db6b09904c6c093fd915d080c178df27 100644 GIT binary patch literal 109568 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 literal 107520 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 B()); } @@ -110,7 +112,11 @@ namespace UnityEngine.Rendering.HighDefinition.AMD.XeSS _executeParams.pExposureScaleTexture = textures.exposureTexture.ToNativePtr(); _executeParams.pResponsivePixelMaskTexture = textures.biasColorMask.ToNativePtr(); _executeParams.pOutputTexture = textures.colorOutput.ToNativePtr(); - + + _executeParams.velocityScaleX = executeData.MVScaleX; + _executeParams.velocityScaleY = executeData.MVScaleY; + _executeParams.jitterScaleX = 1f; + _executeParams.jitterScaleY = -1f; _executeParams.jitterOffsetX = executeData.jitterOffsetX; _executeParams.jitterOffsetY = executeData.jitterOffsetY; _executeParams.exposureScale = executeData.preExposure; @@ -197,35 +203,54 @@ namespace UnityEngine.Rendering.HighDefinition.AMD.XeSS public struct ExecuteParams { public IntPtr contextHandle; - + /** Input color texture. Must be in NON_PIXEL_SHADER_RESOURCE state.*/ public IntPtr pColorTexture; + /** Input motion vector texture. Must be in NON_PIXEL_SHADER_RESOURCE state.*/ public IntPtr pVelocityTexture; + /** Optional depth texture. Required if XESS_INIT_FLAG_HIGH_RES_MV has not been specified. * Must be in NON_PIXEL_SHADER_RESOURCE state.*/ public IntPtr pDepthTexture; + /** Optional 1x1 exposure scale texture. Required if XESS_INIT_FLAG_EXPOSURE_TEXTURE has been * specified. Must be in NON_PIXEL_SHADER_RESOURCE state */ public IntPtr pExposureScaleTexture; + /** Optional responsive pixel mask texture. Required if XESS_INIT_FLAG_RESPONSIVE_PIXEL_MASK * has been specified. Must be in NON_PIXEL_SHADER_RESOURCE state */ public IntPtr pResponsivePixelMaskTexture; + /** Output texture in target resolution. Must be in UNORDERED_ACCESS state.*/ public IntPtr pOutputTexture; + public float jitterScaleX; + public float jitterScaleY; + public float velocityScaleX; + public float velocityScaleY; + /** Jitter X coordinate in the range [-0.5, 0.5]. */ public float jitterOffsetX; + /** Jitter Y coordinate in the range [-0.5, 0.5]. */ public float jitterOffsetY; + /** Optional input color scaling. Default is 1. */ public float exposureScale; + + public float dummy0; + /** Resets the history accumulation in this frame. */ public uint resetHistory; + /** Input color width. */ public uint inputWidth; + /** Input color height. */ public uint inputHeight; + + public uint dummy1; } public static QualitySetting ConvertQuality(FSR2Quality quality)