From 60a128fe8172826837fd6f91ae323aaa07ba7607 Mon Sep 17 00:00:00 2001 From: Erico Nunes Date: Sun, 5 May 2019 10:51:43 +0200 Subject: [PATCH 1/2] lima/ir: print names of unsupported intrinsics While lima still doesn't support some kinds of intrinsics, it is more helpful to display the name of the unsupported instr->intrinsic to make debugging easier. Signed-off-by: Erico Nunes Reviewed-by: Qiang Yu --- src/gallium/drivers/lima/ir/gp/nir.c | 3 ++- src/gallium/drivers/lima/ir/pp/nir.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/lima/ir/gp/nir.c b/src/gallium/drivers/lima/ir/gp/nir.c index 8cd8d2f67e05..f95957e8892f 100644 --- a/src/gallium/drivers/lima/ir/gp/nir.c +++ b/src/gallium/drivers/lima/ir/gp/nir.c @@ -201,7 +201,8 @@ static bool gpir_emit_intrinsic(gpir_block *block, nir_instr *ni) return true; } default: - gpir_error("unsupported nir_intrinsic_instr %d\n", instr->intrinsic); + gpir_error("unsupported nir_intrinsic_instr %s\n", + nir_intrinsic_infos[instr->intrinsic].name); return false; } } diff --git a/src/gallium/drivers/lima/ir/pp/nir.c b/src/gallium/drivers/lima/ir/pp/nir.c index bdf54b227c6e..6cb90701fd32 100644 --- a/src/gallium/drivers/lima/ir/pp/nir.c +++ b/src/gallium/drivers/lima/ir/pp/nir.c @@ -266,7 +266,8 @@ static ppir_node *ppir_emit_intrinsic(ppir_block *block, nir_instr *ni) return &snode->node; default: - ppir_error("unsupported nir_intrinsic_instr %d\n", instr->intrinsic); + ppir_error("unsupported nir_intrinsic_instr %s\n", + nir_intrinsic_infos[instr->intrinsic].name); return NULL; } } -- GitLab From 11602ccd5dfa6c98400a484cae8d3221f325da6d Mon Sep 17 00:00:00 2001 From: Erico Nunes Date: Sun, 5 May 2019 10:53:33 +0200 Subject: [PATCH 2/2] lima/ppir: abort compilation in case of unsupported intrinsic Currently ppir continues compilation when there is an unsupported intrinsic, resulting in a shader that will surely not work as intended. This is a problem during piglit runs as some tests don't compile properly due to this but actually still get submitted to the gpu and leave the system in an unstable state after executing, causing further tests to fail. Signed-off-by: Erico Nunes Reviewed-by: Qiang Yu --- src/gallium/drivers/lima/ir/pp/nir.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/lima/ir/pp/nir.c b/src/gallium/drivers/lima/ir/pp/nir.c index 6cb90701fd32..bb5038541eaf 100644 --- a/src/gallium/drivers/lima/ir/pp/nir.c +++ b/src/gallium/drivers/lima/ir/pp/nir.c @@ -380,8 +380,10 @@ static bool ppir_emit_block(ppir_compiler *comp, nir_block *nblock) nir_foreach_instr(instr, nblock) { assert(instr->type < nir_instr_type_phi); ppir_node *node = ppir_emit_instr[instr->type](block, instr); - if (node) - list_addtail(&node->list, &block->node_list); + if (!node) + return false; + + list_addtail(&node->list, &block->node_list); } return true; -- GitLab