In some games, OptiScaler's built-in frame generation conversion is less efficient than Nukem's. #1087
Labels
No labels
0.9
3rd party
bug
documentation
duplicate
enhancement
invalid
linux
master
question
undetermined
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
roman/OptiScaler2#1087
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Even when using FSR 4 Frame Generation output in both cases, OptiScaler with DLSSG/FSRFG input and FSR4FG output is less efficient and less stable than the FSR4FG version of Nukem that I compiled myself after studying Nukem.
In Zenless Zone Zero, OptiScaler with FSRFG output reaches 240 FPS in the same scene, while my FSR4FG Nukem build reaches 300 FPS and the original Nukem build reaches 320 FPS.
In Final Fantasy XVI, OptiScaler with FSRFG output reaches 160 FPS, while my FSR4FG Nukem build reaches 190 FPS.
In Final Fantasy VII Rebirth, both methods average around 190-200 FPS. However, during rapid camera movement, Nukem's frame rate fluctuates by only around 10 FPS, while OptiScaler with FSRFG output can fluctuate by 20-30 FPS.
Game name and version:
Zenless Zone Zero (HoYoLauncher), Final Fantasy XVI (Steam), Final Fantasy VII Rebirth (Steam)
Mods and mod versions used:
OptiScaler 0.9.4, Fakenvapi 1.4.1, Nukem self-compiled FSR4FG version
GPU:
RX 9070 XT with 26.6.1 driver
OS:
Windows 11 26H1
Used automated or manual install?
If on AMD/Intel and Automated, used DLSS inputs?
Also please mention in description which upscaler inputs are used (which upscaler you selected in game settings).
Did you check the Wiki and Compatibility List?
Please describe the issue and steps to reproduce it:
The behavior described above can be reproduced consistently in most scenes across all three games.
My test locations were:
I have attached:
DLSS-G input with FSR FG output
the FSR4-enabled Nukem input/output path
We've noticed DLSSG via SL -> FSR-FG hitting some kind of weird limit in certain games for a while now, but haven't been able to diagnose the issue exactly (not sure if Opti or FFX SDK related, quite possibly some FSR-FG swapchain problem). From personal experience, it's most noticeable in Capcom games like RE9, Pragmata and MH Wilds. The FPS initially goes up to the expected frame rate, but almost instantly falls back down to some limit. 🤔
Since this is modified Nukems, you're still using the Streamline/DLSSG swapchain and AL2 is being used too, correct?
The modification is limited to frame generation: within the original Nukem DLSSG input -> FSR3 Frame Generation path, it preferentially switches to DLSSG input -> FSR4 Frame Generation provided by the updated driver. If the FSR4 provider is unavailable, it falls back to the original FSR3 Frame Generation implementation.
It does not modify Streamline/DLSSG resource tags, the DXGI swap chain, Present, frame-rate limiting, or OptiScaler's outer hook. Those are still managed by the game, Streamline, and OptiScaler.
The issue is not limited to my self-compiled Nukem build. The same behavior can also be reproduced when comparing the stock Nukem FSR3 implementation with OptiScaler using DLSSG input + FSR3 FG output.
Compiled it here https://github.com/optiscaler/dlssg-to-fsr3/actions/runs/30743104378
Really nice discovery. I personally was under the false assumption that the FFX API doesn't allow for the simple dispatch and getting the fake frames out without the swapchain.
From my quick test, I'm getting more FPS with the FSR FG swapchain than this modified Nukem's. Can you retest FSR FG output but disable any low latency methods, aka force disable reflex. Also feel free to try enable async with the FSR FG output, depending on the game that might cause a crash.
I uninstalled and reinstalled my GPU driver and updated it to version 26.7.1. I also let Zenless Zone Zero recompile its shaders.
In Zenless Zone Zero, I obtained the same results as before: the frame rate is around 200 FPS without Frame Generation enabled, and around 240 FPS with it enabled.
I do not know whether this is caused by my Windows installation or something else. Perhaps I need to reinstall Windows.
I asked a friend with the same RX 9070 XT GPU to test this in Zenless Zone Zero, and they observed exactly the same frame rate behavior.
Interestingly, without using any plugins and simply using the game's native FSR 4.1.1 and FSR Frame Generation 4.0.1, the results are identical to OptiScaler using FSR input + FSR output: around 200 FPS with Frame Generation disabled and around 240 FPS with it enabled.
Only Nukem's implementation can reach over 300 FPS.
Hi,
It might be something about FSR-FG swapchain or AL2 then. Because Nukem's use SL swapchain and have some issues with AL2 too.
These are 2 topics which is different between native/Opti FSR-FG and Nukem's.
It is probably related to the FSRFG swapchain. Since OptiScaler's FSRFG produces the same frame rate as the game's native FSRFG, OptiScaler itself is most likely not at fault.
I referenced Nukem's rendering path and compiled a modified version of OptiScaler's FSRFG input + FSRFG output path.
In Final Fantasy XVI, it can achieve frame rates similar to Nukem's implementation. However, in the Unity-based Zenless Zone Zero, there is a bug that I am currently unable to fix: the game freezes and crashes at the exact moment it enters a scene where Frame Generation becomes active.It works perfectly in Final Fantasy XVI, with no abnormal behavior.