Ken did this earlier, and this is just me reimplementing his patch a
little differently.
---
 src/mesa/drivers/dri/i965/brw_fs.cpp     | 6 ++++++
 src/mesa/drivers/dri/i965/brw_ir_fs.h    | 1 +
 src/mesa/drivers/dri/i965/brw_shader.cpp | 3 ++-
 3 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp 
b/src/mesa/drivers/dri/i965/brw_fs.cpp
index 261dff6..2ebd490 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
@@ -409,6 +409,12 @@ fs_inst::can_change_types() const
 }
 
 bool
+fs_inst::is_scheduling_barrier() const
+{
+   return this->eot || backend_instruction::is_scheduling_barrier();
+}
+
+bool
 fs_inst::has_side_effects() const
 {
    return this->eot || backend_instruction::has_side_effects();
diff --git a/src/mesa/drivers/dri/i965/brw_ir_fs.h 
b/src/mesa/drivers/dri/i965/brw_ir_fs.h
index c3eec2e..827c991 100644
--- a/src/mesa/drivers/dri/i965/brw_ir_fs.h
+++ b/src/mesa/drivers/dri/i965/brw_ir_fs.h
@@ -204,6 +204,7 @@ public:
    int regs_read(int arg) const;
    bool can_do_source_mods(const struct brw_device_info *devinfo);
    bool can_change_types() const;
+   bool is_scheduling_barrier() const;
    bool has_side_effects() const;
    bool has_source_and_destination_hazard() const;
 
diff --git a/src/mesa/drivers/dri/i965/brw_shader.cpp 
b/src/mesa/drivers/dri/i965/brw_shader.cpp
index 80673e5..8a0e0a0 100644
--- a/src/mesa/drivers/dri/i965/brw_shader.cpp
+++ b/src/mesa/drivers/dri/i965/brw_shader.cpp
@@ -897,7 +897,6 @@ backend_instruction::is_scheduling_barrier() const
    case SHADER_OPCODE_URB_WRITE_SIMD8_MASKED:
    case SHADER_OPCODE_URB_WRITE_SIMD8_MASKED_PER_SLOT:
    case FS_OPCODE_PLACEHOLDER_HALT:
-   case FS_OPCODE_FB_WRITE:
    case SHADER_OPCODE_BARRIER:
    case TCS_OPCODE_URB_WRITE:
    case TCS_OPCODE_RELEASE_INPUT:
@@ -911,6 +910,8 @@ bool
 backend_instruction::has_side_effects() const
 {
    switch (opcode) {
+   case FS_OPCODE_FB_WRITE:
+      return true;
    default:
       return is_scheduling_barrier();
    }
-- 
2.4.10

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to