[g965] Implement dependency workaround in vec4 backend
@majanes
Submitted by Mark Janes Assigned to Intel 3D Bugs Mailing List
Description
commit 2458ea95 regressed 8 GL conformance tests on g965:
Author: Jason Ekstrand jason.ekstrand@intel.com AuthorDate: Wed Sep 9 14:40:06 2015 -0700 Commit: Jason Ekstrand jason.ekstrand@intel.com CommitDate: Tue Sep 15 12:38:07 2015 -0700
nir/lower_vec_to_movs: Coalesce movs on-the-fly when possible
The old pass blindly inserted a bunch of moves into the shader with no
concern for whether or not it was really needed. This adds code to try and
coalesce into the destination of the instruction providing the value.
Shader-db results for vec4 shaders on Haswell:
total instructions in shared programs: 1754420 -> 1747753 (-0.38%)
instructions in affected programs: 231230 -> 224563 (-2.88%)
helped: 1017
HURT: 2
This approach is heavily based on a different patch by Eduardo Lima Mitev
<elima@igalia.com>. Eduardo's patch did this in a separate pass as opposed
to integrating it into nir_lower_vec_to_movs.
Reviewed-by: Eduardo Lima Mitev <elima@igalia.com>
Intel never submitted conformance results for g965, so I'm not sure if this bug is a blocker.
Regressions: es2-cts.gtf.gl.cross.cross_vec3_vert_xvaryyconst es2-cts.gtf.gl.exp.exp_float_vert_xvaryneg es2-cts.gtf.gl.exp.exp_vec2_vert_xvaryneg es2-cts.gtf.gl.exp2.exp2_float_vert_xvaryneg es2-cts.gtf.gl.exp2.exp2_vec2_vert_xvaryneg es2-cts.gtf.gl.faceforward.faceforward_vec3_vert_nvaryiconst es2-cts.gtf.gl.reflect.reflect_vec3_vert_ivarynconst es2-cts.gtf.gl.refract.refract_vec3_vert_ivarynconst
Sample Standard Output:
/tmp/build_root/m64/bin/cts/glcts --deqp-case=ES2-CTS.gtf.GL.exp.exp_float_vert_xvaryneg dEQP Core GL-CTS-2.0 (0x0052484b) starting.. target implementation = 'intel-gbm'
Test case 'ES2-CTS.gtf.GL.exp.exp_float_vert_xvaryneg'.. #+ GTF/GL/exp/exp_float_vert_xvaryneg.shader1.ppm and GTF/GL/exp/exp_float_vert_xvaryneg.shader2.ppm are different Fail (Fail)
DONE!
Test run totals: Passed: 0/1 (0.00%) Failed: 1/1 (100.00%) Not supported: 0/1 (0.00%) Warnings: 0/1 (0.00%)
Version: git