From: Kenneth Graunke <kenn...@whitecape.org> Several steppings of Skylake fail when using SIMD16 with 3-source instructions (such as MAD).
This implements WaDisableSIMD16On3SrcInstr and fixes ~190 Piglit tests. Based on a patch by Neil Roberts. --- src/mesa/drivers/dri/i965/brw_shader.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/mesa/drivers/dri/i965/brw_shader.cpp b/src/mesa/drivers/dri/i965/brw_shader.cpp index fa1394a..404a13f 100644 --- a/src/mesa/drivers/dri/i965/brw_shader.cpp +++ b/src/mesa/drivers/dri/i965/brw_shader.cpp @@ -396,6 +396,12 @@ brw_texture_offset(struct gl_context *ctx, int *offsets, bool brw_supports_simd16_3src(const struct brw_context *brw) { + /* WaDisableSIMD16On3SrcInstr: 3-source instructions don't work in SIMD16 + * on a few steppings of Skylake. + */ + if (brw->gen == 9) + return brw->revision != 2 && brw->revision != 3 && brw->revision != -1; + return brw->is_haswell || brw->gen >= 8; } -- 1.9.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev