View Issue Details

IDProjectCategoryView StatusLast Update
0000544Spring engineGeneralpublic2013-10-02 16:24
Reporterredstar Assigned Toabma  
PrioritynormalSeverityfeatureReproducibilityalways
Status closedResolutionwon't fix 
Summary0000544: Vista TDR mishandling
DescriptionWhen a gpu operation takes too long it times out and the Operating system interprets it as a driver/gpu hang, and reloads the gpu driver in order to recover rather than showing a blue screen of death.

This happens while spring is running, and each time it happens spring does not recover and instead crashes with c++ runtime exception message window, it then continues to run in the taskbar unplayable and connected to the host untill closed by the user via task manager.
Additional InformationMore detail including links to articles can be found here:
http://spring.clan-sy.com/phpbb/viewtopic.php?t=10117

The device remove event occurs when a TDR crash is in progress. There are checks for this that can be used provided by the Direct X 9+10 APIs.

Here is such a check from Direct3D 10:
http://msdn2.microsoft.com/en-us/library/bb173571.aspx
TagsNo tags attached.
Checked infolog.txt for Errors

Activities

ShadowOfLegends

2007-10-31 08:42

reporter   ~0001387

Perhaps try run in compatibility mode for xp?

redstar

2007-10-31 14:22

reporter   ~0001391

A graphics driver is outside the scope of compatability abstraction layer and communicates directly with the windows subsystems.

As such running in XP compatability mode will generate exactly the same OpenGL instructions leading to exactly the same issue.

Also the expected behaviour under Vista of a graphics driver crash is a baloon popup and a handling of a device remove event by directx.

The expected behaviour under XP of a graphics driver crash is a blue screen of death.

So aside from driver side fixes to prevent the issue to begin with, the problem must still be handled so that spring can recover, or a possible spring side cause must be found, aka graphics operations that last too long causing the driver subsystem to timeout and declare a driver crash has occurred.

ShadowOfLegends

2007-11-01 03:48

reporter   ~0001394

Ah, now I understand :-D, sorry bout that :-P

abma

2010-11-24 18:59

administrator   ~0005973

as this requires directx i see that as feature-request. maybe directx will be never supported by the spring-engine.

abma

2013-10-02 16:24

administrator   ~0011656

either SDL has this feature out of the box or we won't implement it. patches for it are welcome, but i guess it will be ugly as it seems to be a DirectX only feature.

also, graphics drivers shouldn't crash! if they do, this functions won't really help as they could do it repeatedtly.

Issue History

Date Modified Username Field Change
2007-05-31 01:58 redstar New Issue
2007-10-31 08:42 ShadowOfLegends Note Added: 0001387
2007-10-31 14:22 redstar Note Added: 0001391
2007-11-01 03:48 ShadowOfLegends Note Added: 0001394
2010-11-24 18:59 abma Note Added: 0005973
2010-11-24 18:59 abma Severity crash => feature
2013-10-02 16:24 abma Note Added: 0011656
2013-10-02 16:24 abma Status new => closed
2013-10-02 16:24 abma Assigned To => abma
2013-10-02 16:24 abma Resolution open => won't fix