* offline compile GLSL code and examine the resulting GLSL IR.
*/
+#include "main/mtypes.h"
#include "standalone.h"
static struct standalone_options options;
usage_fail(argv[0]);
struct gl_shader_program *whole_program;
+ static struct gl_context local_ctx;
- whole_program = standalone_compile_shader(&options, argc - optind, &argv[optind]);
+ whole_program = standalone_compile_shader(&options, argc - optind,
+ &argv[optind], &local_ctx);
if (!whole_program)
usage_fail(argv[0]);
extern "C" struct gl_shader_program *
standalone_compile_shader(const struct standalone_options *_options,
- unsigned num_files, char* const* files)
+ unsigned num_files, char* const* files, struct gl_context *ctx)
{
int status = EXIT_SUCCESS;
- static struct gl_context local_ctx;
- struct gl_context *ctx = &local_ctx;
bool glsl_es = false;
options = _options;
struct gl_shader_program * standalone_compile_shader(
const struct standalone_options *options,
- unsigned num_files, char* const* files);
+ unsigned num_files, char* const* files,
+ struct gl_context *ctx);
void standalone_compiler_cleanup(struct gl_shader_program *prog);
struct gl_shader_program *prog;
const nir_shader_compiler_options *nir_options =
ir3_get_compiler_options(compiler);
+ static struct gl_context local_ctx;
- prog = standalone_compile_shader(&options, num_files, files);
+ prog = standalone_compile_shader(&options, num_files, files, &local_ctx);
if (!prog)
errx(1, "couldn't parse `%s'", files[0]);
.do_link = true,
};
- prog = standalone_compile_shader(&options, 2, argv);
+ static struct gl_context local_ctx;
+
+ prog = standalone_compile_shader(&options, 2, argv, &local_ctx);
prog->_LinkedShaders[MESA_SHADER_FRAGMENT]->Program->info.stage = MESA_SHADER_FRAGMENT;
for (unsigned i = 0; i < MESA_SHADER_STAGES; ++i) {
.glsl_version = 140,
};
- prog = standalone_compile_shader(&options, 1, argv);
+ static struct gl_context local_ctx;
+
+ prog = standalone_compile_shader(&options, 1, argv, &local_ctx);
prog->_LinkedShaders[MESA_SHADER_FRAGMENT]->Program->info.stage = MESA_SHADER_FRAGMENT;
midgard_program program;