summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/nv50/nv50_program.c
diff options
context:
space:
mode:
authorChristoph Bumiller <e0425955@student.tuwien.ac.at>2012-12-07 22:43:10 +0100
committerChristoph Bumiller <e0425955@student.tuwien.ac.at>2012-12-07 22:48:54 +0100
commitcfa752cd332ff1cfac403001f3833476ba6d978d (patch)
tree6f084a5e8889168328d4feab19c2536ea494c7e3 /src/gallium/drivers/nv50/nv50_program.c
parentf7599b2c32185535b4c215de0ba0454129fa523f (diff)
downloadexternal_mesa3d-cfa752cd332ff1cfac403001f3833476ba6d978d.zip
external_mesa3d-cfa752cd332ff1cfac403001f3833476ba6d978d.tar.gz
external_mesa3d-cfa752cd332ff1cfac403001f3833476ba6d978d.tar.bz2
nv50,nvc0: fix shader eviction
Diffstat (limited to 'src/gallium/drivers/nv50/nv50_program.c')
-rw-r--r--src/gallium/drivers/nv50/nv50_program.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/gallium/drivers/nv50/nv50_program.c b/src/gallium/drivers/nv50/nv50_program.c
index 0d292f7..10810bf 100644
--- a/src/gallium/drivers/nv50/nv50_program.c
+++ b/src/gallium/drivers/nv50/nv50_program.c
@@ -396,6 +396,11 @@ nv50_program_upload_code(struct nv50_context *nv50, struct nv50_program *prog)
nouveau_heap_free(&evict->mem);
}
debug_printf("WARNING: out of code space, evicting all shaders.\n");
+ ret = nouveau_heap_alloc(heap, size, prog, &prog->mem);
+ if (ret) {
+ NOUVEAU_ERR("shader too large (0x%x) to fit in code space ?\n", size);
+ return FALSE;
+ }
}
prog->code_base = prog->mem->start;