i965/skl: In opt_sampler_eot always set destination register to null
authorNeil Roberts <neil@linux.intel.com>
Thu, 7 May 2015 13:20:17 +0000 (14:20 +0100)
committerNeil Roberts <neil@linux.intel.com>
Fri, 8 May 2015 11:40:22 +0000 (12:40 +0100)
opt_sampler_eot enables a direct write to framebuffer from a sample.
In order to do this the sample message needs to have a message header
so if there wasn't one already then the function adds one. In addition
the function sets the destination register to null because it's no
longer used. However it was only doing this in cases where it was
adding a message header. This patch just moves setting the destination
so that it happens even if there's a messge header. In practice this
doesn't seem to make any difference but it's a bit cleaner.

Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
src/mesa/drivers/dri/i965/brw_fs.cpp

index 02a1ad5..8dd680e 100644 (file)
@@ -2668,6 +2668,7 @@ fs_visitor::opt_sampler_eot()
 
    tex_inst->offset |= fb_write->target << 24;
    tex_inst->eot = true;
+   tex_inst->dst = reg_null_ud;
    fb_write->remove(cfg->blocks[cfg->num_blocks - 1]);
 
    /* If a header is present, marking the eot is sufficient. Otherwise, we need
@@ -2706,7 +2707,6 @@ fs_visitor::opt_sampler_eot()
    tex_inst->header_size = 1;
    tex_inst->insert_before(cfg->blocks[cfg->num_blocks - 1], new_load_payload);
    tex_inst->src[0] = send_header;
-   tex_inst->dst = reg_null_ud;
 
    return true;
 }