diff options
author | Marcin Slusarz <[email protected]> | 2012-06-27 14:45:17 +0200 |
---|---|---|
committer | Marcin Slusarz <[email protected]> | 2012-06-28 00:01:02 +0200 |
commit | 1906d2b46b21a8e7496409e0639d8463ad86dcfe (patch) | |
tree | 24800adb306c232fe2253c536b6071292a04b293 /src/gallium/drivers/nv50/nv50_program.h | |
parent | 0fceaee4fd8f745e71cbc4e1d24520ac7e11c2cd (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_program.h')
-rw-r--r-- | src/gallium/drivers/nv50/nv50_program.h | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/src/gallium/drivers/nv50/nv50_program.h b/src/gallium/drivers/nv50/nv50_program.h index f56268b5439..24eaebfb473 100644 --- a/src/gallium/drivers/nv50/nv50_program.h +++ b/src/gallium/drivers/nv50/nv50_program.h @@ -28,8 +28,6 @@ struct nv50_context; #include "pipe/p_state.h" #include "pipe/p_shader_tokens.h" -#define NV50_CAP_MAX_PROGRAM_TEMPS 64 - struct nv50_varying { uint8_t id; /* tgsi index */ uint8_t hw; /* hw index, nv50 wants flat FP inputs last */ @@ -56,7 +54,6 @@ struct nv50_program { ubyte type; boolean translated; - boolean uses_lmem; uint32_t *code; unsigned code_size; @@ -64,6 +61,7 @@ struct nv50_program { uint32_t *immd; unsigned immd_size; unsigned parm_size; /* size limit of uniform buffer */ + uint32_t tls_space; /* required local memory per thread */ ubyte max_gpr; /* REG_ALLOC_TEMP */ ubyte max_out; /* REG_ALLOC_RESULT or FP_RESULT_COUNT */ |