Live data from Hacker News

Disguised “AMD PCI Driver” enables executable-specific hacks

twitter.com

31–39 of 39 posts

Re: Disguised “AMD PCI Driver” enables executable-specific hacks

#31
post #5

Earlier quoted context omitted.

Maybe. But it's more likely they're replacing shaders with game- or engine-specific workarounds for hardware bugs. Used to do exactly that in my first GPU driver job. The goal wasn't to cheat, but to fix issues in popular games that for one reason or another wouldn't be patched for your GPU on its release.

I wonder why they don't just call the game developers on the phone and say "here is AMD, you must fix your shaders, here is the code". Certainly I would jump if I got contacted by AMD or NVIDIA. Now someone is going to say, if a game breaks people are going to blame AMD, so it is their problem. But AMD would just have to play hardball once, pick a smallish publisher and say "XY refuses to fix their broken code, we ev…

There are many situations where this doesn't work:

• Old games. People still want to play these, even though the developers don't maintain them, or no longer exist.

• Game engines. If there's a bug in e.g. Unity or Unreal, that means an unimaginable number of broken games. Likewise for middleware. And it's not the engines or middleware devs who pay the main cost here: all the games using them must be updated. Which may be quite difficult if e.g. the fix is only in the new engine version, but a game project is using an old engine version, and there was some backwards-compatibility break in-between.

• Competition! If one GPU vendor doesn't fix things, its competitors will, and it will lose customers because consumers (rightly) expect that any GPU runs any releases game.

• Gamedevs may not be able to quickly or easily fix a bug. Also bear in mind that in traditional game development, once the game ships, the team is wound down. There's nobody — and no budget — to maintain it.

• New hardware. Gamedevs can't test against your next-gen GPU that hasn't been released yet. If a bug only causes problems on that hardware, how do you get them to fix it and prevent it reoccurring?

Re: Disguised “AMD PCI Driver” enables executable-specific hacks

#32

Seems like the hashes are being cracked and refer to games, mostly.

Reminds me about a story from years ago where someone fixed bugs in a video game only by renaming the executable to doom3.exe

Renaming the Call of Duty United Offence executable (coduomp.exe) to mohaa.exe (Medal of Honor) makes the game work: https://steamcommunity.com/app/2620/discussions/0/3584166403...

Re: Disguised “AMD PCI Driver” enables executable-specific hacks

#34
post #5

Earlier quoted context omitted.

Maybe. But it's more likely they're replacing shaders with game- or engine-specific workarounds for hardware bugs. Used to do exactly that in my first GPU driver job. The goal wasn't to cheat, but to fix issues in popular games that for one reason or another wouldn't be patched for your GPU on its release.

I wonder why they don't just call the game developers on the phone and say "here is AMD, you must fix your shaders, here is the code". Certainly I would jump if I got contacted by AMD or NVIDIA. Now someone is going to say, if a game breaks people are going to blame AMD, so it is their problem. But AMD would just have to play hardball once, pick a smallish publisher and say "XY refuses to fix their broken code, we ev…

When I've worked in big companies, it was hard enough to get working contact information and then convince them to fix bugs in a reasonable time frame for real issues that were important.

In the couple of times I've tried to that accross companies, it's even worse, unless the other company is very accomidating, my company has a direct relationship, and either my company is a major customer or a major expense and the fix will save them a lot of money (and me a lot of headache). If we don't have a direct relationship, it takes months to get in touch with the right person, and then quarters to get a fix into their release schedule, so if I have a fix that works for me and my customers, I'll still put a little effort into reaching out to get it fixed properly, but then I'll just do what works.

Re: Disguised “AMD PCI Driver” enables executable-specific hacks

#35

At least for graphics drivers it's common that the driver applies tons of game-specific workarounds and optimizations, I guess this is also the main reason why there are monthly driver updates (fixes for new games), and why graphics drivers have become so massively big. Assuming that the same game-specific tweaking happens for CPU performance and compatibility doesn't seem like a far stretch.

> I guess this is also the main reason why there are monthly driver updates (fixes for new games), and why graphics drivers have become so massively big. I don't think so, otherwise it would be limited to graphics drivers. Since other kinds of Windows "gamer"-type drivers (keyboards, mice, motherboards, etc...) have also bloated over time, I think it's more about including useless things in them, as well as the use o…

You can buy other mice and keyboards, even the gamer type, without pushy dark-pattern crapware, if you avoid certain brands, e.g. Razer. Anyway, I think they're roughly right about gpu driver bloat. Release frequency has a lot to do with new app-specific optimizations, in between updates to support new hardware configs. As far as size, even without the GeForce experience-type stuff, the packages are still huge. They're supporting multiple generations of complicated devices with a sprawling set of features and APIs, but it's also those host hardware and app-specific tweaks building up.

Re: Disguised “AMD PCI Driver” enables executable-specific hacks

#36
post #5

Earlier quoted context omitted.

Maybe. But it's more likely they're replacing shaders with game- or engine-specific workarounds for hardware bugs. Used to do exactly that in my first GPU driver job. The goal wasn't to cheat, but to fix issues in popular games that for one reason or another wouldn't be patched for your GPU on its release.

I wonder why they don't just call the game developers on the phone and say "here is AMD, you must fix your shaders, here is the code". Certainly I would jump if I got contacted by AMD or NVIDIA. Now someone is going to say, if a game breaks people are going to blame AMD, so it is their problem. But AMD would just have to play hardball once, pick a smallish publisher and say "XY refuses to fix their broken code, we ev…

You don't have direct line to every successful developer on the planet when you work on a GPU. And even if you did, why would game developers drop everything for bugs in YOUR hardware?

Re: Disguised “AMD PCI Driver” enables executable-specific hacks

#37
I don't know why they need to disguise this driver, but every single GPU vendor does this, there's a reason nVidia heavily advertises "$LATEST_BIG_GAME Driver Support" every time a new AAA game comes out, it's all AppCompat flags, all the way down.

Re: Disguised “AMD PCI Driver” enables executable-specific hacks

#38

Not going to speak to whether it's coincidence or intentional, but PCI could also mean "Program Compatibility Interface" or something like that.

It shows up as a PCI device. And anyone writing a driver would know the standard meaning.

Re: Disguised “AMD PCI Driver” enables executable-specific hacks

#39
The game I work on is in the list and early on we saw a bunch of inexplicable crashes from Zen hardware (looking through the dumps we would see $rip had gotten itself into impossible places or we'd get exceptions at addresses that were not involved in the crashing thread).

As these crash faded from our bug leaderboard we assumed it was people upgrading their BIOS to get microcode fixes; I guess these runtime checks were a desperate attempt to avoid crashes in the interim? Windows Update is pretty bossy but it never demands that you update your BIOS.

How our game got on that list is baffling to me, though -- I don't know how AMD would have gotten the crash reports in the first place.

Post reply on HN