diff options
author | Rhys Perry <pendingchaos02@gmail.com> | 2020-04-29 17:47:50 +0100 |
---|---|---|
committer | Dylan Baker <dylan.c.baker@intel.com> | 2020-05-28 11:16:38 -0700 |
commit | 94850e33fbe15e86551a44c5710a90f0fbe86a81 (patch) | |
tree | 2b49bf8f7c8efadcc5821b20bdc01c945d63fd28 | |
parent | e6d75761129b0e9ad2dffd0f67a2b39c9aef7975 (diff) |
aco: check instruction format before waiting for a previous SMEM store
Totals from 7 (0.01% of 127638) affected shaders:
CodeSize: 40336 -> 40320 (-0.04%)
Instrs: 7807 -> 7803 (-0.05%)
Cycles: 118588 -> 118344 (-0.21%); split: -0.23%, +0.02%
SMEM: 331 -> 339 (+2.42%)
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Fixes: 1749953ea3 ('aco/gfx10: Wait for pending SMEM stores before loads')
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4880>
(cherry picked from commit 95d5c1b8a1ebe4a2ce47206b9ff0af4fbfd5a31a)
-rw-r--r-- | .pick_status.json | 2 | ||||
-rw-r--r-- | src/amd/compiler/aco_insert_waitcnt.cpp | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/.pick_status.json b/.pick_status.json index d2b16e39f21..96524d54f97 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -94,7 +94,7 @@ "description": "aco: check instruction format before waiting for a previous SMEM store", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": "1749953ea3eb2f3e33a61243cc11860795c658f3" }, diff --git a/src/amd/compiler/aco_insert_waitcnt.cpp b/src/amd/compiler/aco_insert_waitcnt.cpp index e0184993c6b..013bdc8b60d 100644 --- a/src/amd/compiler/aco_insert_waitcnt.cpp +++ b/src/amd/compiler/aco_insert_waitcnt.cpp @@ -387,7 +387,7 @@ wait_imm kill(Instruction* instr, wait_ctx& ctx) imm.lgkm = 0; } - if (ctx.chip_class >= GFX10) { + if (ctx.chip_class >= GFX10 && instr->format == Format::SMEM) { /* GFX10: A store followed by a load at the same address causes a problem because * the load doesn't load the correct values unless we wait for the store first. * This is NOT mitigated by an s_nop. |