From 25a7f662145f56ad15dbdf3da203a8a85594276f Mon Sep 17 00:00:00 2001 From: Christoph Bumiller Date: Sat, 16 Apr 2011 15:24:07 +0200 Subject: [PATCH] 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. --- src/gallium/drivers/nvc0/nvc0_screen.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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); -- 2.11.0