This patch introduces a brw->scalar_gs flag, similar to brw->scalar_vs, which controls whether or not to use SIMD8 geometry shaders.
For now, we control it via a new environment variable, INTEL_SCALAR_GS. This provides a convenient way to try it out. Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> --- src/mesa/drivers/dri/i965/brw_shader.cpp | 8 ++++++++ src/mesa/drivers/dri/i965/brw_shader.h | 1 + 2 files changed, 9 insertions(+) diff --git a/src/mesa/drivers/dri/i965/brw_shader.cpp b/src/mesa/drivers/dri/i965/brw_shader.cpp index 60300bc..dd83a60 100644 --- a/src/mesa/drivers/dri/i965/brw_shader.cpp +++ b/src/mesa/drivers/dri/i965/brw_shader.cpp @@ -87,6 +87,9 @@ brw_compiler_create(void *mem_ctx, const struct brw_device_info *devinfo) if (devinfo->gen >= 8 && !(INTEL_DEBUG & DEBUG_VEC4VS)) compiler->scalar_vs = true; + if (devinfo->gen >= 8 && brw_env_var_as_boolean("INTEL_SCALAR_GS", false)) + compiler->scalar_gs = true; + nir_shader_compiler_options *nir_options = rzalloc(compiler, nir_shader_compiler_options); nir_options->native_integers = true; @@ -127,6 +130,9 @@ brw_compiler_create(void *mem_ctx, const struct brw_device_info *devinfo) case MESA_SHADER_VERTEX: is_scalar = compiler->scalar_vs; break; + case MESA_SHADER_GEOMETRY: + is_scalar = compiler->scalar_gs; + break; default: is_scalar = false; break; @@ -199,6 +205,8 @@ is_scalar_shader_stage(struct brw_context *brw, int stage) case MESA_SHADER_FRAGMENT: case MESA_SHADER_COMPUTE: return true; + case MESA_SHADER_GEOMETRY: + return brw->intelScreen->compiler->scalar_gs; case MESA_SHADER_VERTEX: return brw->intelScreen->compiler->scalar_vs; default: diff --git a/src/mesa/drivers/dri/i965/brw_shader.h b/src/mesa/drivers/dri/i965/brw_shader.h index ccccf4d..fd087dd 100644 --- a/src/mesa/drivers/dri/i965/brw_shader.h +++ b/src/mesa/drivers/dri/i965/brw_shader.h @@ -92,6 +92,7 @@ struct brw_compiler { void (*shader_perf_log)(void *, const char *str, ...) PRINTFLIKE(2, 3); bool scalar_vs; + bool scalar_gs; struct gl_shader_compiler_options glsl_compiler_options[MESA_SHADER_STAGES]; }; -- 2.5.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev