From 3a81c753a3cfdcea215268c00f98ac87a09902e1 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 31 Dec 2018 11:51:01 -0800 Subject: [PATCH] v3d: Fix segfault when failing to compile a program. We'll still fail at draw time, but this avoids a regression in shader-db execution once I enable TLB writes in precompiles. Fixes: b38e4d313fc2 ("v3d: Create a state uploader for packing our shaders together.") --- src/gallium/drivers/v3d/v3d_program.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/v3d/v3d_program.c b/src/gallium/drivers/v3d/v3d_program.c index 759fac1..ef80069 100644 --- a/src/gallium/drivers/v3d/v3d_program.c +++ b/src/gallium/drivers/v3d/v3d_program.c @@ -373,8 +373,10 @@ v3d_get_compiled_shader(struct v3d_context *v3d, struct v3d_key *key) v3d_set_shader_uniform_dirty_flags(shader); - u_upload_data(v3d->state_uploader, 0, shader_size, 8, - qpu_insts, &shader->offset, &shader->resource); + if (shader_size) { + u_upload_data(v3d->state_uploader, 0, shader_size, 8, + qpu_insts, &shader->offset, &shader->resource); + } free(qpu_insts); -- 2.7.4