8 ms·
AMD's Anti-Lag feature is getting gamers banned from Counter-Strike 2
- filterfiber 3y agoThis is extremely wild to me. AMD literally made an "internal cheat" for cs2. This is a widely known guaranteed ban and likely among most people (if you modify the game engine then you get banned). Even with weak anticheat like VAC. This means AMD didn't work with valve at all on this feature, a feature I assume both parties would be interested in. This would be one of the biggest esport games for the anti-lag feature that amd could advertise as supporting. On top of not contacting valve, they had the expertise to do this, but somehow didn't realize they would get banned? Somewhat hilariously there's no way they did this for valorant - that game wont even launch if you have debug tools open (unless amd is so dense they worked around that).
- unethical_ban 3y agoI still hope they unbanned players who were hit by this - my opinion is that players should be expected to know the internal workings of anti-lag or of VAC, and that AMD is a big enough player in the market for people to "just trust" with drivers. This isn't some random mouse or keyboard software from Alibaba.
- filterfiber 3y agoThey certainly will if they haven't already. Last I heard they were waiting for amd to fix their code before they unban people. This is the third false-VAC since the cs2 beta. First was a unprotected yaw command (no commands should get you vacced unless they're protected by sv_cheats), windows 7 users, and now amd anti-lag+. Although in the case of AMD, this is definitely not valve's fault. They detected exactly what they're supposed to.
- flerchin 3y agoExcept they didn't make a cheat at all? They applied smart engineering and reduced lag for players.
- briffle 3y agoyes, by manipulating running code from another process. I'm actually quite amazed no AV software immediately stopped it.
- johntb86 3y agoParts of the graphics driver is loaded into the application process (as a DLL), so it's not quite that suspicious. But once they start modifying the application code itself, that's when the problem happens.
- mananaysiempre 3y agoNit: AFAIU there is no literal modification of machine code going on—instead the import address table (IAT, the Windows counterpart of Linux’s GOT) is patched (the Windows tradition calls this “detoured”, from the quite popular Microsoft hack[1] that does it). [1] https://github.com/microsoft/Detours https://github.com/microsoft/Detours
- adamrezich 3y agoaren't graphics drivers generally given free reign to do pretty much whatever?
- paulmd 3y agodrivers are a black box, yes, but in this case, the driver is trying to get the game to act in a certain specific way, and it needs to either have these calls added to the game engine, or it needs to inject itself and rewrite the game code (detouring) dynamically at runtime. reflex and antilag basically work by flipping the vsync model around. instead of "render a frame -> wait for the monitor to be ready to draw", it's "wait -> render". And by dynamically adjusting the wait time, you can have the frame ready at the last possible moment before the monitor is ready. This means game state is $WAIT_TIME milliseconds fresher, and you've reduced latency by that amount. well, that means you have to have some method to control when the game starts doing the game loop. So you have to be inside the engine somehow - either you have a WAIT_FOR_REFLEX() in the code, or you grab control of the frame queue and don't return control until you're ready, and you just block until the right moment. AMD injected that part.
- NBJack 3y agoGiven the public outcry over the sudden and unexpected demise of CSGO (especially for those that paid), this will only make things worse.
- beebeepka 3y agoI am not a CS player though I spent several hours with the game. While it plays much better than CS:Go, it stutters surprisingly often for the first few minutes, even on my 5800x3d/6800xt machine. Despite the 300 FPS. Shit happens and will be fixed. Still better than splitting the community. They need to work with AMD and resolve the issue.
- opan 3y agoThe game runs unplayably poorly on some people's hardware, Valve's own Steam Deck included (doesn't even reach 60fps in menus on lowest settings). macOS users also had their game taken away with no replacement promised. That's at least two groups of people who could play CS:GO fine in the recent past, but can no longer play a modern CS game.
- bravetraveler 3y agoDitto - 7950X3D and 6900XT; game stutters like crazy at times. I can't pin it to a specific time/event, just restarting seems to help. I'm guessing a scheduling thing, but have absolutely no data. This is on Fedora Linux with a very recent kernel, Mesa, and gamescope
- gkfasdfasdf 3y agoCan anyone explain how the anti-lag feature works? And why would it result in a ban?
- kiririn 3y agoIt amounts to waiting until just before vsync to start rendering a frame CPU side, in the hope that the frame is fresher than what you would get from a scattergun ‘mailbox’ approach aka vsync disabled It should theoretically be possible to get the tear-free smoothness of vsync combined with even lower latency than vsync disabled, but in reality is it is difficult to predict how long a frame will take to render It’s not clear how they solved this, or why it required hooking into games more than graphics drivers already do
- dist-epoch 3y agoHow is this different to FreeSync/GSync or running high Hz?
- kosievdmerwe 3y agoPresumably it doesn't require an expensive monitor. If you don't underestimate the render time (and miss the refresh) then the frame will be fresher.
- ack_complete 3y agoIn the event that the CPU is faster than the GPU, the CPU run ahead of the GPU and queue multiple frames to render, regardless of adaptive sync or not. This adds lag. Adaptive sync or high Hz only gets rid of up to one frame of delay from vsync timing, not delay from excess frame queuing. What Anti-Lag does is throttle the CPU work to reduce this delay to as low as sub-frame, so it doesn't process input and begin frame processing until closer to display time -- so the game starts frame updates with fresher input and gets those frames out with less delay. Graphics APIs often only allow setting the frame queue length in an integer number of frames and it can be difficult to reliably tell when frames present and control frame queuing, especially with a compositor involved. This has the graphics driver involved, so it knows the absolute truth of when frames hit the output.
- deleted 3y ago[deleted]
- TheCapn 3y agoIt isn't just CS2. Apex Legends has players affected by this. Respawn Entertainment has addressed it and said is reverting bans. I guess part of the issue is an AMD update made it default on, so players who didn't even know it got included were affected.