lima/gpir: add limit of max 512 instructions

It has been noted that the lima GP has a limit of 512 instructions,
after which the shaders don't work and fail silently.
This commit adds a check to make the shader compilation abort when the
shader exceeds this limit, so that we get a clear reason for why the
program will not work.

Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
Reviewed-by: Qiang Yu <yuq825@gmail.com>
This commit is contained in:
Erico Nunes
2019-04-30 00:10:02 +02:00
parent 09c669260f
commit 257a9b0a94
+6
View File
@@ -560,6 +560,12 @@ bool gpir_codegen_prog(gpir_compiler *comp)
num_instr += list_length(&block->instr_list);
}
if (num_instr > 512) {
gpir_error("shader too big (%d), GP has a 512 instruction limit.\n",
num_instr);
return false;
}
gpir_codegen_instr *code = rzalloc_array(comp->prog, gpir_codegen_instr, num_instr);
if (!code)
return false;