Browse Source

i965/fs: Pass a BAD_FILE register to the logical FB write when oMask is unused.

This will let the optimizer know that the sample mask value is unused
so its definition can be DCE'ed.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
tags/12.0-branchpoint
Francisco Jerez 9 years ago
parent
commit
b0c8e5e0c8

+ 1
- 1
src/mesa/drivers/dri/i965/brw_fs.cpp View File

@@ -3797,7 +3797,7 @@ lower_fb_write_logical_send(const fs_builder &bld, fs_inst *inst,
length++;
}

if (prog_data->uses_omask) {
if (sample_mask.file != BAD_FILE) {
sources[length] = fs_reg(VGRF, bld.shader->alloc.allocate(1),
BRW_REGISTER_TYPE_UD);


+ 2
- 1
src/mesa/drivers/dri/i965/brw_fs_visitor.cpp View File

@@ -394,7 +394,8 @@ fs_visitor::emit_single_fb_write(const fs_builder &bld,

const fs_reg sources[] = {
color0, color1, src0_alpha, src_depth, dst_depth, src_stencil,
sample_mask, brw_imm_ud(components)
(prog_data->uses_omask ? sample_mask : fs_reg()),
brw_imm_ud(components)
};
assert(ARRAY_SIZE(sources) - 1 == FB_WRITE_LOGICAL_SRC_COMPONENTS);
fs_inst *write = bld.emit(FS_OPCODE_FB_WRITE_LOGICAL, fs_reg(),

Loading…
Cancel
Save