Mesa (master): aco: fix WaR check for >64-bit FLAT/GLOBAL instructions

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Jan 27 15:23:56 UTC 2020


Module: Mesa
Branch: master
Commit: e6c90e4af94c898875d873206e00fc1befb44612
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e6c90e4af94c898875d873206e00fc1befb44612

Author: Rhys Perry <pendingchaos02 at gmail.com>
Date:   Thu Jan 23 19:30:29 2020 +0000

aco: fix WaR check for >64-bit FLAT/GLOBAL instructions

Signed-off-by: Rhys Perry <pendingchaos02 at gmail.com>
Fixes: 5986e0019 ('aco: improve WAR hazard workaround with >64bit stores')
Reviewed-by: Daniel Schürmann <daniel at schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3541>

---

 src/amd/compiler/aco_insert_NOPs.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/amd/compiler/aco_insert_NOPs.cpp b/src/amd/compiler/aco_insert_NOPs.cpp
index 8c032bb699c..605ed8a2081 100644
--- a/src/amd/compiler/aco_insert_NOPs.cpp
+++ b/src/amd/compiler/aco_insert_NOPs.cpp
@@ -333,8 +333,8 @@ int handle_instruction_gfx8_9(NOP_ctx_gfx8_9& ctx, aco_ptr<Instruction>& instr,
                               pred->operands.size() == 3 &&
                               pred->operands[2].size() > 2;
          if (consider_buf || consider_mimg || consider_flat) {
-            PhysReg wrdata = pred->operands[3].physReg();
-            unsigned size = pred->operands[3].size();
+            PhysReg wrdata = pred->operands[consider_flat ? 2 : 3].physReg();
+            unsigned size = pred->operands[consider_flat ? 2 : 3].size();
             assert(wrdata >= 256);
             for (const Definition& def : instr->definitions) {
                if (regs_intersect(def.physReg(), def.size(), wrdata, size))



More information about the mesa-commit mailing list