From: Dave Airlie <[email protected]> This just allows multi-dim arrays to be processed.
Signed-off-by: Dave Airlie <[email protected]> --- src/gallium/drivers/r600/r600_shader.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/r600/r600_shader.c b/src/gallium/drivers/r600/r600_shader.c index d2cc927..cb86601 100644 --- a/src/gallium/drivers/r600/r600_shader.c +++ b/src/gallium/drivers/r600/r600_shader.c @@ -393,10 +393,16 @@ static int tgsi_is_supported(struct r600_shader_ctx *ctx) case TGSI_FILE_CONSTANT: break; case TGSI_FILE_INPUT: - if (ctx->type == TGSI_PROCESSOR_GEOMETRY) + if (ctx->type == TGSI_PROCESSOR_GEOMETRY || + ctx->type == TGSI_PROCESSOR_TESS_CTRL || + ctx->type == TGSI_PROCESSOR_TESS_EVAL) + break; + case TGSI_FILE_OUTPUT: + if (ctx->type == TGSI_PROCESSOR_TESS_CTRL) break; default: - R600_ERR("unsupported src %d (dimension %d)\n", j, + R600_ERR("unsupported src %d (file %d, dimension %d)\n", j, + i->Src[j].Register.File, i->Src[j].Register.Dimension); return -EINVAL; } @@ -404,6 +410,8 @@ static int tgsi_is_supported(struct r600_shader_ctx *ctx) } for (j = 0; j < i->Instruction.NumDstRegs; j++) { if (i->Dst[j].Register.Dimension) { + if (ctx->type == TGSI_PROCESSOR_TESS_CTRL) + continue; R600_ERR("unsupported dst (dimension)\n"); return -EINVAL; } -- 2.5.0 _______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
