From: Jason Ekstrand Date: Wed, 5 Aug 2015 23:39:32 +0000 (-0700) Subject: nir/glsl: Take a gl_shader_program and a stage rather than a gl_shader X-Git-Tag: android-x86-6.0-r1~6880 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=cd1ae6ebfac22f76d26a5b8659423969b2aeddce;p=android-x86%2Fexternal-mesa.git nir/glsl: Take a gl_shader_program and a stage rather than a gl_shader Reviewed-by: Kenneth Graunke --- diff --git a/src/glsl/nir/glsl_to_nir.cpp b/src/glsl/nir/glsl_to_nir.cpp index f8745828a77..ba08e172637 100644 --- a/src/glsl/nir/glsl_to_nir.cpp +++ b/src/glsl/nir/glsl_to_nir.cpp @@ -129,9 +129,13 @@ private: }; /* end of anonymous namespace */ nir_shader * -glsl_to_nir(struct gl_shader *sh, const nir_shader_compiler_options *options) +glsl_to_nir(const struct gl_shader_program *shader_prog, + gl_shader_stage stage, + const nir_shader_compiler_options *options) { - nir_shader *shader = nir_shader_create(NULL, sh->Stage, options); + struct gl_shader *sh = shader_prog->_LinkedShaders[stage]; + + nir_shader *shader = nir_shader_create(NULL, stage, options); nir_visitor v1(shader); nir_function_visitor v2(&v1); diff --git a/src/glsl/nir/glsl_to_nir.h b/src/glsl/nir/glsl_to_nir.h index 3801e8c55c6..29badcda08d 100644 --- a/src/glsl/nir/glsl_to_nir.h +++ b/src/glsl/nir/glsl_to_nir.h @@ -32,7 +32,8 @@ extern "C" { #endif -nir_shader *glsl_to_nir(struct gl_shader *sh, +nir_shader *glsl_to_nir(const struct gl_shader_program *shader_prog, + gl_shader_stage stage, const nir_shader_compiler_options *options); #ifdef __cplusplus diff --git a/src/mesa/drivers/dri/i965/brw_nir.c b/src/mesa/drivers/dri/i965/brw_nir.c index 2812fd72fd9..cc9430c83e6 100644 --- a/src/mesa/drivers/dri/i965/brw_nir.c +++ b/src/mesa/drivers/dri/i965/brw_nir.c @@ -103,13 +103,12 @@ brw_create_nir(struct brw_context *brw, static const nir_lower_tex_options tex_options = { .lower_txp = ~0, }; - struct gl_shader *shader = shader_prog ? shader_prog->_LinkedShaders[stage] : NULL; bool debug_enabled = INTEL_DEBUG & intel_debug_flag_for_shader_stage(stage); nir_shader *nir; /* First, lower the GLSL IR or Mesa IR to NIR */ if (shader_prog) { - nir = glsl_to_nir(shader, options); + nir = glsl_to_nir(shader_prog, stage, options); } else { nir = prog_to_nir(prog, options); nir_convert_to_ssa(nir); /* turn registers into SSA */