aco: always set FI on GFX10
authorRhys Perry <pendingchaos02@gmail.com>
Mon, 20 Jul 2020 16:19:40 +0000 (17:19 +0100)
committerMarge Bot <eric+marge@anholt.net>
Tue, 21 Jul 2020 11:34:23 +0000 (11:34 +0000)
bounds_ctrl is set to true by default which works around some game bugs,
but that isn't enough on GFX10.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5991>

src/amd/compiler/aco_assembler.cpp

index c36e8c9b51ec3c1761ecbc21ce1ab9499f095e69..8d77951feff66c77cac2aa97ad3d462a84b49390 100644 (file)
@@ -622,6 +622,8 @@ void emit_instruction(asm_context& ctx, std::vector<uint32_t>& out, Instruction*
          encoding |= dpp->neg[1] << 22;
          encoding |= dpp->abs[0] << 21;
          encoding |= dpp->neg[0] << 20;
+         if (ctx.chip_class >= GFX10)
+            encoding |= 1 << 18; /* set Fetch Inactive to match GFX9 behaviour */
          encoding |= dpp->bound_ctrl << 19;
          encoding |= dpp->dpp_ctrl << 8;
          encoding |= (0xFF) & dpp_op.physReg();