i965/nir/vec4: Select between new nir_vec4 or current vec4_visitor code-paths
The NIR->vec4 pass will be activated if both the following conditions are met: * INTEL_USE_NIR environment variable is defined and is positive (1 or true) * The stage is vertex shader (support for geometry shaders and ARB_vertex_program will be added later). Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
This commit is contained in:
parent
abf4fa3c03
commit
47d68908f2
|
@ -122,12 +122,14 @@ brw_compiler_create(void *mem_ctx, const struct brw_device_info *devinfo)
|
|||
compiler->glsl_compiler_options[MESA_SHADER_VERTEX].OptimizeForAOS = true;
|
||||
compiler->glsl_compiler_options[MESA_SHADER_GEOMETRY].OptimizeForAOS = true;
|
||||
|
||||
if (compiler->scalar_vs) {
|
||||
/* If we're using the scalar backend for vertex shaders, we need to
|
||||
* configure these accordingly.
|
||||
*/
|
||||
compiler->glsl_compiler_options[MESA_SHADER_VERTEX].EmitNoIndirectOutput = true;
|
||||
compiler->glsl_compiler_options[MESA_SHADER_VERTEX].EmitNoIndirectTemp = true;
|
||||
if (compiler->scalar_vs || brw_env_var_as_boolean("INTEL_USE_NIR", false)) {
|
||||
if (compiler->scalar_vs) {
|
||||
/* If we're using the scalar backend for vertex shaders, we need to
|
||||
* configure these accordingly.
|
||||
*/
|
||||
compiler->glsl_compiler_options[MESA_SHADER_VERTEX].EmitNoIndirectOutput = true;
|
||||
compiler->glsl_compiler_options[MESA_SHADER_VERTEX].EmitNoIndirectTemp = true;
|
||||
}
|
||||
compiler->glsl_compiler_options[MESA_SHADER_VERTEX].OptimizeForAOS = false;
|
||||
|
||||
compiler->glsl_compiler_options[MESA_SHADER_VERTEX].NirOptions = nir_options;
|
||||
|
|
|
@ -1709,6 +1709,9 @@ vec4_visitor::emit_shader_time_write(int shader_time_subindex, src_reg value)
|
|||
bool
|
||||
vec4_visitor::run(gl_clip_plane *clip_planes)
|
||||
{
|
||||
bool use_vec4_nir =
|
||||
compiler->glsl_compiler_options[MESA_SHADER_VERTEX].NirOptions != NULL;
|
||||
|
||||
sanity_param_count = prog->Parameters->NumParameters;
|
||||
|
||||
if (shader_time_index >= 0)
|
||||
|
@ -1718,11 +1721,18 @@ vec4_visitor::run(gl_clip_plane *clip_planes)
|
|||
|
||||
emit_prolog();
|
||||
|
||||
/* Generate VS IR for main(). (the visitor only descends into
|
||||
* functions called "main").
|
||||
*/
|
||||
if (shader) {
|
||||
visit_instructions(shader->base.ir);
|
||||
if (use_vec4_nir) {
|
||||
assert(prog->nir != NULL);
|
||||
emit_nir_code();
|
||||
if (failed)
|
||||
return false;
|
||||
} else {
|
||||
/* Generate VS IR for main(). (the visitor only descends into
|
||||
* functions called "main").
|
||||
*/
|
||||
visit_instructions(shader->base.ir);
|
||||
}
|
||||
} else {
|
||||
emit_program_code();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue