[Mesa-dev] [PATCH 06/25] i965: Only change type of 0.0f to VF if destination stride == 1

Matt Turner mattst88 at gmail.com
Fri Aug 4 17:31:38 UTC 2017


The destination stride must be equivalent to a dword if VF is used.

Also, since the only compaction table entires with "i:vf" have the
destination as "r:f" specifically check that the destination is of type
float.
---
 src/intel/compiler/brw_eu_compact.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/intel/compiler/brw_eu_compact.c b/src/intel/compiler/brw_eu_compact.c
index bf57ddf85c..79103d7883 100644
--- a/src/intel/compiler/brw_eu_compact.c
+++ b/src/intel/compiler/brw_eu_compact.c
@@ -1014,7 +1014,8 @@ precompact(const struct gen_device_info *devinfo, brw_inst inst)
     */
    if (brw_inst_imm_ud(devinfo, &inst) == 0x0 &&
        brw_inst_src0_reg_type(devinfo, &inst) == BRW_HW_REG_TYPE_F &&
-       brw_inst_dst_reg_type(devinfo, &inst) != GEN7_HW_REG_NON_IMM_TYPE_DF) {
+       brw_inst_dst_reg_type(devinfo, &inst) == BRW_HW_REG_TYPE_F &&
+       brw_inst_dst_hstride(devinfo, &inst) == BRW_HORIZONTAL_STRIDE_1) {
       brw_inst_set_src0_reg_type(devinfo, &inst, BRW_HW_REG_IMM_TYPE_VF);
    }
 
-- 
2.13.0



More information about the mesa-dev mailing list