diff --git a/src/asahi/compiler/agx_compile.c b/src/asahi/compiler/agx_compile.c index abf12e4ca54..fa3c839e734 100644 --- a/src/asahi/compiler/agx_compile.c +++ b/src/asahi/compiler/agx_compile.c @@ -891,6 +891,8 @@ agx_emit_intrinsic(agx_builder *b, nir_intrinsic_instr *instr) b, dst, instr, AGX_SR_THREAD_POSITION_IN_THREADGROUP_X); case nir_intrinsic_scoped_barrier: { + assert(!b->shader->is_preamble && "invalid"); + bool needs_threadgroup_barrier = false; if (nir_intrinsic_execution_scope(instr) != SCOPE_NONE) { @@ -2164,6 +2166,7 @@ agx_compile_function_nir(nir_shader *nir, nir_function_impl *impl, agx_context *ctx = rzalloc(NULL, agx_context); ctx->nir = nir; + ctx->is_preamble = impl->function->is_preamble; ctx->out = out; ctx->key = key; ctx->stage = nir->info.stage; diff --git a/src/asahi/compiler/agx_compiler.h b/src/asahi/compiler/agx_compiler.h index e153ceb9337..d92a8f41501 100644 --- a/src/asahi/compiler/agx_compiler.h +++ b/src/asahi/compiler/agx_compiler.h @@ -378,6 +378,8 @@ typedef struct agx_block { typedef struct { nir_shader *nir; gl_shader_stage stage; + bool is_preamble; + struct list_head blocks; /* list of agx_block */ struct agx_shader_info *out; struct agx_shader_key *key;