ishitatsuyuki / LatencyFleX

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

Windows release? #3

Open donizettilorenzo opened 2 years ago

donizettilorenzo commented 2 years ago

Nothing for Windows? BTW thanks for your hard work!

ishitatsuyuki commented 2 years ago

There are several blockers for Windows support:

Therefore, Windows support is not on the plan. I will keep this issue open just for clarity.

In the future, I will try to work with game developers to get LFX directly integrated into their games. Windows will be supported for the direct integration.

jp7677 commented 2 years ago

About DXVK-NAPI i.c.w. Windows, see https://github.com/jp7677/dxvk-nvapi/issues/63

Saancreed commented 2 years ago

Side note, but just in case Windows hooking support is ever implemented in the future, having the Wine extension with the exact same name and exports as the layer will make using it much simpler for DXVK-NVAPI and similar integration methods: this way they won't have to be aware whether they are running in Wine or not and just always do

auto lfx = LoadLibraryA("latencyflex_layer.dll");
if (!lfx) { … }
auto lfx_WaitAndBeginFrame = GetProcAddress(lfx, "lfx_WaitAndBeginFrame");
…

which should work both in Wine using the extension and on Windows calling the Vulkan layer directly.

Same with Unity integration, a single [DllImport("latencyflex_layer")] private static extern int lfx_WaitAndBeginFrame(); would take care of Windows, Wine and native Linux.