https://abload.de/img/untitled-2022-06-05-2amey2.png
Anti lag is implementable at the driver level but Anti-lag+ requires code at the game loop level.
Plus, there's a lot of cases where the server sends some pieces of information to the client but the user isn't supposed to see it. The locations of the other players is a common example, where people modify their client to render outlines of players through walls. That's a huge advantage but doesn't even affect anything hit registration related.
Why does server-authoritative backwards reconciliation require trusting the client not to lie? The server keeps a history of the past N states and client claims to hits are verified by the server using that history. A client could lie and say it made a hit in one of those prior states (but not an state the client invented whole cloth.) But if the client is doing that then from the server's perspective that player is lagging and backwards reconciliation makes lagging players easier for other players to hit.
Obviously if you're doing client-authoritative unlagging then you need anticheat, but AFAIK competitive shooters have used server authoritative backwards reconciliation ever since the early 00s.
Not that this really matters. If you think that you could do favor the shooter style hit registration in a completely server authoritative way, we can just use wall hacks or aim bots as an example instead.
Iirc, Warzone also sends information about non-existing players to suspected cheaters to attempt detecting aimbots.
Not just that, you can even chuck a flashbang/grenade far outside your visibility range and get someone this way too.
- https://technology.riotgames.com/news/demolishing-wallhacks-...
- https://technology.riotgames.com/news/peeking-valorants-netc...
Why? Because even if software doing this is legitimate it's can still be used by actual cheaters by patching it.
Upd: I did read explanation of Nvidia reflex (NVIDIA Reflex keeps the CPU perfectly in sync with the GPU to eliminate the render queue.) and still not sure that I understand. Why developers of game did not implemented this fix themselves?
The frame queue exists to eliminate GPU bubbles where the GPU sits idle waiting for the CPU to send new rendering commands. If the game developer puts in the work of eliminating these GPU bubbles as much as possible then it's possible to turn off the frame queue while maintaining a good frame rate.
This step of reducing latency does not require intercepting any calls and is probably what is being done in AMD Anti-Lag. However there is a further step to reducing input latency that AMD called Anti-Lag+ that does require extra hooks in the engine. I explained that in this comment: https://news.ycombinator.com/item?id=37879517
* triple buffering does not actually use a queue, but rather two buffer swaps, which means a frame is allowed to skip ahead if completed early.
I guess if NVIDIA does it, then it must help. How odd.
To do this effectively is very difficult without a complete view of the pipeline all the way to the display. That is why a feature like that works best when the driver and game engine work together rather than either side attempting to implement it unilaterally.
It seems that AMD attempted to implement this feature without help from the game developer by hooking the Windows input APIs directly.