Direct3d stops working after some games and system requires reboot

Status
Not open for further replies.

Karmashock

Posts: 223   +0
This has happened to me on many systems in the past with many different configurations.

Current configuration:
Windows XP SP2 (updated to current but SP3 has not been applied)
Current Directx
Current Catalyst Drivers
AMD 4200 X2
ATI 3750
2GB Ram

Effectively the problem is that every so often on termination some programs will screw up Directx. Typically Direct3d functionality is all that is effected though sometimes even directdraw stops working.


A simple reboot will in all cases fix this problem until the next time, however that is both sloppy and annoying. What I want to know how to do is fix this without a reboot.


I'm assuming that Directx needs to get reloaded or that some other system service needs to be restarted. This is NOT a driver issue or if it is... it is one that has been around on many systems for about a 6 years... and effects both ATI and nVidia chipsets throughout multiple generations of said cards. This problem has been around for a long long time.


I've asked about it from time to time to see if someone knew and most people knew nothing about it.

Anyone have an idea here?
 
what would SP3 do that updating everything else wouldn't? I've heard horror stories about bad things SP3 can do...


As to corrupted files. it only does every so often. Typically after a certain game as exited improperly or something.


What I think is happening is that Direct3d thinks the old program is still running and so refuses to grant access to Direct3d to other programs.


What I think I need is a means to force Direct3d to unlock or disengage... or restart the whole directx subsystem.


I can't even find a directx system service. How do I find it in memory? It has no process, no system service... where is it? How do I force it out of memory if only just for a minute.
 
"what would SP3 do that updating everything else wouldn't? I've heard horror stories about bad things SP3 can do"...

You came here for help... Those "horror stories" come from people just like you. People who have no real understanding of computers. Good luck
 
First, I appreciate your help.

Second, it is very common on most forums to be given a generic responses before actual investigation occurs. While that is typically prudent it is also often a waste of time as it assumes whatever the problem is can be addressed by generic fixes.

Third, I have a pretty good grasp of computers.


What aspect of SP3 leads you to believe that it would have any effect on this situation beyond it just being something on the list of things you tell everyone to do?


I think you're trying to fix a different problem. My problem is how do you reset directx/direct3d or how do you get it to unlock.

In windows XP only one program can use Direct3d at a time... or so I've been lead to believe. What I think is happening is that some programs exit improperly and thus directx/direct3d remains locked to a program that is no longer running or just remains locked period.

This problem is fixed in all cases by simply rebooting in which case all handles are obviously reset. It is not a file corruption issue.

Again, do you know where it can be found in memory? Why is directx so elusive? Practically everything the computer does can be reset without rebooting the computer.
 
Whoa, yall! I think there's a misunderstanding here. :-o

Karmashock has a valid point. Besides the fact I have never seen any advantage to SP3, he brings up valid questions. And it's very frustrating to have a computer problem - maybe worse than your car breaking down. :)

Often the problem can be fixed by a troubleshooting "knowledgebase", if you will. But sometimes it can't.

On the other hand, it does seem that the question was not clearly stated.

I would suggest to him/her to go to M$ and do more research on DirectX. Also, if you have XP Pro, try TaskList.exe. I don't know if this will help since I don't have that OS.
 
Try this: copy everything between the dashed lines into notepad, save it and rename the file with a .reg extension instead of .txt and double click the file to add the info into your registry (What this does is add "register" and "unregister" as options when you right click certain files)

-------------------------------------------------------------------------
REGEDIT4

[HKEY_CLASSES_ROOT\.dll]
@="dllfile"

[HKEY_CLASSES_ROOT\dllfile\shell]

[HKEY_CLASSES_ROOT\dllfile\shell\Register]

[HKEY_CLASSES_ROOT\dllfile\shell\Register\command]
@="c:\\winnt\\system32\\regsvr32.exe \"%1\""

[HKEY_CLASSES_ROOT\dllfile\shell\Un-Register]

[HKEY_CLASSES_ROOT\dllfile\shell\Un-Register\command]
@="c:\\winnt\\system32\\regsvr32.exe /u \"%1\""

[HKEY_CLASSES_ROOT\.ocx]
@="ocxfile"

[HKEY_CLASSES_ROOT\ocxfile\shell]

[HKEY_CLASSES_ROOT\ocxfile\shell\Register]

[HKEY_CLASSES_ROOT\ocxfile\shell\Register\command]
@="c:\\winnt\\system32\\regsvr32.exe \"%1\""

[HKEY_CLASSES_ROOT\ocxfile\shell\Un-Register]

[HKEY_CLASSES_ROOT\ocxfile\shell\Un-Register\command]
@="c:\\winnt\\system32\\regsvr32.exe /u \"%1\""

[HKEY_CLASSES_ROOT\QuickView\.DLL]
@="Dynamic Link Libraries"

[HKEY_CLASSES_ROOT\QuickView\.DLL\{F0F08735-0C36-101B-B086-0020AF07D0F4}]
@="SCC Quick Viewer"

[HKEY_CLASSES_ROOT\QuickView\.OCX]

[HKEY_CLASSES_ROOT\QuickView\.OCX\{F0F08735-0C36-101B-B086-0020AF07D0F4}]
@="SCC Quick Viewer"
----------------------------------------------------------------------------

Then, while showing hidden files and folders, Navigate to your System32 folder and find "d3d9.dll". Right click the file and unregister, and then right click again and re-register the file.

I am not sure that the above solution will work but if it does, open notepad and type or copy the following:

Regsvr32 [/u] d3d9.dll
Regsvr32 d3d9.dll

save the text file and rename the extension .bat instead of .txt and keep the file on your desktop or create a shortcut to it on the quick-launch bar, this way whenever you have to reset directx, you can just double click the batch file and the steps we just walked through will be done instantly and automatically.

You should also download the directx control panel from microsoft, it has a ton more options than directx diagnostics (directx diagnostics is what you use when you type "dxdiag" into the run box) and its free - you will have to google directx control panel add-in since I cannot post a url.

copy the downloaded .cpl file into the system32 folder or just double click the cpl file itself and bypass using control Panel.
 
Status
Not open for further replies.
Back