summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/mesa/drivers/dri/i965/brw_fs.cpp9
-rw-r--r--src/mesa/drivers/dri/i965/brw_fs.h2
2 files changed, 11 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
index 9ebb86915c4..f23a946e7ae 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
@@ -111,6 +111,15 @@ fs_inst::fs_inst(const fs_inst &that)
this->src[i] = that.src[i];
}
+void
+fs_inst::resize_sources(uint8_t num_sources)
+{
+ if (this->sources != num_sources) {
+ this->src = reralloc(this, this->src, fs_reg, num_sources);
+ this->sources = num_sources;
+ }
+}
+
#define ALU1(op) \
fs_inst * \
fs_visitor::op(fs_reg dst, fs_reg src0) \
diff --git a/src/mesa/drivers/dri/i965/brw_fs.h b/src/mesa/drivers/dri/i965/brw_fs.h
index fb68923009c..b7cfb3c96e9 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.h
+++ b/src/mesa/drivers/dri/i965/brw_fs.h
@@ -200,6 +200,8 @@ public:
const fs_reg &src1, const fs_reg &src2);
fs_inst(const fs_inst &that);
+ void resize_sources(uint8_t num_sources);
+
bool equals(fs_inst *inst) const;
bool overwrites_reg(const fs_reg &reg) const;
bool is_send_from_grf() const;