Mesa (vulkan): Revert "i965/fs: Properly write-mask spills"

Jason Ekstrand jekstrand at kemper.freedesktop.org
Fri Apr 15 20:48:18 UTC 2016


Module: Mesa
Branch: vulkan
Commit: d7189bdeeeae3179a62cee0d31a3d0a9d4f96f6f
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d7189bdeeeae3179a62cee0d31a3d0a9d4f96f6f

Author: Jason Ekstrand <jason.ekstrand at intel.com>
Date:   Fri Apr 15 09:45:55 2016 -0700

Revert "i965/fs: Properly write-mask spills"

This reverts commit 9c0109a1f6e0c9c8dd81fc215f8c0c5976e05790.

---

 src/mesa/drivers/dri/i965/brw_fs.h                |  2 +-
 src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp | 14 ++++----------
 2 files changed, 5 insertions(+), 11 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_fs.h b/src/mesa/drivers/dri/i965/brw_fs.h
index 2b00129..6afb9b6 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.h
+++ b/src/mesa/drivers/dri/i965/brw_fs.h
@@ -225,7 +225,7 @@ public:
    void emit_unspill(bblock_t *block, fs_inst *inst, fs_reg reg,
                      uint32_t spill_offset, int count);
    void emit_spill(bblock_t *block, fs_inst *inst, fs_reg reg,
-                   uint32_t spill_offset, int count, bool we_all);
+                   uint32_t spill_offset, int count);
 
    void emit_nir_code();
    void nir_setup_inputs();
diff --git a/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp b/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp
index 791da0e..2347cd5 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp
@@ -751,7 +751,6 @@ fs_visitor::emit_unspill(bblock_t *block, fs_inst *inst, fs_reg dst,
                                         dst);
       unspill_inst->offset = spill_offset;
       unspill_inst->regs_written = reg_size;
-      unspill_inst->force_writemask_all = true;
 
       if (!gen7_read) {
          unspill_inst->base_mrf = FIRST_SPILL_MRF(devinfo->gen) + 1;
@@ -765,11 +764,11 @@ fs_visitor::emit_unspill(bblock_t *block, fs_inst *inst, fs_reg dst,
 
 void
 fs_visitor::emit_spill(bblock_t *block, fs_inst *inst, fs_reg src,
-                       uint32_t spill_offset, int count, bool we_all)
+                       uint32_t spill_offset, int count)
 {
    int reg_size = 1;
    int spill_base_mrf = FIRST_SPILL_MRF(devinfo->gen) + 1;
-   if (inst->exec_size == 16 && count % 2 == 0) {
+   if (dispatch_width == 16 && count % 2 == 0) {
       spill_base_mrf = FIRST_SPILL_MRF(devinfo->gen);
       reg_size = 2;
    }
@@ -785,8 +784,6 @@ fs_visitor::emit_spill(bblock_t *block, fs_inst *inst, fs_reg src,
       spill_inst->offset = spill_offset + i * reg_size * REG_SIZE;
       spill_inst->mlen = 1 + reg_size; /* header, value */
       spill_inst->base_mrf = spill_base_mrf;
-      spill_inst->force_writemask_all = we_all;
-      spill_inst->force_sechalf = inst->force_sechalf;
    }
 }
 
@@ -941,15 +938,12 @@ fs_visitor::spill_reg(int spill_reg)
           * inst->regs_written(), then we need to unspill the destination
           * since we write back out all of the regs_written().
 	  */
-         bool need_unspill = inst->is_partial_write() ||
-                             type_sz(inst->dst.type) != 4;
-         if (need_unspill)
+	 if (inst->is_partial_write())
             emit_unspill(block, inst, spill_src, subset_spill_offset,
                          inst->regs_written);
 
          emit_spill(block, inst, spill_src, subset_spill_offset,
-                    inst->regs_written,
-                    need_unspill || inst->force_writemask_all);
+                    inst->regs_written);
       }
    }
 




More information about the mesa-commit mailing list