hi, Many older opengl calls have been broken. Many opengl calls are broken on all sorts of different drivers. Some calls are broken in a BSOD way, and others fail silently. This is why engines use so many work arounds and different opengl paths and avoid all sorts of different opengl calls that are known to crash. Opengl programs will fail on many, many more computers than the SDL directx driver -- I can point you at stats where some games have recorded the number of crashes.
This particular instance of directx crashing is because it's most likely overwriting memory somewhere. Normal use will *not* cause this crash. Developing to this API may cause this crash -- like developing to all other APIs on all other platforms. Using pygame should not be able to cause memory overwrites... however Lenard Using directx as default on older computers makes sense because they are using the older drivers. Making a real time application like a game go too slow is breaking the game. This will happen on older computers by making the windib driver the default on older versions of windows. The SDL directx driver is tested by video driver companies. Even the intel drivers fixed their problem they were having with SDL programs, so newer drivers (as in < 2 years) have fixed the crashes. Note: the windib driver is chosen as default for most new computers. Some OpenGL failure stats for you. Some stats to give you more of an idea: http://www.catnapgames.com/blog/181 http://www.steampowered.com/status/survey.html (note only directx + other stats) Here's some stats from one mature game by an opengl expert, that doesn't include linux/bsd/etc installs. It's a java games that works on at least win/mac/linux. ref: http://forums.indiegamer.com/showpost.php?p=139044&postcount=8 O/S Version Successes Failures Total Failure Rate % Mac 10.3 1631 232 1863 12.5 Mac 10.4 8199 815 9014 9.0 Win 5.1 9357 2526 11883 21.3 19394 3666 23060 15.9 O/S GL Version Installs Mac OS 10.3 1.1 517 Mac OS 10.3 1.3 601 Mac OS 10.3 1.5 512 Mac OS 10.4 1.1 733 Mac OS 10.4 1.2 1415 Mac OS 10.4 1.3 1162 Mac OS 10.4 1.5 2833 Mac OS 10.4 2.0 2058 Windows XP 1.2 364 Windows XP 1.3 2088 Windows XP 1.4 2305 Windows XP 1.5 1061 Windows XP 2.0 3305 On Wed, Feb 4, 2009 at 11:02 AM, Brian Fisher <[email protected]> wrote: > What you say is true, but a little more nuanced than that. > > Yes windows stuff is sometimes bad, and sometimes it's not pygame/SDL's > fault at all... > > The issue with SDL's use of DirectX though, is largely that it has not been > maintained in a very long time, and is now using legacy calls (5 or 7 or > something) that go through directx call translation gymnastics that are > poorly supported and barely tested (if at all) by driver manufacturers who > put all their energy into the latest versions (directx 10 and all that) > > (Py)OpenGL on the other hand, does not have that problem, because while > microsoft has been reving and redesigning the DirectX API's in major ways, > OpenGL has not - the OpenGL 1.1 and 1.2 calls are all still part of the spec > that 2.x implementations must support to be compliant > > On Tue, Feb 3, 2009 at 3:53 PM, René Dudfield <[email protected]> wrote: >> >> hey, >> >> sure, windows sometimes corrupts itself. Nothing new there. >> Especially if the code you are working on passes in incorrect values, >> and is overwriting memory it shouldn't. >> >> It is easy to crash many machines with a few well crafted opengl, >> directx (or other video API) calls. >> >> >> If using non-buggy code, that doesn't do buffer overwrites and such I >> think you wouldn't have as many problems with directx. >> >> >> >> cheers, >> >> >> >> On Wed, Feb 4, 2009 at 10:34 AM, Lenard Lindstrom <[email protected]> wrote: >> > I just had personal confirmation that SDL, maybe with the help of >> > Pygame, >> > does have DirectX issues. After repeated runs of surfarray_test.py and >> > related programs my antiquated system(*) reached the point that a simple >> > pygame.init() call would segfault. I confirmed it was DirectX by >> > changing >> > the video driver to windib. That worked. And to further confirm it was a >> > corrupted DirectX and not Python I tried the dxdiag.exe video tests. >> > They >> > failed. Only a system reboot cleared the problem. At that point I also >> > confirmed that non of the other programs I was using depended on >> > DirectX. >> > Only Python/Pygame caused ddraw.dll and dsound.dll to be loaded and kept >> > alive by that suspicious ddhelp.exe character. Apparently DirectX has a >> > memory. >> > >> > So what to do. Maybe it is time to defer to the judgment of the SDL >> > developers and just let windib be the default Windows video driver. The >> > documentation can suggest that anyone experiencing performance problems >> > try >> > directx. >> > >> > Lenard >> > >> > >> > (*) Windows 98, DirectX 8.0 (And no, I don't want to see what DX 9 or >> > higher >> > will do for me. It would probably break something). >> > >> > -- >> > Lenard Lindstrom >> > <[email protected]> >> > >> > > >
