ac: pass struct ac_llvm_context to emit_membar()
authorTimothy Arceri <tarceri@itsqueeze.com>
Thu, 8 Feb 2018 23:37:25 +0000 (10:37 +1100)
committerTimothy Arceri <tarceri@itsqueeze.com>
Fri, 9 Feb 2018 01:51:27 +0000 (12:51 +1100)
Fixes segfault in piglit test:

./bin/arb_shader_image_load_store-shader-mem-barrier --quick -auto -fbo

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/amd/common/ac_nir_to_llvm.c

index 2329016ac68ab3b6e8ef7254bac4648a976c8e01..60276c1d4102b9bcfd4dc676c70b965c20a08b66 100644 (file)
@@ -3817,7 +3817,7 @@ static LLVMValueRef visit_image_size(struct ac_nir_context *ctx,
 #define LGKM_CNT 0x07f
 #define VM_CNT 0xf70
 
-static void emit_membar(struct nir_to_llvm_context *ctx,
+static void emit_membar(struct ac_llvm_context *ac,
                        const nir_intrinsic_instr *instr)
 {
        unsigned waitcnt = NOOP_WAITCNT;
@@ -3839,7 +3839,7 @@ static void emit_membar(struct nir_to_llvm_context *ctx,
                break;
        }
        if (waitcnt != NOOP_WAITCNT)
-               ac_build_waitcnt(&ctx->ac, waitcnt);
+               ac_build_waitcnt(ac, waitcnt);
 }
 
 static void emit_barrier(struct ac_llvm_context *ac, gl_shader_stage stage)
@@ -4438,7 +4438,7 @@ static void visit_intrinsic(struct ac_nir_context *ctx,
        case nir_intrinsic_memory_barrier_buffer:
        case nir_intrinsic_memory_barrier_image:
        case nir_intrinsic_memory_barrier_shared:
-               emit_membar(ctx->nctx, instr);
+               emit_membar(&ctx->ac, instr);
                break;
        case nir_intrinsic_barrier:
                emit_barrier(&ctx->ac, ctx->stage);