From b6d874ade22dc029522500d51993601b8e6183c7 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Alejandro=20Pi=C3=B1eiro?= Date: Wed, 24 May 2023 10:43:55 +0200 Subject: [PATCH] v3d: assert if v3d_compile returns NULL Ideally we would like to trigger a compilation error like we do on v3dv (VK_ERROR_UNKNOWN). But with v3d we can't really do that, as this could happen on a draw call. Let's at least assert so debug builds stops at this point. Reviewed-by: Iago Toral Quiroga Part-of: --- src/gallium/drivers/v3d/v3d_program.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/gallium/drivers/v3d/v3d_program.c b/src/gallium/drivers/v3d/v3d_program.c index 97535a1..32f0a7e 100644 --- a/src/gallium/drivers/v3d/v3d_program.c +++ b/src/gallium/drivers/v3d/v3d_program.c @@ -407,6 +407,14 @@ v3d_get_compiled_shader(struct v3d_context *v3d, v3d_shader_debug_output, v3d, program_id, variant_id, &shader_size); + + /* qpu_insts being NULL can happen if the register allocation + * failed. At this point we can't really trigger an OpenGL API + * error, as the final compilation could happen on the draw + * call. So let's at least assert, so debug builds finish at + * this point. + */ + assert(qpu_insts); ralloc_steal(shader, shader->prog_data.base); if (shader_size) { -- 2.7.4