diff options
author | Alejandro Piñeiro <[email protected]> | 2015-10-23 15:32:30 +0200 |
---|---|---|
committer | Alejandro Piñeiro <[email protected]> | 2015-10-23 18:11:09 +0200 |
commit | 2f1bc1da864f8d169427b911bf60e1023321e420 (patch) | |
tree | 57d4f0d353024aecf07f0f991bd64c7c5b6d8e5d /src | |
parent | fb064901e9bd83a63d486f246b9ea943cd00f6cd (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.h | 4 |
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: |