summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTimur Kristóf <timur.kristof@gmail.com>2020-04-01 12:14:00 +0200
committerMarge Bot <eric+marge@anholt.net>2020-04-07 11:29:35 +0000
commitec72c504c623c12ea870e451f2d08a482d219469 (patch)
treed8cd158d3079f6e2b351faf57475cecdf9da1ce0 /src
parent1436c0b8e07898b0d5118f6959db57491a9a2a85 (diff)
aco/ngg: Initialize exec mask for NGG VS and TES.
They behave like merged ESGS shaders, so the exec mask needs to be manually initialized for these NGG shaders too. Signed-off-by: Timur Kristóf <timur.kristof@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3576>
Diffstat (limited to 'src')
-rw-r--r--src/amd/compiler/aco_insert_exec_mask.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/amd/compiler/aco_insert_exec_mask.cpp b/src/amd/compiler/aco_insert_exec_mask.cpp
index 909c1735453..fe0dc54ccca 100644
--- a/src/amd/compiler/aco_insert_exec_mask.cpp
+++ b/src/amd/compiler/aco_insert_exec_mask.cpp
@@ -377,7 +377,7 @@ unsigned add_coupling_code(exec_ctx& ctx, Block* block,
bld.insert(std::move(startpgm));
/* exec seems to need to be manually initialized with combined shaders */
- if (util_bitcount(ctx.program->stage & sw_mask) > 1) {
+ if (util_bitcount(ctx.program->stage & sw_mask) > 1 || (ctx.program->stage & hw_ngg_gs)) {
bld.sop1(Builder::s_mov, bld.exec(Definition(exec_mask)), bld.lm == s2 ? Operand(UINT64_MAX) : Operand(UINT32_MAX));
instructions[0]->definitions.pop_back();
}