nv50: activate more lanes in a warp
authorChristoph Bumiller <e0425955@student.tuwien.ac.at>
Tue, 27 Oct 2009 23:30:45 +0000 (00:30 +0100)
committerChristoph Bumiller <e0425955@student.tuwien.ac.at>
Tue, 27 Oct 2009 23:57:18 +0000 (00:57 +0100)
Some cards have crippling defaults set and use only 4
of 32 lanes. This should activate 16 on these.
Those that allow 32 by default should still do so.

Found out by Marcin Koƛcielnicki.

src/gallium/drivers/nv50/nv50_screen.c

index c672ea4..c8d0f1e 100644 (file)
@@ -309,6 +309,10 @@ nv50_screen_create(struct pipe_winsys *ws, struct nouveau_device *dev)
        so_method(so, screen->tesla, 0x121c, 1);
        so_data  (so, 1);
 
+       /* try to activate all/more lanes (threads) in a warp */
+       so_method(so, screen->tesla, 0x1400, 1);
+       so_data  (so, 0xf);
+
        so_method(so, screen->tesla, 0x13bc, 1);
        so_data  (so, 0x54);
        /* origin is top left (set to 1 for bottom left) */