Sometimes, your computer decides that you're not allowed to get any work done, or have any fun, today.
Mine did it to me today, by suddenly deciding (according to the DirectX Diagnostic Tool, dxdiag) that my graphics card had no memory and was not capable of DirectX acceleration of any kind.
Yes, as per Microsoft support document 191660, "The DirectDraw option or the Direct3D option is unavailable when you start Microsoft games for Windows".
The "Adapter" page in Display Properties (I'm running Windows XP) lists the right specs for my GeForce 7800 GT, but dxdiag believes there are "n/a" megabytes of memory on it.
This doesn't cripple Windows in general, but it means I'm not going to be playing any 3D games to speak of (OpenGL games still work fine, but most Windows 3D is Direct3D), or watching much video. Small-dimensioned video files play OK as long as they don't have to be scaled to a higher resolution; scale 'em up and the frame rate dives as the CPU begs for mercy.
I've had this problem once before. Then, I just had to run dxdiag, turn off whichever DirectX Features were still available in the Display tab, then close dxdiag and run it again, and turn all of the now-available-again features back on. Totally opaque for the everyday user, but a doddle when you know how.
Now, though, DirectDraw Acceleration, Direct3D Acceleration and AGP Texture Acceleration are all Not Available, and the enable/disable buttons for them are greyed out, no matter what I do.
(Needless to say, the DirectX Files tab in dxdiag says "No problems found"!)
And this is the way it is apparently going to bloody well stay, because I've been banging my head against it for more than six hours now, making no progress whatsoever.
I can get work done while the computer has this problem. If anything, it makes it easier to work, because I sure as hell can't play. But I have a hard time doing anything, including sleeping, if there's an unresolved problem like this dancing around in the back of my brain.
There's quite a lot of info on the Web about this problem, including some pretty freaky suggestions, most of which are mentioned on the Microsoft page.
Herewith, the list of Things I've Tried:
I've reinstalled the graphics and motherboard drivers, and the latest version of DirectX 9, multiple times. Yea, multitudinous have been the reboots.
I've cleaned out the old Nvidia drivers with Driver Cleaner Pro (previously mentioned here) before reinstalling them.
(Oh, and yes, "Hardware acceleration" in Display Properties is set to "Full". I've tried setting it to None and then back to Full, too.)
I've tried the weird-sounding suggestion to enable, then disable, Remote Desktop Sharing in Microsoft NetMeeting, because the sharing feature apparently blocks Direct3D, and cycling through it can perhaps cancel some other application's similar block.
I've disabled the Terminal Services service, which I don't need anyway.
I've uninstalled my monitor in Device Manager and rebooted, even though this particular piece of voodoo is only at all likely to work if you're removing phantom monitors from an extra graphics adapter, like an integrated motherboard adapter that you're not using.
I've reinstalled Windows over the top of itself.
(Actually, the first time I did that I accidentally told Windows the wrong drive, picking the other one in the system that's the same size as the actual boot drive. So I created a shiny fresh copy of Windows that I didn't want. That was thirty minutes I'll never get back - though I didn't bother installing graphics drivers in the new Windows. I suspect that DirectX would then have worked, but who knows?)
I've restarted the computer with a "clean boot procedure", by using the System Configuration Utility, msconfig, to skip all startup items and non-Microsoft services.
(This, entertainingly, showed me that msconfig does not consider Windows Defender to be a "Microsoft service".)
I've turned off "Enable Write Combining" in Display Properties and rebooted. And then turned it back on again. And rebooted.
And, the last option on the Microsoft page: I created a new user account.
The Microsoft page doesn't tell the hapless troubleshooter what to do with the new account, mind you. It just tells you to make it, and... wait for its healing energy to permeate your computer's chakras?
I presumed that I was actually meant to restart and log in as the new user, so I did that. But it of course did not help.
Next, the Microsoft support page points you to another Microsoft support page, "How to troubleshoot display issues in Microsoft games". But that contains nothing helpful, either.
(I love how Microsoft's pages always mention "Microsoft games" in particular. That's not really a good PR message - it suggests that other DirectX games might work fine, but ones from companies owned by Microsoft wouldn't.)
I've even visited the More Help tab in dxdiag and then clicked the DirectX Troubleshooter button, with the mad hope that this might be the first instance in human history of a Microsoft Troubleshooter actually shooting some trouble.
So much for that.
All of this screwing around has messed my Windows installation up a little more than it was before. There was one incredibly bizarre problem, now resolved, that I'll leave for another post, and all of my icons are of course bunched up on one side of the screen because layout.dll has forgotten where they were.
Oh, and ACDSee now has a great error:
But the problem remains.
If Web pages about this are anything to go by, this problem can be a bit like lower back pain; it makes you suffer for a while, then just goes away as mysteriously as it came, when you reboot for some other reason. I've made a frickin' hobby of rebooting today, though, and the problem ain't gone away yet.
The only option left, as far as I can see, is a proper nuke-from-orbit Windows reinstall from scratch. (I suppose I should have kept the accidental install on the other drive, instead of deleting that Windows directory when I got back to booting from the proper drive. Oh well.)
That'll mean losing most of the system setup stuff I've done over the last year and a half of largely trouble-free computing, which is not that big a deal, of course.
But it's ludicrous to have to do that just because Windows has arbitrarily decided not to let the graphics card accelerate anything any more. It's like having to reinstall Windows because it's decided to not let you use anything above 640 by 480, or because the audio "mute" box is permanently checked. It feels like buying a new car because the horn doesn't work in your old one.
(And yes, I have been tempted to use this as an excuse to get a whole new computer. Mmmm, quad core...)
I've swapped e-mail with a fellow who works at Nvidia; I'll drop him a line and see if he's got any ideas. I also invite you all to contribute your own hare-brained schemes in the comments.
I will, of course, also update this post when the problem's fixed, whether by diplomacy or the nuclear option.
[UPDATE: Yeah, I reinstalled Windows. Latecomers haven't missed all of the fun and games, though; check out the comments!]