From: Vasily Khoruzhick Date: Fri, 23 Aug 2019 04:17:23 +0000 (-0700) Subject: lima/ppir: validate shader outputs X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d30a98c89635316bd445264cafb18283a1eb83df;p=mesa.git lima/ppir: validate shader outputs Mali4x0 supports only gl_FragColor. gl_FragDepth is not supported. Check that we don't get anything but gl_FragColor in shader outputs. Reviewed-by: Qiang Yu Signed-off-by: Vasily Khoruzhick --- diff --git a/src/gallium/drivers/lima/ir/pp/nir.c b/src/gallium/drivers/lima/ir/pp/nir.c index 75a09f0d441..831c50b3cd0 100644 --- a/src/gallium/drivers/lima/ir/pp/nir.c +++ b/src/gallium/drivers/lima/ir/pp/nir.c @@ -699,6 +699,19 @@ bool ppir_compile_nir(struct lima_fs_shader_state *prog, struct nir_shader *nir, } } + /* Validate outputs, we support only gl_FragColor */ + nir_foreach_variable(var, &nir->outputs) { + switch (var->data.location) { + case FRAG_RESULT_COLOR: + case FRAG_RESULT_DATA0: + break; + default: + ppir_error("unsupported output type\n"); + goto err_out0; + break; + } + } + foreach_list_typed(nir_register, reg, node, &func->registers) { ppir_reg *r = rzalloc(comp, ppir_reg); if (!r)