Module: Mesa Branch: master Commit: cdedc82329cb005f862e9250907124ead718ae4c URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=cdedc82329cb005f862e9250907124ead718ae4c
Author: Jason Ekstrand <ja...@jlekstrand.net> Date: Mon Oct 26 13:34:04 2020 -0500 intel/fs: Support 64-bit SEL_EXEC on Gen11+ Reviewed-by: Kenneth Graunke <kenn...@whitecape.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7329> --- src/intel/compiler/brw_fs_generator.cpp | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/src/intel/compiler/brw_fs_generator.cpp b/src/intel/compiler/brw_fs_generator.cpp index fade40c7268..8c2c3af6cca 100644 --- a/src/intel/compiler/brw_fs_generator.cpp +++ b/src/intel/compiler/brw_fs_generator.cpp @@ -2459,11 +2459,25 @@ fs_generator::generate_code(const cfg_t *cfg, int dispatch_width, case SHADER_OPCODE_SEL_EXEC: assert(inst->force_writemask_all); - brw_set_default_mask_control(p, BRW_MASK_DISABLE); - brw_MOV(p, dst, src[1]); - brw_set_default_mask_control(p, BRW_MASK_ENABLE); - brw_set_default_swsb(p, tgl_swsb_null()); - brw_MOV(p, dst, src[0]); + if (type_sz(dst.type) > 4 && !devinfo->has_64bit_float) { + brw_set_default_mask_control(p, BRW_MASK_DISABLE); + brw_MOV(p, subscript(dst, BRW_REGISTER_TYPE_UD, 0), + subscript(src[1], BRW_REGISTER_TYPE_UD, 0)); + brw_set_default_swsb(p, tgl_swsb_null()); + brw_MOV(p, subscript(dst, BRW_REGISTER_TYPE_UD, 1), + subscript(src[1], BRW_REGISTER_TYPE_UD, 1)); + brw_set_default_mask_control(p, BRW_MASK_ENABLE); + brw_MOV(p, subscript(dst, BRW_REGISTER_TYPE_UD, 0), + subscript(src[0], BRW_REGISTER_TYPE_UD, 0)); + brw_MOV(p, subscript(dst, BRW_REGISTER_TYPE_UD, 1), + subscript(src[0], BRW_REGISTER_TYPE_UD, 1)); + } else { + brw_set_default_mask_control(p, BRW_MASK_DISABLE); + brw_MOV(p, dst, src[1]); + brw_set_default_mask_control(p, BRW_MASK_ENABLE); + brw_set_default_swsb(p, tgl_swsb_null()); + brw_MOV(p, dst, src[0]); + } break; case SHADER_OPCODE_QUAD_SWIZZLE: _______________________________________________ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit