From e33edafb2c81decd05dccae06fe6f059f53e2f25 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Mon, 2 Feb 2009 12:24:58 -0700 Subject: mesa: fix stand-alone glslcompiler --- src/mesa/drivers/glslcompiler/glslcompiler.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/mesa/drivers/glslcompiler/glslcompiler.c') diff --git a/src/mesa/drivers/glslcompiler/glslcompiler.c b/src/mesa/drivers/glslcompiler/glslcompiler.c index 34cce977c8..918ec41856 100644 --- a/src/mesa/drivers/glslcompiler/glslcompiler.c +++ b/src/mesa/drivers/glslcompiler/glslcompiler.c @@ -227,7 +227,7 @@ PrintShaderInstructions(GLuint shader, FILE *f) GET_CURRENT_CONTEXT(ctx); struct gl_shader *sh = _mesa_lookup_shader(ctx, shader); struct gl_program *prog = sh->Program; - _mesa_print_program_opt(prog, Options.Mode, Options.LineNumbers); + _mesa_fprint_program_opt(stdout, prog, Options.Mode, Options.LineNumbers); } -- cgit v1.2.3 From edd8cb8c872369b5a1d1abfd221ac12e27169acb Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Tue, 17 Feb 2009 15:57:46 -0700 Subject: glsl: added --params option to stand-alone GLSL compiler Prints program parameter info --- src/mesa/drivers/glslcompiler/glslcompiler.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/mesa/drivers/glslcompiler/glslcompiler.c') diff --git a/src/mesa/drivers/glslcompiler/glslcompiler.c b/src/mesa/drivers/glslcompiler/glslcompiler.c index 918ec41856..54a4c1a7c6 100644 --- a/src/mesa/drivers/glslcompiler/glslcompiler.c +++ b/src/mesa/drivers/glslcompiler/glslcompiler.c @@ -72,6 +72,7 @@ struct options { const char *VertFile; const char *FragFile; const char *OutputFile; + GLboolean Params; }; static struct options Options; @@ -228,6 +229,8 @@ PrintShaderInstructions(GLuint shader, FILE *f) struct gl_shader *sh = _mesa_lookup_shader(ctx, shader); struct gl_program *prog = sh->Program; _mesa_fprint_program_opt(stdout, prog, Options.Mode, Options.LineNumbers); + if (Options.Params) + _mesa_print_program_parameters(ctx, prog); } @@ -258,6 +261,7 @@ Usage(void) printf(" --debug emit debug-style instructions\n"); printf(" --number, -n emit line numbers\n"); printf(" --output, -o FILE output filename\n"); + printf(" --params also emit program parameter info\n"); printf(" --help display this information\n"); } @@ -272,6 +276,7 @@ ParseOptions(int argc, char *argv[]) Options.VertFile = NULL; Options.FragFile = NULL; Options.OutputFile = NULL; + Options.Params = GL_FALSE; if (argc == 1) { Usage(); @@ -305,6 +310,9 @@ ParseOptions(int argc, char *argv[]) Options.OutputFile = argv[i + 1]; i++; } + else if (strcmp(argv[i], "--params") == 0) { + Options.Params = GL_TRUE; + } else if (strcmp(argv[i], "--help") == 0) { Usage(); exit(0); -- cgit v1.2.3 From bbd208b60c4d39cccb931b4d23efc9d42648afd3 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Thu, 19 Mar 2009 10:26:50 -0600 Subject: glslcompiler: added new options to override debug/optimization pragmas --- src/mesa/drivers/glslcompiler/glslcompiler.c | 43 +++++++++++++++++++++++----- 1 file changed, 36 insertions(+), 7 deletions(-) (limited to 'src/mesa/drivers/glslcompiler/glslcompiler.c') diff --git a/src/mesa/drivers/glslcompiler/glslcompiler.c b/src/mesa/drivers/glslcompiler/glslcompiler.c index 54a4c1a7c6..e4527abdec 100644 --- a/src/mesa/drivers/glslcompiler/glslcompiler.c +++ b/src/mesa/drivers/glslcompiler/glslcompiler.c @@ -73,6 +73,7 @@ struct options { const char *FragFile; const char *OutputFile; GLboolean Params; + struct gl_sl_pragmas Pragmas; }; static struct options Options; @@ -148,6 +149,9 @@ CreateContext(void) TNL_CONTEXT(ctx)->Driver.RunPipeline = _tnl_run_pipeline; _swsetup_Wakeup( ctx ); + /* Override the context's default pragma settings */ + ctx->Shader.DefaultPragmas = Options.Pragmas; + _mesa_make_current(ctx, buf, buf); return GL_TRUE; @@ -256,10 +260,13 @@ Usage(void) printf("Usage:\n"); printf(" --vs FILE vertex shader input filename\n"); printf(" --fs FILE fragment shader input filename\n"); - printf(" --arb emit ARB-style instructions (the default)\n"); + printf(" --arb emit ARB-style instructions\n"); printf(" --nv emit NV-style instructions\n"); - printf(" --debug emit debug-style instructions\n"); - printf(" --number, -n emit line numbers\n"); + printf(" --debug force #pragma debug(on)\n"); + printf(" --nodebug force #pragma debug(off)\n"); + printf(" --opt force #pragma optimize(on)\n"); + printf(" --noopt force #pragma optimize(off)\n"); + printf(" --number, -n emit line numbers (if --arb or --nv)\n"); printf(" --output, -o FILE output filename\n"); printf(" --params also emit program parameter info\n"); printf(" --help display this information\n"); @@ -272,11 +279,15 @@ ParseOptions(int argc, char *argv[]) int i; Options.LineNumbers = GL_FALSE; - Options.Mode = PROG_PRINT_ARB; + Options.Mode = PROG_PRINT_DEBUG; Options.VertFile = NULL; Options.FragFile = NULL; Options.OutputFile = NULL; Options.Params = GL_FALSE; + Options.Pragmas.IgnoreOptimize = GL_FALSE; + Options.Pragmas.IgnoreDebug = GL_FALSE; + Options.Pragmas.Debug = GL_FALSE; + Options.Pragmas.Optimize = GL_TRUE; if (argc == 1) { Usage(); @@ -299,7 +310,20 @@ ParseOptions(int argc, char *argv[]) Options.Mode = PROG_PRINT_NV; } else if (strcmp(argv[i], "--debug") == 0) { - Options.Mode = PROG_PRINT_DEBUG; + Options.Pragmas.IgnoreDebug = GL_TRUE; + Options.Pragmas.Debug = GL_TRUE; + } + else if (strcmp(argv[i], "--nodebug") == 0) { + Options.Pragmas.IgnoreDebug = GL_TRUE; + Options.Pragmas.Debug = GL_FALSE; + } + else if (strcmp(argv[i], "--opt") == 0) { + Options.Pragmas.IgnoreOptimize = GL_TRUE; + Options.Pragmas.Optimize = GL_TRUE; + } + else if (strcmp(argv[i], "--noopt") == 0) { + Options.Pragmas.IgnoreOptimize = GL_TRUE; + Options.Pragmas.Optimize = GL_FALSE; } else if (strcmp(argv[i], "--number") == 0 || strcmp(argv[i], "-n") == 0) { @@ -323,6 +347,11 @@ ParseOptions(int argc, char *argv[]) exit(1); } } + + if (Options.Mode == PROG_PRINT_DEBUG) { + /* always print line numbers when emitting debug-style output */ + Options.LineNumbers = GL_TRUE; + } } @@ -331,13 +360,13 @@ main(int argc, char *argv[]) { GLuint shader = 0; + ParseOptions(argc, argv); + if (!CreateContext()) { fprintf(stderr, "%s: Failed to create compiler context\n", Prog); exit(1); } - ParseOptions(argc, argv); - if (Options.VertFile) { shader = CompileShader(Options.VertFile, GL_VERTEX_SHADER); } -- cgit v1.2.3