PotatoOfDoom / CyberFSR2

FidelityFx Super Resolution 2.0 for Cyberpunk
MIT License
620 stars 67 forks source link

No Man's Sky crashes when using reactive mask and exposure #25

Closed nikviktorovich closed 2 years ago

nikviktorovich commented 2 years ago

After commenting lines 171 and 172 in 'CyberFSRVk.cpp' it works in No Man's Sky, otherwise the game crashes (not sure why these parameters cause it). It gives major ghosting on some objects (like a cape) and probably on particles. There are also some visual glitches with transparent objects. The lines are ('...' is placed instead of actual function parameters since it's too long):

dispatchParameters.exposure = ffxGetTextureResourceVK(...)
dispatchParameters.reactive = ffxGetTextureResourceVK(...)

You also have to bypass the GPU check. For the most recent Steam version the address is 0x1FA1659 where you have to override 2 bytes (to patch it I had to use dinput8 proxy dll, because 'd3d11.dll' and 'opengl32.dll' either loaded after the check or not loaded at all. The code is mostly similar to the RealIndica's nvngxLoader). The address is different for each version of the game.

After patching there is also appeared (not working) option 'FidelityFX Super Resolution 2.0' so looks like there will be an official implementation eventually.

For those who want to try it, there is a fork https://github.com/lnfecteDru/CyberFSR2

EDIT: For the last GOG version (3.97) the address is 0x1F99219

TheRazerMD commented 2 years ago

@lnfecteDru I tried your forked release on Baldur's Gate 3 (Vulkan), as the game would crash on applying DLSS too, and I can happily confirm it's working now. Game doesn't have a GPU check, which is great. Default sharpness is pretty soft, but luckily there's a slider. High sharpness fixes that problem atleast.

nikviktorovich commented 2 years ago

Debugging revealed that 'exposureTexture' and 'inputBiasColorMask' are NULL, so it looks like the game engine just doesn't pass this information