broadcom/compiler: return NULL if we fail to register allocate

Right now if we fail to register allocate, we return the qpu_insts
that we had at that point, even if the driver can't really use it.

Also v3dv_pipeline was already assuming that it would return NULL on
failure, returning VK_ERROR_UNKNOWN on that case.

This allows CTS tests with a lot of pressure, that regress now and
then to not being able to allocate, to finish with an error, instead
of blocking forever. For example:
dEQP-VK.graphicsfuzz.spv-stable-maze-flatten-copy-composite

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23203>
This commit is contained in:
Alejandro Piñeiro 2023-05-24 10:32:59 +02:00 committed by Marge Bot
parent 83cd7d23a2
commit 470b8567a5

View file

@ -1914,6 +1914,9 @@ uint64_t *v3d_compile(const struct v3d_compiler *compiler,
fprintf(stderr, "Failed to compile %s prog %d/%d "
"with any strategy.\n",
vir_get_stage_name(c), c->program_id, c->variant_id);
vir_compile_destroy(c);
return NULL;
}
struct v3d_prog_data *prog_data;