From: Christoph Bumiller Date: Sat, 16 Apr 2011 13:24:07 +0000 (+0200) Subject: nvc0: work around what looks like a code prefetch bug X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=25a7f662145f56ad15dbdf3da203a8a85594276f;p=mesa.git 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. --- 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);