i965: Clean up GLSL compiler option setup
The only functional change here is that we now set EmitNoIndirectOutput and EmitNoIndirectTemp for compute shaders. Compute shaders don't have outputs per-se and we should have been setting EmitNoIndirectTemp all along. Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
parent
6dfc5e28f7
commit
60befc6347
|
@ -115,41 +115,35 @@ brw_compiler_create(void *mem_ctx, const struct brw_device_info *devinfo)
|
||||||
compiler->glsl_compiler_options[i].EmitNoNoise = true;
|
compiler->glsl_compiler_options[i].EmitNoNoise = true;
|
||||||
compiler->glsl_compiler_options[i].EmitNoMainReturn = true;
|
compiler->glsl_compiler_options[i].EmitNoMainReturn = true;
|
||||||
compiler->glsl_compiler_options[i].EmitNoIndirectInput = true;
|
compiler->glsl_compiler_options[i].EmitNoIndirectInput = true;
|
||||||
compiler->glsl_compiler_options[i].EmitNoIndirectOutput =
|
|
||||||
(i == MESA_SHADER_FRAGMENT);
|
|
||||||
compiler->glsl_compiler_options[i].EmitNoIndirectTemp =
|
|
||||||
(i == MESA_SHADER_FRAGMENT);
|
|
||||||
compiler->glsl_compiler_options[i].EmitNoIndirectUniform = false;
|
compiler->glsl_compiler_options[i].EmitNoIndirectUniform = false;
|
||||||
compiler->glsl_compiler_options[i].LowerClipDistance = true;
|
compiler->glsl_compiler_options[i].LowerClipDistance = true;
|
||||||
|
|
||||||
|
bool is_scalar;
|
||||||
|
switch (i) {
|
||||||
|
case MESA_SHADER_FRAGMENT:
|
||||||
|
case MESA_SHADER_COMPUTE:
|
||||||
|
is_scalar = true;
|
||||||
|
break;
|
||||||
|
case MESA_SHADER_VERTEX:
|
||||||
|
is_scalar = compiler->scalar_vs;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
is_scalar = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
compiler->glsl_compiler_options[i].EmitNoIndirectOutput = is_scalar;
|
||||||
|
compiler->glsl_compiler_options[i].EmitNoIndirectTemp = is_scalar;
|
||||||
|
compiler->glsl_compiler_options[i].OptimizeForAOS = !is_scalar;
|
||||||
|
|
||||||
/* !ARB_gpu_shader5 */
|
/* !ARB_gpu_shader5 */
|
||||||
if (devinfo->gen < 7)
|
if (devinfo->gen < 7)
|
||||||
compiler->glsl_compiler_options[i].EmitNoIndirectSampler = true;
|
compiler->glsl_compiler_options[i].EmitNoIndirectSampler = true;
|
||||||
|
|
||||||
|
if (is_scalar || brw_env_var_as_boolean("INTEL_USE_NIR", true))
|
||||||
|
compiler->glsl_compiler_options[i].NirOptions = nir_options;
|
||||||
}
|
}
|
||||||
|
|
||||||
compiler->glsl_compiler_options[MESA_SHADER_VERTEX].OptimizeForAOS = true;
|
|
||||||
compiler->glsl_compiler_options[MESA_SHADER_GEOMETRY].OptimizeForAOS = true;
|
|
||||||
|
|
||||||
if (compiler->scalar_vs || brw_env_var_as_boolean("INTEL_USE_NIR", 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;
|
|
||||||
compiler->glsl_compiler_options[MESA_SHADER_VERTEX].OptimizeForAOS = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
compiler->glsl_compiler_options[MESA_SHADER_VERTEX].NirOptions = nir_options;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (brw_env_var_as_boolean("INTEL_USE_NIR", true)) {
|
|
||||||
compiler->glsl_compiler_options[MESA_SHADER_GEOMETRY].NirOptions = nir_options;
|
|
||||||
}
|
|
||||||
|
|
||||||
compiler->glsl_compiler_options[MESA_SHADER_FRAGMENT].NirOptions = nir_options;
|
|
||||||
compiler->glsl_compiler_options[MESA_SHADER_COMPUTE].NirOptions = nir_options;
|
|
||||||
|
|
||||||
return compiler;
|
return compiler;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue