i965/fs: Match destination type to size for ballot
No use in taking a 64-bit value when we know the high 32-bits are zero.
This commit is contained in:
@@ -58,7 +58,7 @@ static const struct nir_shader_compiler_options scalar_nir_options = {
|
|||||||
.lower_unpack_unorm_2x16 = true,
|
.lower_unpack_unorm_2x16 = true,
|
||||||
.lower_unpack_unorm_4x8 = true,
|
.lower_unpack_unorm_4x8 = true,
|
||||||
.lower_subgroup_masks = true,
|
.lower_subgroup_masks = true,
|
||||||
.max_subgroup_size = 64, /* FIXME */
|
.max_subgroup_size = 32,
|
||||||
.max_unroll_iterations = 32,
|
.max_unroll_iterations = 32,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -4189,7 +4189,11 @@ fs_visitor::nir_emit_intrinsic(const fs_builder &bld, nir_intrinsic_instr *instr
|
|||||||
bld.exec_all().MOV(flag, brw_imm_ud(0u));
|
bld.exec_all().MOV(flag, brw_imm_ud(0u));
|
||||||
bld.CMP(bld.null_reg_ud(), value, brw_imm_ud(0u), BRW_CONDITIONAL_NZ);
|
bld.CMP(bld.null_reg_ud(), value, brw_imm_ud(0u), BRW_CONDITIONAL_NZ);
|
||||||
|
|
||||||
|
if (instr->dest.ssa.bit_size > 32) {
|
||||||
dest.type = BRW_REGISTER_TYPE_UQ;
|
dest.type = BRW_REGISTER_TYPE_UQ;
|
||||||
|
} else {
|
||||||
|
dest.type = BRW_REGISTER_TYPE_UD;
|
||||||
|
}
|
||||||
bld.MOV(dest, flag);
|
bld.MOV(dest, flag);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user