Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Locked thread
CJacobs
Apr 17, 2011

Reach for the moon!
Problem description: Recently I upgraded to Windows 10 from 7, and it's nice so far, but there's one glaring issue that's hampering my enjoyment significantly. Every time I turn the computer on, Windows disables my GPU with error code 43. I can tell this has happened because only one of my two monitors will be functioning. If I then go to device manager, I can select the GPU and pick 'disable' and then 'enable' and it'll come back on and function just fine. The device status even says "This device is working properly" after doing so. Device Manager also lists my drivers as the previous version, instead of the current one, even if I have literally just installed the new drivers and gone to device manager to check.

edit: Note, however, that it only says that on device manager. Geforce Experience says I have the proper driver installed.

It's a Nvidia GTX 960, if that matters. There is no physical problem with the graphics card, it heats up and cools down just fine and my computer detects that it is there.

Attempted fixes:
- Reinstalling the new drivers
- Disabling the GPU, uninstalling the old drivers, reinstalling the new drivers
- Disabling the GPU, uninstalling it from my devices, then reinstalling it (including the drivers)
- Taking the fuckin' thing out of my computer, uninstalling it from safe mode, putting it back in, reinstalling it

Recent changes: Other than the Win10 upgrade, none. I recently got rid of windows.old, as a cursory search led me to some threads wherein Windows was using the drivers from windows.old for some reason. Needless to say, it did not work.

--

Operating system: Win 10 Pro 64-bit

System specs:
Nvidia GTX 960 (the problem child)
Intel i5-4670
16 GB DDR3 RAM

Location: US

I have Googled and read the FAQ: Yep

CJacobs fucked around with this message at 00:49 on Jul 24, 2016

Adbot
ADBOT LOVES YOU

Mo_Steel
Mar 7, 2008

Let's Clock Into The Sunset Together

Fun Shoe
A few quick thoughts / results from my own searches from the info you gave:

  • Try disabling secure boot if that's an option.
  • Windows may be going out for the drivers on it's own before you can get at it to put on your own, causing conflicts even after you fully remove it.. Try the steps here to temporarily tell Windows not to look on it's own and install the drivers manually on a fresh reboot after uninstalling.

CJacobs
Apr 17, 2011

Reach for the moon!
edit: Cleaned up this post a bit. Booted into safe mode and got stuck there. When I started my computer in safe mode, I just got a black screen with "safe mode" in the corners whenever I moved my mouse. No windows, no taskbar, hitting mouse and keyboard keys did nothing. Had to use the cmd prompt from the 'troubleshoot startup' menu to get back into normal mode.

Windows says I have the latest drivers, but Geforce Experience redownloads them every time I restart my PC and I still have the same issue after trying the stuff you recommended.

edit again: Scratch that, it mysteriously stopped doing that. Okay, so after using DDU I have the latest drivers and they are sticking now for some reason! The problem is that that did nothing to solve my problem. :(

CJacobs fucked around with this message at 14:48 on Jul 24, 2016

Mo_Steel
Mar 7, 2008

Let's Clock Into The Sunset Together

Fun Shoe
Alright then, a few other things to look at:

  • Check for updates to your BIOS, usually found on the motherboard manufacturers website.
  • Along those lines, you can also check your BIOS settings related to graphics. You'll want to lookup your motherboard's BIOS manual so you know if anything seems odd.
  • Do you have another graphics card available you can test with; or try placing this one in a different PCI-e slot?

CJacobs
Apr 17, 2011

Reach for the moon!
Having trouble updating my BIOS. My motherboard is an Asus Z87-A, which does not support USB flashing because gently caress me I guess, and the update tool I have to use instead is not being cooperative. When I try to run it, it says this:



...But I already have the latest version available installed.



I will try putting the GPU in another slot and see if that changes anything.

CJacobs
Apr 17, 2011

Reach for the moon!
Alright, I installed it in the next PCI bus down (was in the first, now it's in the second) and it's still giving me the same problem. Still no luck with updating the BIOS.

edit: Scratch that. I have updated the BIOS successfully using the built-in EZ Flash utility that the manual does not even tell you exists. Unfortunately (again), it did not help. The BIOS also does not have any graphics settings to change.

CJacobs fucked around with this message at 17:49 on Jul 24, 2016

Mo_Steel
Mar 7, 2008

Let's Clock Into The Sunset Together

Fun Shoe
Generally my next thought would be one of two other tries:

  • Reinstall Windows 7, confirm it works there, decide if you want to try upgrading again to see if it works on a clean install and upgrade.
  • Buy a new video card and try installing that, making sure it's compatible with Windows 10 and your motherboard.

You did say you are able to manually enable the device after starting Windows and it functions normally then, correct? If so, it may be possible to setup a script in Powershell to auto-run on user logon and enable the device automatically. It's not a pretty solution, but I'll look into it.

Capt. B. Dick
Apr 25, 2016
I had similar issues and completely wiping the harddrive (not cleaning it but like, removing everything from it) and reinstalling windows fixed it. Otherwise you could try booting up a live version of linux for troubleshooting purposes.

Mo_Steel
Mar 7, 2008

Let's Clock Into The Sunset Together

Fun Shoe
Looked into the scripting aspect, it seems doable but requires a bit of setup and testing. I'll lay it out below, whether you want to give it a shot and see if it's not too annoying or try reinstalling Windows instead.

The original Powershell module we'll use for device management can be found here for reference and so I'm not taking undue credit: https://gallery.technet.microsoft.com/Device-Management-7fad2388

This is the code of the bit of scripting I've included, Enable-GraphicsDriver.ps1; comments describing what's going on are marked with a # mark at the start of the line. I tested this by manually disabling a network adapter I wasn't using and got success, I'd expect it to work with your video card too:
code:
# Set the location where the module we want to import is located.
# Replace the value of this entry with the folder path you save this script and the module in. KEEP THE SINGLE QUOTES ON THE OUTSIDE!
# e.g. For me, the full path of this script was 'C:\Users\Tim\Desktop\DeviceManagement\Enable-GraphicsDriver.ps1'
Set-Location 'C:\Users\Tim\Desktop\DeviceManagement\'

# Import the Device Management cmdlets.
Import-Module .\DeviceManagement.psd1

# The name of your graphics card, surrounded by asterisks and single quotes.
$deviceName = '*NVIDIA GeForce GTX 960*'

# Get the device object, the enable it.  If this works, powershell should say 'Device Enabled'
Get-Device | Where-Object -Property Name -Like $deviceName | Enable-Device
Requirements: (You probably already have these, if not let me know)
.NET Framework 4.5
PowerShell 3.0

Setup:
  1. Download the module + the script I created here.
  2. When the download is complete, right-click the zip file and select 'Properties'. At the bottom of the first tab, place a check in the box labeled 'Unblock'.
  3. Extract the contents somewhere you won't delete them, they'll need to stay there to run as a scheduled task later. For example if your username in Windows matched the one here you could extract the 'DeviceManagement' folder to 'C:\Users\CJacobs\'
  4. Find the file named 'Enable-GraphicsDriver.ps1' and right-click it, then select Open With > Notepad.
  5. On the fourth line, modify the value after Set-Location to reflect where you saved the files. Using the above example you'd change it so the line reads Set-Location 'C:\Users\CJacobs\DeviceManagement\'
  6. Save the file.

Next thing we'll want to do is try it manually before you go making a scheduled task for it:
  1. Restart your computer, login, open Device Manager, and confirm the graphics card shows as Error Code 43 and Disabled.
  2. Open the Start Menu and type 'Powershell' without the quotes.
  3. Right-click the 'Windows Powershell' desktop app and select 'Run as Administrator'
  4. Run the commands below in order; the first command you have to replace my location with the same location you used when you changed "Set-Location" in the script.
code:
cd 'C:\Users\Tim\Desktop\DeviceManagement'
Powershell.exe -ExecutionPolicy Bypass -File .\Enable-GraphicsDriver.ps1
If it works you should see "Device Enabled"; my Powershell window looked like this:


If all goes well we can set it up on a scheduled task at user logon.

CJacobs
Apr 17, 2011

Reach for the moon!
The script works! But, there's a problem. When I turn on the PC, the device is disabled, but it doesn't SAY it's disabled. The enable/disable box in Device Manager still says 'disable'. Upon clicking it, it changes to 'enable' and nothing happens, and then when you click 'enable' it comes back on.

Therefore, as is, the script does nothing unless I manually click the 'disable' button first in device manager. Is there a way to make the script toggle it disabled, then enabled? Because I bet that'd work just fine.

Capt. B. Dick posted:

I had similar issues and completely wiping the harddrive (not cleaning it but like, removing everything from it) and reinstalling windows fixed it. Otherwise you could try booting up a live version of linux for troubleshooting purposes.

That's a shame. Maybe someday I will wipe it all clean, but if this script thing works I think I'm just gonna deal with it until then.

CJacobs
Apr 17, 2011

Reach for the moon!
Just edited the script myself to disable it on one line and then enable it on the next, and that works perfectly! Now how do I set it to run the script on startup?

Mo_Steel
Mar 7, 2008

Let's Clock Into The Sunset Together

Fun Shoe

CJacobs posted:

Just edited the script myself to disable it on one line and then enable it on the next, and that works perfectly! Now how do I set it to run the script on startup?

Glad to hear it! Scheduled Task should be pretty straightforward from here:

  • Open the Start Menu and type "Task Scheduler", then select it from the list.
  • Click on "Task Scheduler Library", it should show a list in the main pane of existing scheduled tasks.
  • On the right-side click "Create Task" I'll show the next steps in pictures as well as text needed, because there's a bit going on.


General Tab

1.a. Give the task a name.
1.b. Select "Run whether user is logged on or not." and make sure the user account you select has local administrator rights. If your user account was the one you used to run powershell as admin it should be fine to just use that account.
1.c. Mark the box labeled "Run with highest privileges."
1.d. Select Windows 10 from the dropdown box.

Triggers Tab

2. Select "New"


2.a. Select "At log on" from the dropdown. "Any user" should be selected by default.
2.b. Mark the box "Stop task if it runs longer than" and select "30 minutes" from the dropdown menu.
Click "OK"

Actions Tab

3. Select "New"


"Start a program" should be selected already.
3.a. Paste in the following without quotes: "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"
3.b. Replace the folder path with your own in the following, then paste without quotes: "-executionpolicy Bypass C:\mypath\Enable-GraphicsDriver.ps1"
Click "OK"

We shouldn't need to change any of the default Conditions or Settings tab options, so click "OK" again. You'll be prompted for your password:


The task should appear in the list now; you can run it manually by right-clicking on it and selecting "Run", though you'll probably want to test it by just restarting your PC. Let me know if it doesn't properly activate the device and we can try something else like delaying it a few seconds past logon to see if something else is interfering; or if you log off and on a lot we could look at making it at startup instead of log on.

Mo_Steel fucked around with this message at 04:20 on Jul 25, 2016

CJacobs
Apr 17, 2011

Reach for the moon!
It works! :woop:

Thanks for the help, man, it's a very bubblegum-and-duct-tape fix but I'm a-ok with that. I planned on getting a new gpu soon anyway, so this should tide me over just fine until then. I appreciate the help, I never could have figured this stuff out on my own. :v:

Adbot
ADBOT LOVES YOU

Mo_Steel
Mar 7, 2008

Let's Clock Into The Sunset Together

Fun Shoe
Glad the MacGyver approach worked, I found out about a Powershell Module I didn't know about that could be handy if something breaks down at work one day. :toot:

  • Locked thread