All we need to do is decompose this to two SIMD8 instructions, like we do in many other cases. We even already have code for that.
I apparently just botched this last time I tried, and it was easy. Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> --- src/mesa/drivers/dri/i965/brw_fs.cpp | 12 ------------ src/mesa/drivers/dri/i965/brw_fs_generator.cpp | 4 ++-- 2 files changed, 2 insertions(+), 14 deletions(-) >From looking at the docs, it appears that INTDIV doesn't support source modifiers...on any generation. I don't think we enforce that today... Passes Piglit on Haswell; I haven't tried other generations. diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp index 8405502..35ada42 100644 --- a/src/mesa/drivers/dri/i965/brw_fs.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp @@ -1404,18 +1404,6 @@ fs_visitor::emit_math(enum opcode opcode, fs_reg dst, fs_reg src0, fs_reg src1) int base_mrf = 2; fs_inst *inst; - switch (opcode) { - case SHADER_OPCODE_INT_QUOTIENT: - case SHADER_OPCODE_INT_REMAINDER: - if (brw->gen >= 7) - no16("SIMD16 INTDIV unsupported\n"); - break; - case SHADER_OPCODE_POW: - break; - default: - unreachable("not reached: unsupported binary math opcode."); - } - if (brw->gen >= 8) { inst = emit(opcode, dst, src0, src1); } else if (brw->gen >= 6) { diff --git a/src/mesa/drivers/dri/i965/brw_fs_generator.cpp b/src/mesa/drivers/dri/i965/brw_fs_generator.cpp index 9e260a7..1190f1f 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_generator.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_generator.cpp @@ -1620,9 +1620,9 @@ fs_generator::generate_code(exec_list *instructions) case SHADER_OPCODE_INT_REMAINDER: case SHADER_OPCODE_POW: assert(brw->gen < 6 || inst->mlen == 0); - if (brw->gen >= 7) { + if (brw->gen >= 7 && inst->opcode == SHADER_OPCODE_POW) { gen6_math(p, dst, brw_math_function(inst->opcode), src[0], src[1]); - } else if (brw->gen == 6) { + } else if (brw->gen >= 6) { generate_math_gen6(inst, dst, src[0], src[1]); } else { generate_math_gen4(inst, dst, src[0]); -- 2.0.2 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev