freedreno/ir3: fix crash in fail path
Signed-off-by: Rob Clark <robclark@freedesktop.org>
This commit is contained in:
parent
1370fde8af
commit
0a8c8fa770
|
@ -60,6 +60,9 @@ draw_impl(struct fd_context *ctx, struct fd_ringbuffer *ring,
|
||||||
const struct pipe_draw_info *info = emit->info;
|
const struct pipe_draw_info *info = emit->info;
|
||||||
enum pc_di_primtype primtype = ctx->primtypes[info->mode];
|
enum pc_di_primtype primtype = ctx->primtypes[info->mode];
|
||||||
|
|
||||||
|
if (!(fd3_emit_get_vp(emit) && fd3_emit_get_fp(emit)))
|
||||||
|
return;
|
||||||
|
|
||||||
fd3_emit_state(ctx, ring, emit);
|
fd3_emit_state(ctx, ring, emit);
|
||||||
|
|
||||||
if (emit->dirty & (FD_DIRTY_VTXBUF | FD_DIRTY_VTXSTATE))
|
if (emit->dirty & (FD_DIRTY_VTXBUF | FD_DIRTY_VTXSTATE))
|
||||||
|
|
|
@ -48,6 +48,9 @@ draw_impl(struct fd_context *ctx, struct fd_ringbuffer *ring,
|
||||||
{
|
{
|
||||||
const struct pipe_draw_info *info = emit->info;
|
const struct pipe_draw_info *info = emit->info;
|
||||||
|
|
||||||
|
if (!(fd4_emit_get_vp(emit) && fd4_emit_get_fp(emit)))
|
||||||
|
return;
|
||||||
|
|
||||||
fd4_emit_state(ctx, ring, emit);
|
fd4_emit_state(ctx, ring, emit);
|
||||||
|
|
||||||
if (emit->dirty & (FD_DIRTY_VTXBUF | FD_DIRTY_VTXSTATE))
|
if (emit->dirty & (FD_DIRTY_VTXBUF | FD_DIRTY_VTXSTATE))
|
||||||
|
|
|
@ -46,7 +46,8 @@ delete_variant(struct ir3_shader_variant *v)
|
||||||
{
|
{
|
||||||
if (v->ir)
|
if (v->ir)
|
||||||
ir3_destroy(v->ir);
|
ir3_destroy(v->ir);
|
||||||
fd_bo_del(v->bo);
|
if (v->bo)
|
||||||
|
fd_bo_del(v->bo);
|
||||||
free(v);
|
free(v);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -228,8 +229,10 @@ ir3_shader_variant(struct ir3_shader *shader, struct ir3_shader_key key)
|
||||||
|
|
||||||
/* compile new variant if it doesn't exist already: */
|
/* compile new variant if it doesn't exist already: */
|
||||||
v = create_variant(shader, key);
|
v = create_variant(shader, key);
|
||||||
v->next = shader->variants;
|
if (v) {
|
||||||
shader->variants = v;
|
v->next = shader->variants;
|
||||||
|
shader->variants = v;
|
||||||
|
}
|
||||||
|
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue