Adrenalin driver breaks Command & Conquer games
community.amd.com
community.amd.com
"This title is from 2007, so we are unlikely to devote any valuable engineering resources to this issue, which is most likely caused by outdated API modules"
Doesn't make sense #1: Reason to not fix because it is from 2007, what about counter strike?
Doesn't make sense #2: Fixing the issue implies devoting "valuable" engineering resource, does it mean they don't have enough engineers or such issue is extremely difficult?
Doesn't make sense #3: "outdated API modules" was that likely from an educated guess and what does it mean even.
It sounds really foolish for a reply of this calibre to a community of supporters. I love AMD for what they're doing technically but I hope someone can at least promise to fix it soon before this hits the larger community.
The main issue is probably due to a bug in the old driver. After a while, bugs become a feature, and it's not uncommon to implement bugs to retain backwards compatibility. This is where the politics enter the scene. Some engineers believe that all bugs must be squashed, while others have a more pragmatic approach. IMO, any behavior that is a problematic deviation from the old drivers, should be changed. Otherwise there is no backwards compatibility, only a best effort approach, which is unacceptable for something as crucial as a graphics card driver.
Now imagine you're a driver developer: All this software out there assumes your driver is broken. What happens when you fix it? Well, hopefully the app's workarounds don't actually cause it to break or produce incorrect results. What if the workarounds make it really slow? You want it to run fast on your hardware so people won't buy your competitor's hardware. So now you have workarounds for their workarounds...
OpenGL shaders have (iirc) always been versioned, so that's good at least. The introduction of profile versions also helps but at present even those tend to have major bugs depending on OS and driver, so workarounds still end up in games and applications.
Direct3D was historically much more explicit about versioning and feature sets but there's a lot of variability through things like caps flags (hardware can advertise different levels of functionality) and the app explicitly requesting specific features like a given texture format. Shaders in Direct3D are versioned, but it's quite possible that a driver is only built to handle shaders generated by a given shader compiler, so a new compiler targeting the same shader version will still break the driver. Some shaders probably were generated by old broken compilers, and the driver probably has workarounds for those.
Also, modern graphics drivers typically have a bunch of hacks they quietly apply to big-name game titles and applications to make them run faster or suppress crashes. This goes as far as driver developers actually rewriting the shaders that a game uses, in order to improve performance on their hardware. An infamous old example of this is 'quack3'. https://techreport.com/review/3089/how-ati-drivers-optimize-...
On the bright side, a lot of this madness is gone in Vulkan and Direct3D 12. But very little software is going to end up using those APIs because they're much, much harder to use correctly.
I had the unfortunate experience of watching them drop support for the GPU part of my APU while it was still one of their headline APUs.
This because they had based it on a previous gen discrete GPU, and they didn't want to support that GPU range any more with future drivers.
It is experiences like these that makes me understand were RMS came from, and it pains me when so many even within the FOSS world poo poo his message and seem all too willing to break things left and right just because it is "old and crufty" code.
fixed
I hope it doesn't mean they lost the source code. Just as bad: did they properly use VCS back in the day? You'd be surprised, I still hear of companies that don't use VCS to this day.
Either way - hard to figure out what's the move and agenda is about from a single paragraph from a forum post.
- This is why AMD drivers require 15-25% more single thread CPU power to reach fps parity with Nvidia, basically if you want AMD GPU you need to go Intel CPU).
-This is why their educational outreach is a joke, all GPU computing uni courses are teaching Cuda with Nvidias provided support (materials and hardware).
-This is why there still is no viable answer to Cuda. Forget about AMD and Tensorflow.
only if the reply is and will be the official position.
AMD is playing with the fire here.
They aren't particularly old titles, either... maybe this is just me, but most of my gaming time is on DX9 games older and more obscure than that. I'm not in the market for a new GPU now, but this wouldn't encourage me to switch from Nvidia.
Nice.
Still though, I assume the issue is larger than "some game from over 10 years ago is not working" and is more like "an entire API is not working"? If so, this also has serious consequences for higher-impact applications as, for example, in a professional setting like CAD. It would reflect badly on AMD if they "intentionally" break things, or at least intentionally not fix them.
What stings me is that they did work in the pre-adrenaline drivers: this was a regression in functionality across the board on current hardware.
edit: What I meant was that the user could try that to see if it isn't some software incompatibility.
there is nothing more to add to this thread so it’s locked.
What a way to save your face.
This is all about expectation management. The moment you implement a workaround for a buggy game you set expectations. Now it's AMD's problem, not EA's. If the game claims to run with DX9, and your driver claims to support DX9, and you implemented a shitty workaround to make the game work with your driver back in 2007, you better be prepared to support this workaround for as long as you claim to support DX9 with your drivers. If your drivers once worked with a game and then a new driver breaks that, it's most definitely your problem and not EA's.
nVidia have a big developer support program, to the extent of sending their own devs to work on big titles, which makes this easier for them than AMD.
They/we want backwards compatibly and that does indeed include workarounds for shitty game engines.