--- src/mesa/state_tracker/st_extensions.c | 8 ++++++++ src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 14 +++++++++++--- 2 files changed, 19 insertions(+), 3 deletions(-)
diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c index a9d4054..c8171ef 100644 --- a/src/mesa/state_tracker/st_extensions.c +++ b/src/mesa/state_tracker/st_extensions.c @@ -261,6 +261,8 @@ void st_init_extensions(struct st_context *st) int i; ctx->Const.GLSLVersion = 120; + if (screen->get_param(screen, PIPE_CAP_GLSL130)) + ctx->Const.GLSLVersion = 130; _mesa_override_glsl_version(st->ctx); /* Extensions that only depend on the GLSL version: @@ -268,6 +270,12 @@ void st_init_extensions(struct st_context *st) if (ctx->Const.GLSLVersion >= 130) { ctx->Extensions.ARB_conservative_depth = GL_TRUE; } + /* Limits / preferences that only depend on the GLSL version: + */ + if (ctx->Const.GLSLVersion >= 130) { + ctx->Const.NativeIntegers = GL_TRUE; + ctx->Const.MaxClipPlanes = 8; + } /* * Extensions that are supported by all Gallium drivers: diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp index 3b8e2fe..be9a422d 100644 --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp @@ -5010,13 +5010,21 @@ st_link_shader(struct gl_context *ctx, struct gl_shader_program *prog) num_clip_distances[i] = get_clip_distance_size(ir); do { + unsigned what_to_lower = + MOD_TO_FRACT | + DIV_TO_MUL_RCP | + EXP_TO_EXP2 | + LOG_TO_LOG2; + if (options->EmitNoPow) + what_to_lower |= POW_TO_EXP2; + if (!ctx->Const.NativeIntegers) + what_to_lower |= INT_DIV_TO_MUL_RCP; + progress = false; /* Lowering */ do_mat_op_to_vec(ir); - lower_instructions(ir, (MOD_TO_FRACT | DIV_TO_MUL_RCP | EXP_TO_EXP2 - | LOG_TO_LOG2 | INT_DIV_TO_MUL_RCP - | ((options->EmitNoPow) ? POW_TO_EXP2 : 0))); + lower_instructions(ir, what_to_lower); progress = do_lower_jumps(ir, true, true, options->EmitNoMainReturn, options->EmitNoCont, options->EmitNoLoops) || progress; -- 1.7.3.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev