summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAlejandro Piñeiro <[email protected]>2015-10-23 15:32:30 +0200
committerAlejandro Piñeiro <[email protected]>2015-10-23 18:11:09 +0200
commit2f1bc1da864f8d169427b911bf60e1023321e420 (patch)
tree57d4f0d353024aecf07f0f991bd64c7c5b6d8e5d /src
parentfb064901e9bd83a63d486f246b9ea943cd00f6cd (diff)
i965/vec4: check opcode on vec4_instruction::reads_flag(channel)
Commit f17b78 added an alternative reads_flag(channel) that returned if the instruction was reading a specific channel flag. By mistake it only took into account the predicate, but when the opcode is VS_OPCODE_UNPACK_FLAGS_SIMD4X2 there isn't any predicate, but the flag are used. That mistake caused some regressions on old hw. More information on this bug: https://bugs.freedesktop.org/show_bug.cgi?id=92621 Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/mesa/drivers/dri/i965/brw_ir_vec4.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_ir_vec4.h b/src/mesa/drivers/dri/i965/brw_ir_vec4.h
index 74e9733bd44..cc4104c8eb3 100644
--- a/src/mesa/drivers/dri/i965/brw_ir_vec4.h
+++ b/src/mesa/drivers/dri/i965/brw_ir_vec4.h
@@ -188,8 +188,8 @@ public:
bool reads_flag(unsigned c)
{
- if (!reads_flag())
- return false;
+ if (opcode == VS_OPCODE_UNPACK_FLAGS_SIMD4X2)
+ return true;
switch (predicate) {
case BRW_PREDICATE_NONE: