nvc0: enable shader watchdog timer

Prevent infinite loops in shaders from locking up the GPU.
This commit is contained in:
Christoph Bumiller 2012-01-10 00:38:19 +01:00
parent be1ae976a4
commit 601fb4b746
2 changed files with 8 additions and 0 deletions

View File

@ -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

View File

@ -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);