cdozdil/OptiScaler

The Killing Antidote: Missing Models/Meshes and Textures

Closed this issue · 5 comments

Greetings.

Using OptiScaler with The Killing Antidote results in missing model/meshes and textures during certain parts of the game.

Examples of the issues in game:

The main menu in game with OptiScaler:
optiscaler_tka_01

The main menu without OptiScaler (native/in-game AMD FSR is enabled on High Quality):
optiscaler_tka_02

Jodi is moving and changing poses on the main menu so the screenshots are not exactly accurate regarding the camera angle but you should get an idea about what are missing when running the game with OptiScaler.

The level/gameplay with OptiScaler:
optiscaler_tka_06

The level/gameplay without OptiScaler (native/in-game AMD FSR is enabled on High Quality):
optiscaler_tka_07

Notice that the UI elements such as crosshair (the white dot in the center of the screen) and HP, Stamina and Area Danger Status are the only ones that appear. The game actually runs with audio (SFX, BGM) play without any problem, for example I can move Jodi around and hear the footstep SFX plays, but nothing else (meshes/textures) is being rendered on screen.

Loading screen is animated, with Jodi being shown walking through a tunnel, an underground passage or something similar. Loading screen is not affected, as shown here when running the game with OptiScaler:
optiscaler_tka_05

Technical aspects of the game that are worth mentioning:

  • The game uses Unreal Engine 4.27 with DirectX 11 (can be forced to run with DirectX 12 through an argument).
  • The game is capable of using either DLSS or FSR depending on the GPU. There is native support for DLSS and FSR that can be set or toggled (enable/disable) in the Options. Running the game with RTX 4080 Super will default to DLSS, while running the game with GTX 970 or GTX 1080 Ti will default to AMD FSR.
  • The DLSS plugin (nvngx_dlss.dll) is version 3.1.30, but I cannot tell the FSR version being used in the game.
  • Native/in-game AMD FSR is on the highest (High Quality) setting/preset when running the game with either GTX 970 or GTX 1080 Ti without OptiScaler. All graphics/visual options are on the highest (High) setting.

Information regarding OptiScaler:

  • OptiScaler used with the game are v0.6.8-pre4 and v0.7.0-pre23.
  • Both versions use default settings with the exception of Upscalers (Dx11Upscaler, Dx12Upscaler, VulkanUpscaler) being changed to fsr31.
  • OptiScaler's nvngx.dll is renamed to dxgi.dll.
  • The GPU being used to run the game are NVIDIA GTX 970 and 1080 Ti, which do not have native support for DLSS. Drivers used are 553.22 and 553.31 (NVIDIA drivers for developers). The issue with missing meshes and textures occurs even with mainstream (Game-Ready) drivers.
  • DLSS signature is already overriden to bypass DLSS check/requirement. This can be seen in game in the Options menu in which the default AMD FSR option (without OptiScaler) is changed to DLSS with either GTX 970 or GTX 1080 Ti.
  • OptiScaler's in-game menu can be opened using the default key/button (Insert).
  • Frame generation is disabled when using v0.70-pre23.
  • OptiScaler can be used with the game only with DirectX 12 argument that forces the game to run on DirectX 12. Both FSR 2x and FSR 3x are working when the game is running on DirectX 12. Running the game without any argument will default to the game running on DirectX 11, on which OptiScaler does not work properly (missing meshes and textures regardless of the version of OptiScaler being used with the game).
  • Steam overlay is disabled (I always set Steam Overlay to disable in my Steam client regardless of games or compatibility).

I'm Japanese so my apologies for any spelling or grammatical errors since I'm not a native English speaker.

Hi,

Thanks for really detailed report. I have replicated the issue, this was happening with Deep Rock Galactic (another game that use UE4). When playing DRG if you switch between FSR/DLSS issue was resolved but this game does not have FSR option when there is DLSS.

When running with -dx12 parameter as you said game runs without any issues and also FG & Hudfix works without any issues.

I don't know if I am going to check this issue because;

  • This only happens on Dx11 & UE4 (and usually there are alternative fixes like running game in Dx12 or switching upscaler from game)
  • I don't have enough experience with Dx11 to track and solve this issue

Are there any downsides of using Dx12 with the game?

Oh @MapleHinata if you wanna check, there is a very visiable ghosting with FSR3.1.2 on Dx11. Download size is around 2GB

Hello, i took an additional look at it:
This is another manifestation of the same problem Silent Hill 2 has under DX11, if OptiScaler touches the output of DLSS, it renders to a black screen, i still don't know what causes it, I believe it's related to the NvAPI calls the Unreal Engine makes for UAVOverlaps, but this is just a hunch.

Hi,

Could you test with this build please?

OptiScaler.v0.7.0-pre43.zip

Greetings.

My apologies for not being able to response immediately. The last few days were very busy with works and I just have time now.

Regarding the v0.7.0-pre43 build, yes, it worked.

Main menu with v0.7.0-pre43:
optiscaler_tka_08

Loading screen with v0.7.0-pre43:
optiscaler_tka_09

The level/gameplay with v0.7.0-pre43:
optiscaler_tka_10

  • The OptiScaler's nvngx.dll was renamed to dxgi.dll.
  • Both FSR 3.x and FSR 2.x worked.
  • OptiScaler menu could be opened without any problem.
  • The game was run in its native DX11 (without DX12 argument).

I was going to post a few things as a follow-up but then I saw your and @MapleHinata posts, including the one with the new OptiScaler build, so I tested the new build first before I posted.

Regarding the FSR version, I found the FSR used in the game (the native one, not the one from OptiScaler):

VersionName: "2.2.1"
FriendlyName: "FSR 2.2"
Description: "FidelityFX Super Resolution 2.2"
Category: "Rendering"
CreatedBy: "AMD"

Regarding running the game with DirectX 12, there was performance penalty as expected from running a DirectX 11-based/native UE4 game with the DX12 argument although it was negligible, only single-digit fps loss (2-6 fps) almost all the time depending on the level or objects like meshes or effects/shaders being loaded or used, but only with either GTX 970 or GTX 1080 Ti with the highest visual/graphics settings. Running the game with RTX 4080 Super doesn't have that fps drop, but that is obviously because RTX 4080 Super is significantly more powerful than either GTX 970 or GTX 1080 Ti.

I've noticed there were only 3 files in the new build, the amd_fidelityfx_dx12.dll, nvngx.dll and nvngx.ini. Was this build made specifically for this kind of game (DirectX 11-based/native UE4 games)?

Anyway, @cdozdil @MapleHinata and everyone involved in this project, thank you very much for all the time and efforts put into this project and for responding to my report.

Hi,

No this build is not specific to Dx11 games etc. To keep filesize small I usually bundle main mod plus AMD dll needed for frame generation. If you are ok with it you can try Dx12 plus OptiScaler frame generation. With Hudfix limit at 2 it was working fine for me.