aboutsummaryrefslogtreecommitdiff
path: root/mesalib/src/glsl/main.cpp
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2013-06-28 16:49:07 +0200
committermarha <marha@users.sourceforge.net>2013-06-28 16:49:07 +0200
commit3c204c4a20943586532ce477ced827d108f3b4b0 (patch)
treec9891fdc315c41cc90806634589231172572b2ba /mesalib/src/glsl/main.cpp
parent73a26452133415b7e3bf54836d23995d59a7bac4 (diff)
parentced1a6b8f5a750fcd3b8d3d0d9bbdee830064e6c (diff)
downloadvcxsrv-3c204c4a20943586532ce477ced827d108f3b4b0.tar.gz
vcxsrv-3c204c4a20943586532ce477ced827d108f3b4b0.tar.bz2
vcxsrv-3c204c4a20943586532ce477ced827d108f3b4b0.zip
Merge remote-tracking branch 'origin/released'
* origin/released: fontconfig mesa git update 28 June 2013 libXext mesa git update 29 June 20013
Diffstat (limited to 'mesalib/src/glsl/main.cpp')
-rw-r--r--mesalib/src/glsl/main.cpp60
1 files changed, 1 insertions, 59 deletions
diff --git a/mesalib/src/glsl/main.cpp b/mesalib/src/glsl/main.cpp
index 768415169..df6d1e9d4 100644
--- a/mesalib/src/glsl/main.cpp
+++ b/mesalib/src/glsl/main.cpp
@@ -45,7 +45,6 @@
#include "ast.h"
#include "glsl_parser_extras.h"
#include "ir_optimization.h"
-#include "ir_print_visitor.h"
#include "program.h"
#include "loop_analysis.h"
#include "standalone_scaffolding.h"
@@ -155,70 +154,13 @@ compile_shader(struct gl_context *ctx, struct gl_shader *shader)
struct _mesa_glsl_parse_state *state =
new(shader) _mesa_glsl_parse_state(ctx, shader->Type, shader);
- const char *source = shader->Source;
- state->error = glcpp_preprocess(state, &source, &state->info_log,
- state->extensions, ctx) != 0;
-
- if (!state->error) {
- _mesa_glsl_lexer_ctor(state, source);
- _mesa_glsl_parse(state);
- _mesa_glsl_lexer_dtor(state);
- }
-
- if (dump_ast) {
- foreach_list_const(n, &state->translation_unit) {
- ast_node *ast = exec_node_data(ast_node, n, link);
- ast->print();
- }
- printf("\n\n");
- }
-
- shader->ir = new(shader) exec_list;
- if (!state->error && !state->translation_unit.is_empty())
- _mesa_ast_to_hir(shader->ir, state);
-
- /* Print out the unoptimized IR. */
- if (!state->error && dump_hir) {
- validate_ir_tree(shader->ir);
- _mesa_print_ir(shader->ir, state);
- }
-
- /* Optimization passes */
- if (!state->error && !shader->ir->is_empty()) {
- const struct gl_shader_compiler_options *opts =
- &ctx->ShaderCompilerOptions[_mesa_shader_type_to_index(shader->Type)];
- bool progress;
- do {
- progress = do_common_optimization(shader->ir, false, false, 32, opts);
- } while (progress);
-
- validate_ir_tree(shader->ir);
- }
-
+ _mesa_glsl_compile_shader(ctx, shader, dump_ast, dump_hir);
/* Print out the resulting IR */
if (!state->error && dump_lir) {
_mesa_print_ir(shader->ir, state);
}
- shader->symbols = state->symbols;
- shader->CompileStatus = !state->error;
- shader->Version = state->language_version;
- shader->IsES = state->es_shader;
- memcpy(shader->builtins_to_link, state->builtins_to_link,
- sizeof(shader->builtins_to_link[0]) * state->num_builtins_to_link);
- shader->num_builtins_to_link = state->num_builtins_to_link;
-
- if (shader->InfoLog)
- ralloc_free(shader->InfoLog);
-
- shader->InfoLog = state->info_log;
-
- /* Retain any live IR, but trash the rest. */
- reparent_ir(shader->ir, shader);
-
- ralloc_free(state);
-
return;
}