summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/nv50/nv50_screen.h
diff options
context:
space:
mode:
authorMarcin Slusarz <[email protected]>2012-06-27 14:45:17 +0200
committerMarcin Slusarz <[email protected]>2012-06-28 00:01:02 +0200
commit1906d2b46b21a8e7496409e0639d8463ad86dcfe (patch)
tree24800adb306c232fe2253c536b6071292a04b293 /src/gallium/drivers/nv50/nv50_screen.h
parent0fceaee4fd8f745e71cbc4e1d24520ac7e11c2cd (diff)
nv50: dynamically allocate space for shader local storage
Fixes 21 piglit tests: spec/glsl-1.10/execution/variable-indexing/ fs-temp-array-mat4-index-col-row-wr vs-temp-array-mat4-index-col-row-wr vs-temp-array-mat4-index-row-wr spec/glsl-1.20/execution/variable-indexing/ fs-temp-array-mat3-index-col-row-rd fs-temp-array-mat3-index-row-rd fs-temp-array-mat4-col-row-wr fs-temp-array-mat4-index-col-row-rd fs-temp-array-mat4-index-col-row-wr fs-temp-array-mat4-index-row-rd fs-temp-array-mat4-index-row-wr vs-temp-array-mat3-index-col-row-rd vs-temp-array-mat3-index-col-row-wr vs-temp-array-mat3-index-row-rd vs-temp-array-mat3-index-row-wr vs-temp-array-mat4-col-row-wr vs-temp-array-mat4-index-col-row-rd vs-temp-array-mat4-index-col-row-wr vs-temp-array-mat4-index-col-wr vs-temp-array-mat4-index-row-rd vs-temp-array-mat4-index-row-wr vs-temp-array-mat4-index-wr ... and prevents a lot of GPU lockups
Diffstat (limited to 'src/gallium/drivers/nv50/nv50_screen.h')
-rw-r--r--src/gallium/drivers/nv50/nv50_screen.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/gallium/drivers/nv50/nv50_screen.h b/src/gallium/drivers/nv50/nv50_screen.h
index 4292f7fc9a6..3ecf20c1e03 100644
--- a/src/gallium/drivers/nv50/nv50_screen.h
+++ b/src/gallium/drivers/nv50/nv50_screen.h
@@ -34,7 +34,10 @@ struct nv50_screen {
struct nouveau_bo *stack_bo;
struct nouveau_bo *tls_bo;
- uint64_t tls_size;
+ unsigned TPs;
+ unsigned MPsInTP;
+ unsigned max_tls_space;
+ unsigned cur_tls_space;
struct nouveau_heap *vp_code_heap;
struct nouveau_heap *gp_code_heap;
@@ -143,4 +146,6 @@ nv50_screen_tsc_free(struct nv50_screen *screen, struct nv50_tsc_entry *tsc)
}
}
+extern int nv50_tls_realloc(struct nv50_screen *screen, unsigned tls_space);
+
#endif