aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimur Kristóf <[email protected]>2020-02-12 14:27:05 +0100
committerMarge Bot <[email protected]>2020-03-11 08:34:10 +0000
commitfe80f22470a194f2736e2277f41acf246f27f1c8 (patch)
treef2bd7ac357209cbc8b94c1df52effd2159c32181
parentf53d31fb9b27b490a8773173707b244c5826b5a3 (diff)
aco: Remove vertex_geometry_gs assertion from merged shaders.
We are going to support more kinds of merged shaders, such as vertex_tess_control_hs and tess_eval_geometry_gs. Signed-off-by: Timur Kristóf <[email protected]> Reviewed-by: Rhys Perry <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3964>
-rw-r--r--src/amd/compiler/aco_instruction_selection.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/amd/compiler/aco_instruction_selection.cpp b/src/amd/compiler/aco_instruction_selection.cpp
index 63debb21b12..eadada9f277 100644
--- a/src/amd/compiler/aco_instruction_selection.cpp
+++ b/src/amd/compiler/aco_instruction_selection.cpp
@@ -9024,11 +9024,13 @@ void select_program(Program *program,
if (i) {
Builder bld(ctx.program, ctx.block);
- assert(ctx.stage == vertex_geometry_gs);
+
bld.barrier(aco_opcode::p_memory_barrier_shared);
bld.sopp(aco_opcode::s_barrier);
- ctx.gs_wave_id = bld.sop2(aco_opcode::s_bfe_u32, bld.def(s1, m0), bld.def(s1, scc), get_arg(&ctx, args->merged_wave_info), Operand((8u << 16) | 16u));
+ if (ctx.stage == vertex_geometry_gs) {
+ ctx.gs_wave_id = bld.sop2(aco_opcode::s_bfe_u32, bld.def(s1, m0), bld.def(s1, scc), get_arg(&ctx, args->merged_wave_info), Operand((8u << 16) | 16u));
+ }
} else if (ctx.stage == geometry_gs)
ctx.gs_wave_id = get_arg(&ctx, args->gs_wave_id);