diff --git a/src/asahi/lib/agx_linker.c b/src/asahi/lib/agx_linker.c index 3c5b082bcd5..7e8aef00043 100644 --- a/src/asahi/lib/agx_linker.c +++ b/src/asahi/lib/agx_linker.c @@ -73,13 +73,12 @@ static const uint8_t sample_loop_footer[] = { #define SAMPLE_LOOP_FOOTER_COUNT_SHIFT (4) /* clang-format on */ -struct agx_linked_shader * -agx_fast_link(void *memctx, struct agx_device *dev, bool fragment, - struct agx_shader_part *main, struct agx_shader_part *prolog, - struct agx_shader_part *epilog, unsigned nr_samples_shaded) +void +agx_fast_link(struct agx_linked_shader *linked, struct agx_device *dev, + bool fragment, struct agx_shader_part *main, + struct agx_shader_part *prolog, struct agx_shader_part *epilog, + unsigned nr_samples_shaded) { - struct agx_linked_shader *linked = rzalloc(memctx, struct agx_linked_shader); - size_t size = 0; unsigned nr_gprs = 0, scratch_size = 0; bool reads_tib = false, writes_sample_mask = false, @@ -238,6 +237,4 @@ agx_fast_link(void *memctx, struct agx_device *dev, bool fragment, cfg.frag_coord_z = linked->cf.reads_z; } } - - return linked; } diff --git a/src/asahi/lib/agx_linker.h b/src/asahi/lib/agx_linker.h index 2a531937089..06ce2362074 100644 --- a/src/asahi/lib/agx_linker.h +++ b/src/asahi/lib/agx_linker.h @@ -37,10 +37,10 @@ struct agx_linked_shader { struct agx_fragment_control_packed fragment_control; }; -struct agx_linked_shader * -agx_fast_link(void *memctx, struct agx_device *dev, bool fragment, - struct agx_shader_part *main, struct agx_shader_part *prolog, - struct agx_shader_part *epilog, unsigned nr_samples_shaded); +void agx_fast_link(struct agx_linked_shader *linked, struct agx_device *dev, + bool fragment, struct agx_shader_part *main, + struct agx_shader_part *prolog, + struct agx_shader_part *epilog, unsigned nr_samples_shaded); /* These parts of the vertex element affect the generated code */ struct agx_velem_key { diff --git a/src/gallium/drivers/asahi/agx_state.c b/src/gallium/drivers/asahi/agx_state.c index bf29cd04f5e..2f2ce4a7db2 100644 --- a/src/gallium/drivers/asahi/agx_state.c +++ b/src/gallium/drivers/asahi/agx_state.c @@ -2160,9 +2160,10 @@ asahi_fast_link(struct agx_context *ctx, struct agx_uncompiled_shader *so, /* Fast-link it all together */ struct agx_device *dev = agx_device(ctx->base.screen); - struct agx_linked_shader *linked = agx_fast_link( - so->linked_shaders, dev, so->type == PIPE_SHADER_FRAGMENT, &key->main->b, - &prolog->b, &epilog->b, key->nr_samples_shaded); + struct agx_linked_shader *linked = + rzalloc(so->linked_shaders, struct agx_linked_shader); + agx_fast_link(linked, dev, so->type == PIPE_SHADER_FRAGMENT, &key->main->b, + &prolog->b, &epilog->b, key->nr_samples_shaded); /* Cache the fast linked program */ union asahi_shader_key *cloned_key =