summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Forbes <[email protected]>2013-08-16 06:54:30 +1200
committerChris Forbes <[email protected]>2013-08-16 07:21:43 +1200
commit9e2c1e28a14bb7c5ec49d6e7638b07a9e03ddca9 (patch)
tree874fdd762d31ad82a73347285ffce50ab103f7d3
parentc5e2d0454b61d7dc44b1f0be00980cabad3db27d (diff)
i965/vs: add vec4_instruction::depends_on_flags
We're about to have an instruction that depends on the flags but isn't predicated. This lays the groundwork. Signed-off-by: Chris Forbes <[email protected]>
-rw-r--r--src/mesa/drivers/dri/i965/brw_schedule_instructions.cpp4
-rw-r--r--src/mesa/drivers/dri/i965/brw_vec4.h5
2 files changed, 7 insertions, 2 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_schedule_instructions.cpp b/src/mesa/drivers/dri/i965/brw_schedule_instructions.cpp
index 37e7db5f22e..5530683df84 100644
--- a/src/mesa/drivers/dri/i965/brw_schedule_instructions.cpp
+++ b/src/mesa/drivers/dri/i965/brw_schedule_instructions.cpp
@@ -821,7 +821,7 @@ vec4_instruction_scheduler::calculate_deps()
add_dep(last_mrf_write[inst->base_mrf + i], n);
}
- if (inst->predicate) {
+ if (inst->depends_on_flags()) {
assert(last_conditional_mod);
add_dep(last_conditional_mod, n);
}
@@ -892,7 +892,7 @@ vec4_instruction_scheduler::calculate_deps()
add_dep(n, last_mrf_write[inst->base_mrf + i], 2);
}
- if (inst->predicate) {
+ if (inst->depends_on_flags()) {
add_dep(n, last_conditional_mod);
}
diff --git a/src/mesa/drivers/dri/i965/brw_vec4.h b/src/mesa/drivers/dri/i965/brw_vec4.h
index 18e0d567a74..ee14cd82600 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4.h
+++ b/src/mesa/drivers/dri/i965/brw_vec4.h
@@ -185,6 +185,11 @@ public:
bool is_send_from_grf();
bool can_reswizzle_dst(int dst_writemask, int swizzle, int swizzle_mask);
void reswizzle_dst(int dst_writemask, int swizzle);
+
+ bool depends_on_flags()
+ {
+ return predicate;
+ }
};
/**