An example of bad AMD driver code

BFG10K

Lifer
Aug 14, 2000
22,672
2,817
126
This is shockingly poor quality code, and such garbage needs to be called out.

 

Despoiler

Golden Member
Nov 10, 2007
1,966
770
136
This is shockingly poor quality code, and such garbage needs to be called out.



PITCHFORKS!!! First, it should be fixed. Second, who switches vendors and doesn't uninstall the previous driver package? You always have been and always will be asking for problems by not taking that step. It doesn't matter who the vendor is.
 

Mopetar

Diamond Member
Jan 31, 2011
7,797
5,899
136
Meh. Yes they should probably fix this but leaving AMD or NV drivers on your system when you switch to the other is just asking for trouble. The real solution is remove the AMD driver when you switch to an NV card.

Still, it's just REALLY bad code. Even if you did want to have something that would potentially wait forever, there are better ways of handling it.
 

Dribble

Platinum Member
Aug 9, 2005
2,076
611
136
The problem is more what it says about the rest of the code and the general qa/code review process that is being used to verify it. That said if you could look behind the scenes at a lot of companies code you would probably be appalled.
 

gdansk

Golden Member
Feb 8, 2011
1,974
2,354
136
This is why I'm against the bloat AMD bundles with the driver. I don't need the screen recorder. If you use the Microsoft distributed driver package, it doesn't include this junk. But they are often months out of date. At least with Nvidia you can easily choose not to install GFE.
 

Mopetar

Diamond Member
Jan 31, 2011
7,797
5,899
136
The problem is more what it says about the rest of the code and the general qa/code review process that is being used to verify it. That said if you could look behind the scenes at a lot of companies code you would probably be appalled.

It's easy to understand how something like that gets through because all of the automated tests that would be run would likely only be done on a test system without this particular problem. It's pretty unlikely to misbehave in the same way that would set off flags in the test system.

It is the kind of code that's good enough for the Underhanded C Contest because it's easy to overlook, easy to attribute to incompetence or a mistake, but actually has some nasty effects and might make people think it's a problem with their competitor's product. But given some of the cowboys that work in the industry I'm sure it's better to attribute it to stupidity as opposed to malice.
 

beginner99

Diamond Member
Jun 2, 2009
5,208
1,580
136
Still, it's just REALLY bad code.

Exactly and code like this doesn't shine a good light on their software engineering practices. If the driver itself is similar badly made, stability and security issues are certain to exists and probably also leaving performance on the table.
 

Stuka87

Diamond Member
Dec 10, 2010
6,240
2,559
136
First, this has nothing to do with their drivers, as this isn't a driver file.

This is one of the user space programs that gets loaded with the AMD suite. It is a rather poorly thought out piece of code. A do/while loop will just sit there spinning without any sort of wait state, which is why its consuming all of one core. Just adding a 5 second sleep would fix the issue. Or make it event driven, and ditch the loop entirely.

Is it a dumb thing to release? Sure.

Is it some horrible "OMG worst drivers ever" issue, no.
 
Last edited:

Martimus

Diamond Member
Apr 24, 2007
4,488
152
106
Meh. Yes they should probably fix this but leaving AMD or NV drivers on your system when you switch to the other is just asking for trouble. The real solution is remove the AMD driver when you switch to an NV card.
I remember this being an issue switching from Nvidia to AMD a few years ago. It was so bad that people said you needed to do a fresh install of the OS to get rid of the Nvidia code.
 

GodisanAtheist

Diamond Member
Nov 16, 2006
6,717
7,013
136
I remember this being an issue switching from Nvidia to AMD a few years ago. It was so bad that people said you needed to do a fresh install of the OS to get rid of the Nvidia code.

-Yep, the GPU vendors have been up to dirty tricks like this for a very long time. Its not right, but it is what it is.

Always do a wipe of your drivers and all associated files when switching GPU vendors one way or another. Use driver cleaner tools if you're really worried and wipe your whole system if you're paranoid.

This is almost a non-story in the grand scheme of things.
 
  • Like
Reactions: Tlh97 and Leeea

Stuka87

Diamond Member
Dec 10, 2010
6,240
2,559
136
Always do a wipe of your drivers and all associated files when switching GPU vendors one way or another. Use driver cleaner tools if you're really worried and wipe your whole system if you're paranoid.

As a side note, AMD actually has a "remove everything" option in their uninstaller which does the same thing as the third party driver cleanup tools. I am not sure if nVidia has a similar option.
 

Mopetar

Diamond Member
Jan 31, 2011
7,797
5,899
136
As a side note, AMD actually has a "remove everything" option in their uninstaller which does the same thing as the third party driver cleanup tools. I am not sure if nVidia has a similar option.

That should probably be the default choice because unfortunately when it comes to computer hardware, there are a lot of people who aren't knowledgeable enough to understand that doing so is not only the best choice, but is probably necessary to prevent problems and issues similar to this one. Granted, many of these people won't install their own GPU, but I know someone who's not completely tech illiterate that built their own computer without realizing that standoff screws were necessary.
 

AnitaPeterson

Diamond Member
Apr 24, 2001
5,941
387
126
Quote directly from source article:

"Ideally, before changing graphics card, you should uninstall the current graphics card driver, change hardware, then install the new driver, in that order. But for a quick test that's not what most people do, and others are simply not aware of the fact that a thing called "graphics card driver" exists, and what it does. [...]

If you are affected by this issue, just uninstall the AMD driver from Windows Settings - Apps and Features. If that doesn't work, use DDU. It's not a big deal anyway, what's most important is that you are aware, in case your system feels sluggish after a graphics hardware change. "

In other words, computer building and tweaking can be tricky if you don't know what you're doing.
So what else is new?

Does anyone here remember messing with IRQs? ISA latency? VGA passthrough cables?
 

Martimus

Diamond Member
Apr 24, 2007
4,488
152
106
Does anyone here remember messing with IRQs? ISA latency? VGA passthrough cables? [/QUOTE said:
IRQs were the worst. Had to memorize what each component was so I could use one that wasn't already in use. With my current memory abilities I don't think I could do that. I'm glad they are gone!
 

BFG10K

Lifer
Aug 14, 2000
22,672
2,817
126
Second, who switches vendors and doesn't uninstall the previous driver package? You always have been and always will be asking for problems by not taking that step. It doesn't matter who the vendor is.
I'll bet your system right now has half a dozen drivers for devices not currently connected. You don't know because Windows installed them automatically in the past. Do you expect to have six pegged CPU cores until you manually intervene?

I haven't plugged in my iPod for weeks. Should I be expected to constantly uninstall iTunes, only installing it for the session I have it plugged it?

How about cellphones, USB flash drives, portable HDDs and printers that aren't connected? Is the user expected to uninstall any such drivers when not using them?

Also should I uninstall my Realtek NIC driver every time I disable it?

The fact that this garbage piece of code falls into an infinite loop when it can't detect hardware is AMD's problem, not the user's. Instead of claiming "user error", this pile of coding excrement needs to be called out so AMD fix it.
 

Despoiler

Golden Member
Nov 10, 2007
1,966
770
136
I'll bet your system right now has half a dozen drivers for devices not currently connected. You don't know because Windows installed them automatically in the past. Do you expect to have six pegged CPU cores until you manually intervene?

First, the AMD issue isn't with the driver. It's with software included in the package. How do you not know the difference when its clearly explained in the article? The title was nothing more than click-bait for ignorant hand wavers.

I actually remove drivers for devices that are no longer part of my system. Windows doesn't install them because I have automatic driver updates disabled. No because I actually monitor my system for abnormalities.

I haven't plugged in my iPod for weeks. Should I be expected to constantly uninstall iTunes, only installing it for the session I have it plugged it?

How about cellphones, USB flash drives, portable HDDs and printers that aren't connected? Is the user expected to uninstall any such drivers when not using them?

Jesus. You clearly don't know the technical difference between a device driver for a GPU and usb devices. Hint, they don't work the same. USB devices do not need a specific device driver because they conform to the USB spec and the OS provides the functionality. You only need an instalable driver to add more features beyond transport and power delivery USB has built-in.

Also should I uninstall my Realtek NIC driver every time I disable it?

No because that would be stupid. Well that and disabling a device is not the same as removing it from your system, leaving the software and driver installed, and then installing another similar device to it.

You can try to pitchfork all you want, but few on this forum accept emotional, factless arguments. Myself included. Throwing a tantrum and trying to get others on board with you is infantile and better suited for Disqus comments. AMD will fix the issue, because that is what their programmer do. No programmer writes bug free code and mistakes, even boneheaded ones, slip through for any programmer at one time or another.