nvc0: enable shader watchdog timer
Prevent infinite loops in shaders from locking up the GPU.
This commit is contained in:
parent
be1ae976a4
commit
601fb4b746
|
@ -315,6 +315,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
|
||||
#define NVC0_3D_PATCH_VERTICES 0x00000dcc
|
||||
|
||||
#define NVC0_3D_WATCHDOG_TIMER 0x00000de4
|
||||
|
||||
#define NVC0_3D_WINDOW_OFFSET_X 0x00000df8
|
||||
|
||||
#define NVC0_3D_WINDOW_OFFSET_Y 0x00000dfc
|
||||
|
|
|
@ -466,6 +466,12 @@ nvc0_screen_create(struct nouveau_device *dev)
|
|||
BEGIN_RING(chan, RING_3D(COND_MODE), 1);
|
||||
OUT_RING (chan, NVC0_3D_COND_MODE_ALWAYS);
|
||||
|
||||
if (debug_get_bool_option("NOUVEAU_SHADER_WATCHDOG", TRUE)) {
|
||||
/* kill shaders after about 1 second (at 100 MHz) */
|
||||
BEGIN_RING(chan, RING_3D(WATCHDOG_TIMER), 1);
|
||||
OUT_RING (chan, 0x17);
|
||||
}
|
||||
|
||||
BEGIN_RING(chan, RING_3D(RT_CONTROL), 1);
|
||||
OUT_RING (chan, 1);
|
||||
|
||||
|
|
Loading…
Reference in New Issue