i965/fs: Simplify gl_SampleMaskIn handling.
authorKenneth Graunke <kenneth@whitecape.org>
Wed, 14 May 2014 04:21:21 +0000 (21:21 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Mon, 19 May 2014 06:35:18 +0000 (23:35 -0700)
As far as I can tell, there's no point in allocating an extra register
and generating a MOV---we can just use the copy provided as part of our
thread payload directly.  It's already in the right format.

Of course, there are zero Piglit tests for this.  We don't actually ship
the extension (GL_ARB_gpu_shader5) that exposes this functionality
either.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
src/mesa/drivers/dri/i965/brw_fs.cpp
src/mesa/drivers/dri/i965/brw_fs.h
src/mesa/drivers/dri/i965/brw_fs_visitor.cpp

index ac257d6821a9cf6b97a14d87c710fe931deeda78..336b8e608fc4a95811df8fd994fd208175c5ee2d 100644 (file)
@@ -1331,16 +1331,6 @@ fs_visitor::emit_sampleid_setup(ir_variable *ir)
    return reg;
 }
 
-fs_reg *
-fs_visitor::emit_samplemaskin_setup(ir_variable *ir)
-{
-   assert(brw->gen >= 7);
-   this->current_annotation = "compute gl_SampleMaskIn";
-   fs_reg *reg = new(this->mem_ctx) fs_reg(this, ir->type);
-   emit(MOV(*reg, fs_reg(retype(brw_vec8_grf(c->sample_mask_in_reg, 0), BRW_REGISTER_TYPE_D))));
-   return reg;
-}
-
 fs_reg
 fs_visitor::fix_math_operand(fs_reg src)
 {
index 4c8ed72aef8e785db92f47330f5eb3f165324c8e..dac2d8ad36bb8250fd2f0ea03b0d03d6ddabc4a5 100644 (file)
@@ -397,7 +397,6 @@ public:
    fs_reg *emit_frontfacing_interpolation(ir_variable *ir);
    fs_reg *emit_samplepos_setup(ir_variable *ir);
    fs_reg *emit_sampleid_setup(ir_variable *ir);
-   fs_reg *emit_samplemaskin_setup(ir_variable *ir);
    fs_reg *emit_general_interpolation(ir_variable *ir);
    void emit_interpolation_setup_gen4();
    void emit_interpolation_setup_gen6();
index 307d07bb6e63e387bca50aee507ab917523cb4c6..eff762975ae20a78243bde80d847b271feff8f2f 100644 (file)
@@ -138,7 +138,9 @@ fs_visitor::visit(ir_variable *ir)
       } else if (ir->data.location == SYSTEM_VALUE_SAMPLE_ID) {
         reg = emit_sampleid_setup(ir);
       } else if (ir->data.location == SYSTEM_VALUE_SAMPLE_MASK_IN) {
-         reg = emit_samplemaskin_setup(ir);
+         assert(brw->gen >= 7);
+         reg = new(mem_ctx) fs_reg(retype(brw_vec8_grf(c->sample_mask_in_reg, 0),
+                                          BRW_REGISTER_TYPE_D));
       }
    }