#include "glheader.h"
#include "imports.h"
#include "mtypes.h"
+#include "main/context.h"
#include "main/uniforms.h"
#include "main/macros.h"
#include "main/samplerobj.h"
#include "../glsl/glsl_symbol_table.h"
#include "../glsl/glsl_parser_extras.h"
#include "../glsl/ir_optimization.h"
-#include "../glsl/ir_print_visitor.h"
#include "../program/ir_to_mesa.h"
using namespace ir_builder;
state->language_version = 130;
state->es_shader = false;
- if (ctx->Extensions.OES_EGL_image_external)
+ if (_mesa_is_gles(ctx) && ctx->Extensions.OES_EGL_image_external)
state->OES_EGL_image_external_enable = true;
_mesa_glsl_initialize_types(state);
_mesa_glsl_initialize_variables(p.instructions, state);
validate_ir_tree(p.shader->ir);
- while (do_common_optimization(p.shader->ir, false, false, 32))
+ const struct gl_shader_compiler_options *options =
+ &ctx->ShaderCompilerOptions[MESA_SHADER_FRAGMENT];
+
+ while (do_common_optimization(p.shader->ir, false, false, 32, options))
;
reparent_ir(p.shader->ir, p.shader->ir);
_mesa_glsl_link_shader(ctx, p.shader_program);
- /* Set the sampler uniforms, and relink to get them into the linked
- * program.
- */
- struct gl_shader *const fs =
- p.shader_program->_LinkedShaders[MESA_SHADER_FRAGMENT];
- struct gl_program *const fp = fs->Program;
-
- _mesa_generate_parameters_list_for_uniforms(p.shader_program, fs,
- fp->Parameters);
-
- _mesa_associate_uniform_storage(ctx, p.shader_program, fp->Parameters);
-
- _mesa_update_shader_textures_used(p.shader_program, fp);
- if (ctx->Driver.SamplerUniformChange)
- ctx->Driver.SamplerUniformChange(ctx, fp->Target, fp);
-
if (!p.shader_program->LinkStatus)
_mesa_problem(ctx, "Failed to link fixed function fragment shader: %s\n",
p.shader_program->InfoLog);