glsl: add several EmitNo* options, and MaxUnrollIterations

This increases the chance that GLSL programs will actually work.

Note that continues and returns are not yet lowered, so linking
will just fail if not supported.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
Luca Barbieri
2010-09-05 22:29:58 +02:00
committed by Ian Romanick
parent 6d3a2c97f4
commit e591c4625c
11 changed files with 27 additions and 19 deletions

View File

@@ -135,11 +135,8 @@ void st_init_limits(struct st_context *st)
= CLAMP(screen->get_param(screen, PIPE_CAP_MAX_RENDER_TARGETS),
1, MAX_DRAW_BUFFERS);
/* Is TGSI_OPCODE_CONT supported? */
/* XXX separate query for early function return? */
for(i = 0; i < MESA_SHADER_TYPES; ++i)
st->ctx->ShaderCompilerOptions[i].EmitContReturn =
screen->get_param(screen, PIPE_CAP_TGSI_CONT_SUPPORTED);
st->ctx->ShaderCompilerOptions[i].EmitNoCont = !screen->get_param(screen, PIPE_CAP_TGSI_CONT_SUPPORTED);
/* Quads always follow GL provoking rules. */
c->QuadsFollowProvokingVertexConvention = GL_FALSE;