mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 15:58:05 +02:00
anv: handle spirv parsing failure
v2: don't leak spec_entries
v3: Also switch to VK_ERROR_UNKNOWN when parsing fails
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10790>
(cherry picked from commit 938e52a6e8)
This commit is contained in:
parent
1477627811
commit
64a2015902
2 changed files with 8 additions and 3 deletions
|
|
@ -247,7 +247,7 @@
|
|||
"description": "anv: handle spirv parsing failure",
|
||||
"nominated": true,
|
||||
"nomination_type": 0,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"master_sha": null,
|
||||
"because_sha": null
|
||||
},
|
||||
|
|
|
|||
|
|
@ -195,6 +195,11 @@ anv_shader_compile_to_nir(struct anv_device *device,
|
|||
spirv_to_nir(spirv, module->size / 4,
|
||||
spec_entries, num_spec_entries,
|
||||
stage, entrypoint_name, &spirv_options, nir_options);
|
||||
if (!nir) {
|
||||
free(spec_entries);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
assert(nir->info.stage == stage);
|
||||
nir_validate_shader(nir, "after spirv_to_nir");
|
||||
nir_validate_ssa_dominance(nir, "after spirv_to_nir");
|
||||
|
|
@ -1431,7 +1436,7 @@ anv_pipeline_compile_graphics(struct anv_graphics_pipeline *pipeline,
|
|||
pipeline_ctx,
|
||||
&stages[s]);
|
||||
if (stages[s].nir == NULL) {
|
||||
result = vk_error(VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
result = vk_error(VK_ERROR_UNKNOWN);
|
||||
goto fail;
|
||||
}
|
||||
|
||||
|
|
@ -1719,7 +1724,7 @@ anv_pipeline_compile_cs(struct anv_compute_pipeline *pipeline,
|
|||
stage.nir = anv_pipeline_stage_get_nir(&pipeline->base, cache, mem_ctx, &stage);
|
||||
if (stage.nir == NULL) {
|
||||
ralloc_free(mem_ctx);
|
||||
return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
return vk_error(VK_ERROR_UNKNOWN);
|
||||
}
|
||||
|
||||
NIR_PASS_V(stage.nir, anv_nir_add_base_work_group_id);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue