You can drop the scratch_bo line. Thanks. Marek
On Sat, Sep 27, 2014 at 5:25 PM, Emil Velikov <emil.l.veli...@gmail.com> wrote: > Hi Marek, > > On the 10.2 tree struct si_shader lacks the scratch_bo member, while > gs_copy_shader is around. Can you let me know if we should drop the > scratch_bo unref line or alternatively can you port the commit against 10.2 > > Thanks > Emil > > On 19/09/14 21:17, Marek Olšák wrote: >> From: Marek Olšák <marek.ol...@amd.com> >> >> Cc: 10.2 10.3 <mesa-sta...@lists.freedesktop.org> >> --- >> src/gallium/drivers/radeonsi/si_shader.c | 4 ++++ >> src/gallium/drivers/radeonsi/si_state.c | 7 ++++--- >> 2 files changed, 8 insertions(+), 3 deletions(-) >> >> diff --git a/src/gallium/drivers/radeonsi/si_shader.c >> b/src/gallium/drivers/radeonsi/si_shader.c >> index 7aa65c9..94db1dc 100644 >> --- a/src/gallium/drivers/radeonsi/si_shader.c >> +++ b/src/gallium/drivers/radeonsi/si_shader.c >> @@ -2973,5 +2973,9 @@ out: >> >> void si_shader_destroy(struct pipe_context *ctx, struct si_shader *shader) >> { >> + if (shader->gs_copy_shader) >> + si_shader_destroy(ctx, shader->gs_copy_shader); >> + >> r600_resource_reference(&shader->bo, NULL); >> + r600_resource_reference(&shader->scratch_bo, NULL); >> } >> diff --git a/src/gallium/drivers/radeonsi/si_state.c >> b/src/gallium/drivers/radeonsi/si_state.c >> index 2aa9aad..ed90f13 100644 >> --- a/src/gallium/drivers/radeonsi/si_state.c >> +++ b/src/gallium/drivers/radeonsi/si_state.c >> @@ -2403,9 +2403,10 @@ static void si_delete_shader_selector(struct >> pipe_context *ctx, >> >> while (p) { >> c = p->next_variant; >> - if (sel->type == PIPE_SHADER_GEOMETRY) >> + if (sel->type == PIPE_SHADER_GEOMETRY) { >> si_pm4_delete_state(sctx, gs, p->pm4); >> - else if (sel->type == PIPE_SHADER_FRAGMENT) >> + si_pm4_delete_state(sctx, vs, p->gs_copy_shader->pm4); >> + } else if (sel->type == PIPE_SHADER_FRAGMENT) >> si_pm4_delete_state(sctx, ps, p->pm4); >> else if (p->key.vs.as_es) >> si_pm4_delete_state(sctx, es, p->pm4); >> @@ -2418,7 +2419,7 @@ static void si_delete_shader_selector(struct >> pipe_context *ctx, >> >> free(sel->tokens); >> free(sel); >> - } >> +} >> >> static void si_delete_vs_shader(struct pipe_context *ctx, void *state) >> { >> > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev