diff options
author | Ilia Mirkin <[email protected]> | 2014-02-04 02:30:18 -0500 |
---|---|---|
committer | Ilia Mirkin <[email protected]> | 2014-02-06 18:50:19 -0500 |
commit | f76c7ad5b14f5646a56ca3518f0c2e739811f223 (patch) | |
tree | eb6e41d21a0292a916342579037ed6e7e01f0d69 | |
parent | 364bdd24197e83bc76b0d244271e57ef4334a859 (diff) |
nv50: only over-allocate by a page for code
The pre-fetching doesn't go too far. Tested with over-allocating by only
a page, and didn't see any errors in dmesg. Saves ~512KB of VRAM.
Signed-off-by: Ilia Mirkin <[email protected]>
Cc: 10.1 <[email protected]>
Reviewed-by: Christoph Bumiller <[email protected]>
-rw-r--r-- | src/gallium/drivers/nouveau/nv50/nv50_screen.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/gallium/drivers/nouveau/nv50/nv50_screen.c b/src/gallium/drivers/nouveau/nv50/nv50_screen.c index 2b6ec3a11c0..2144140551a 100644 --- a/src/gallium/drivers/nouveau/nv50/nv50_screen.c +++ b/src/gallium/drivers/nouveau/nv50/nv50_screen.c @@ -739,12 +739,13 @@ nv50_screen_create(struct nouveau_device *dev) goto fail; } - /* This over-allocates by a whole code BO. The GP, which would execute at - * the end of the last page, would trigger faults. The going theory is that - * it prefetches up to a certain amount. This avoids dmesg spam. + /* This over-allocates by a page. The GP, which would execute at the end of + * the last page, would trigger faults. The going theory is that it + * prefetches up to a certain amount. */ ret = nouveau_bo_new(dev, NOUVEAU_BO_VRAM, 1 << 16, - 4 << NV50_CODE_BO_SIZE_LOG2, NULL, &screen->code); + (3 << NV50_CODE_BO_SIZE_LOG2) + 0x1000, + NULL, &screen->code); if (ret) { NOUVEAU_ERR("Failed to allocate code bo: %d\n", ret); goto fail; |