blob: bfbf11c3ab77a18ef632dc39901a42d041060b6a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
# low_latency_layer
A C++23 implicit Vulkan layer that reduces click-to-photon latency by implementing both AMD and NVIDIA's latency reduction technologies.
The layer allows AMD or Intel hardware to provide implementations for and switch between `VK_NV_low_latency2` and `VK_AMD_anti_lag` device extensions. This capability, coupled with work that forwards relevant calls in [dvxk-nvapi](https://github.com/jp7677/dxvk-nvapi/), allows the use of these technologies despite the lack of a driver-level implementation.
The layer also eliminates a hardware support disparity as considerably more applications support NVIDIA's Reflex than AMD's Anti-Lag.
[Benchmarks are available here.](#benchmarks)
# Planned
- Respect the provided framerate limit.
- Cross-platform builds (small amount of time domain work required).
- Improvements to logging and statistics.
- HUD with latency information.
# Dependencies
- [CMake](https://cmake.org): A cross-platform, open-source build system generator.
- [Vulkan Headers](https://github.com/KhronosGroup/Vulkan-Headers): Vulkan header files and API registry.
- [Vulkan Utility Libraries](https://github.com/KhronosGroup/Vulkan-Utility-Libraries): Library to share code across various Vulkan repositories.
# Building from Source and Installation
Clone this repo.
```
$ git clone https://git.nj3.xyz/low_latency_layer
$ cd low_latency_layer
```
Create an out-of-tree build directory (creatively we'll use 'build') and install.
> ⚠️ **WARNING:** You are likely going to have to install your distro's `vulkan-headers`, `vulkan-utility-libraries`, and possibly even `cmake` packages before proceeding. If you see an error here their absense is almost certainly the reason.
```
$ cmake -B build ./
$ cd ./build
$ sudo make install
```
To verify that the installation succeeded you can run this command. If it prints '1' the loader can see the layer and installation was successful.
```
$ ENABLE_LOW_LATENCY_LAYER=1 vulkaninfo 2>/dev/null | grep -q VK_LAYER_NJ3AHXAC_LowLatency && echo 1 || echo 0
```
# Usage and Configuration
WIP TODO
# Benchmarks
WIP - not updated for reflex merge
## Counter-Strike 2

## The Finals

|