From f8b3d1b2c3149f8567e84ac5210f8fcd5aecfe1d Mon Sep 17 00:00:00 2001 From: Rys Sommefeldt Date: Thu, 15 Sep 2022 11:21:51 +0100 Subject: [PATCH] FidelityFX FSR v2.1.1 --- changelog.md | 6 +++++- release_notes.txt | 3 ++- src/ffx-fsr2-api/ffx_fsr2.h | 2 +- src/ffx-fsr2-api/shaders/ffx_fsr2_accumulate.h | 3 ++- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/changelog.md b/changelog.md index 4bae377..77c1a16 100644 --- a/changelog.md +++ b/changelog.md @@ -1,9 +1,13 @@ +2022-09-13 | FidelityFX Super Resolution 2.1.1 +------- +- Fix issue with reprojection data on a reset. + 2022-09-06 | FidelityFX Super Resolution 2.1 ------- - Reactivity mask now uses full range of value in the mask (0.0 - 1.0). - Reactivity and Composition and Transparency mask dialation is now based on input colors to avoid expanding reactiveness into non-relevant upscaled areas. -- Disocclusion logic improved in order to detect disocclusions in areas with very small depth deparation. +- Disocclusion logic improved in order to detect disocclusions in areas with very small depth separation. - RCAS Pass forced to fp32 mode to reduce chance of issues seen with HDR input values. - Fix for display-resolution motion vectors interpretation. - FP16/FP32 computation review, readjusting balance of fp16/fp32 for maximum quality. diff --git a/release_notes.txt b/release_notes.txt index deabc94..27055f1 100644 --- a/release_notes.txt +++ b/release_notes.txt @@ -1,4 +1,4 @@ -FidelityFX Super Resolution 2.1 +FidelityFX Super Resolution 2.1.1 ================================= Features @@ -20,6 +20,7 @@ Changes - Various documentation edits for spelling. - Clarified the frame delta time input value within the readme documentation. - Fixed issue with bad memset within the shader blob selection logic. +- Fix issue with reprojection data on a reset. Limitations ----------- diff --git a/src/ffx-fsr2-api/ffx_fsr2.h b/src/ffx-fsr2-api/ffx_fsr2.h index ff96d71..c8b0fa5 100644 --- a/src/ffx-fsr2-api/ffx_fsr2.h +++ b/src/ffx-fsr2-api/ffx_fsr2.h @@ -40,7 +40,7 @@ /// FidelityFX Super Resolution 2 patch version. /// /// @ingroup FSR2 -#define FFX_FSR2_VERSION_PATCH (0) +#define FFX_FSR2_VERSION_PATCH (1) /// The size of the context specified in 32bit values. /// diff --git a/src/ffx-fsr2-api/shaders/ffx_fsr2_accumulate.h b/src/ffx-fsr2-api/shaders/ffx_fsr2_accumulate.h index 14620d5..d0c5eae 100644 --- a/src/ffx-fsr2-api/shaders/ffx_fsr2_accumulate.h +++ b/src/ffx-fsr2-api/shaders/ffx_fsr2_accumulate.h @@ -182,6 +182,7 @@ void Accumulate(FfxInt32x2 iPxHrPos) const FfxFloat32x2 fDilatedReactiveMasks = SampleDilatedReactiveMasks(fLrUvJittered); const FfxFloat32 fReactiveMax = fDilatedReactiveMasks.x; const FfxFloat32 fAccumulationMask = fDilatedReactiveMasks.y; + const FfxBoolean bIsResetFrame = (0 == FrameIndex()); FfxFloat32x4 fHistoryColorAndWeight = FfxFloat32x4(0, 0, 0, 0); FfxFloat32x3 fLockStatus; @@ -191,7 +192,7 @@ void Accumulate(FfxInt32x2 iPxHrPos) FfxFloat32x2 fReprojectedHrUv = FfxFloat32x2(0, 0); ComputeReprojectedUVs(iPxHrPos, fMotionVector, fReprojectedHrUv, bIsExistingSample); - if (bIsExistingSample) { + if (bIsExistingSample && !bIsResetFrame) { ReprojectHistoryColor(iPxHrPos, fReprojectedHrUv, fHistoryColorAndWeight); ReprojectHistoryLockStatus(iPxHrPos, fReprojectedHrUv, fLockStatus); }