[Mesa-dev] [PATCH] i965/shader: Don't use OptimizeForAOS for NIR vec4 vertex shaders

Eduardo Lima Mitev elima at igalia.com
Mon Aug 10 12:11:11 PDT 2015


On 08/07/2015 11:22 PM, Jason Ekstrand wrote:
> Shader-db results for vec4 programs using NIR on HSW:
> 
>    total instructions in shared programs: 1838157 -> 1828469 (-0.53%)
>    instructions in affected programs:     275978 -> 266290 (-3.51%)
>    helped:                                2827
>    HURT:                                  244
>    GAINED:                                0
>    LOST:                                  0
> ---

I confirm these improvements, and see no piglit or dEQP regressions.
OptimizeForAOS option is lowering the GLSL-IR fdot operations in a way
that makes NIR-vec4 inefficient.

Reviewed-by: Eduardo Lima Mitev <elima at igalia.com>

>  src/mesa/drivers/dri/i965/brw_shader.cpp | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/src/mesa/drivers/dri/i965/brw_shader.cpp b/src/mesa/drivers/dri/i965/brw_shader.cpp
> index 97f32a8..90ec7a4 100644
> --- a/src/mesa/drivers/dri/i965/brw_shader.cpp
> +++ b/src/mesa/drivers/dri/i965/brw_shader.cpp
> @@ -129,8 +129,8 @@ brw_compiler_create(void *mem_ctx, const struct brw_device_info *devinfo)
>            */
>           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].OptimizeForAOS = false;
>  
>        compiler->glsl_compiler_options[MESA_SHADER_VERTEX].NirOptions = nir_options;
>     }
> 


More information about the mesa-dev mailing list