summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChristoph Bumiller <[email protected]>2011-04-16 15:24:07 +0200
committerChristoph Bumiller <[email protected]>2011-04-17 00:17:14 +0200
commit25a7f662145f56ad15dbdf3da203a8a85594276f (patch)
tree556cbdf4474b9c86adf37b43e12ce65d8e986c80 /src
parentf4ad25fefb33ad4930b09c685688ba71b4a21f32 (diff)
nvc0: work around what looks like a code prefetch bug
Sounds very unlikely, but I don't have a better explanation at the moment. The GPU throws page faults at the first page after the code buffer quite frequently on startup, and traces don't show us overflowing.
Diffstat (limited to 'src')
-rw-r--r--src/gallium/drivers/nvc0/nvc0_screen.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/gallium/drivers/nvc0/nvc0_screen.c b/src/gallium/drivers/nvc0/nvc0_screen.c
index c4cdface502..de62fd68b28 100644
--- a/src/gallium/drivers/nvc0/nvc0_screen.c
+++ b/src/gallium/drivers/nvc0/nvc0_screen.c
@@ -447,7 +447,10 @@ nvc0_screen_create(struct pipe_winsys *ws, struct nouveau_device *dev)
if (ret)
goto fail;
- nouveau_resource_init(&screen->text_heap, 0, 1 << 20);
+ /* XXX: getting a page fault at the end of the code buffer every few
+ * launches, don't use the last 256 bytes to work around them - prefetch ?
+ */
+ nouveau_resource_init(&screen->text_heap, 0, (1 << 20) - 0x100);
ret = nouveau_bo_new(dev, NOUVEAU_BO_VRAM, 1 << 12, 6 << 16,
&screen->uniforms);