ishitatsuyuki / LatencyFleX

Vendor agnostic latency reduction middleware. An alternative to NVIDIA Reflex.
Apache License 2.0
810 stars 22 forks source link

Apex Legends does not allow to enable Reflex #5

Closed valters-tomsons closed 2 years ago

valters-tomsons commented 2 years ago

Trying to enable the middleware on Apex Legends, but game doesn't seem to allow me to enable it.

What I've done, have I missed anything?

Full Log (with DXVK_NVAPI_LOG_LEVEL=info).

System: Arch Linux 5.16.10 GPU: Radeon RX590 Driver: Mesa 21.3.6

tizzir commented 2 years ago

I can confirm that I have this feature working in Apex Legends.

I'm not sure if any of this helps, but here are the things that I can think of off the top of my head that might be causing the issue:

  1. Make sure that the file is named nvapi64.dll, rather than nvapi.dll64. I'm sure this is just a typo, but I thought I'd mention it just in case
  2. Don't forget to also copy/link over the /usr/lib/wine/x86_64-unix/latencyflex_layer.so, as well as the DLL files you mentioned in your report to the Proton installation. As per the README:

    For Wine 7.x: change /usr/lib/wine to wherever Wine/Proton is installed. For Proton and certain distros, you also need to change lib to lib64. Copy the following files.
    /usr/lib/wine/x86_64-unix/latencyflex_layer.so /usr/lib/wine/x86_64-windows/latencyflex_layer.dll /usr/lib/wine/x86_64-windows/latencyflex_wine.dll

I.E. put those 3 files (2 .dll and 1 .so into their respective folders next to the nvapi64.dll file you've already copied over.

Hopefully this is of some help!

ishitatsuyuki commented 2 years ago

What tizzir said. You probably missed lib/wine/x86_64-unix/latencyflex_layer.so, which is often confused with the main /usr/lib/liblatencyflex_layer.so (both need to be present/copied). The naming is partially a consequence to make the library name common between Linux and Windows, in case native Windows support is implemented. (#3)

poligarpi commented 2 years ago

Recompiling nvapi64.dll did the trick for me, also not all the launch options are required, here is mine:

gamemoderun mangohud ENABLE_VKBASALT=1 PROTON_ENABLE_NVAPI=1 LFX=1 %command%

valters-tomsons commented 2 years ago

Hadn't had the time to test this yet, will update :crossed_fingers:

ishitatsuyuki commented 2 years ago

I think you forgot to copy the DLLs into the Proton x86_64-windows directory, see the newly added troubleshooting guide https://github.com/ishitatsuyuki/LatencyFleX/blob/master/docs/TROUBLESHOOTING.md#checking-if-the-wine-bridge-is-loaded (the one in /usr/lib does not get recognized by Proton)

valters-tomsons commented 2 years ago

Alright, I copied the files again (without symlinking) and it seems to work fine now! Thanks!

asumagic commented 2 years ago

It did not work for me because I was embarrassingly looking at the wrong compatdata directory, because I had an unused one for the game in my main steam install directory for some reason, where the one actually used was on a different steam install directory. Might be worth adding to the troubleshooting guide?

MabaKalox commented 2 years ago

@valters-tomsons got exactly same behavior, symbolic link didn't work, but plain copy works...