mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 09:38:07 +02:00
r600g: check gpr count limit
This should help to prevent gpu lockups. See https://bugs.freedesktop.org/show_bug.cgi?id=48472 NOTE: This is a candidate for the stable branches. Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
4b06280ea3
commit
783e4da72a
1 changed files with 8 additions and 0 deletions
|
|
@ -1266,6 +1266,14 @@ static int r600_shader_from_tgsi(struct r600_context * rctx, struct r600_pipe_sh
|
|||
if (ctx.bc->chip_class == CAYMAN)
|
||||
cm_bytecode_add_cf_end(ctx.bc);
|
||||
|
||||
/* check GPR limit - we have 124 = 128 - 4
|
||||
* (4 are reserved as alu clause temporary registers) */
|
||||
if (ctx.bc->ngpr > 124) {
|
||||
R600_ERR("GPR limit exceeded - shader requires %d registers\n", ctx.bc->ngpr);
|
||||
r = -ENOMEM;
|
||||
goto out_err;
|
||||
}
|
||||
|
||||
free(ctx.literals);
|
||||
tgsi_parse_free(&ctx.parse);
|
||||
return 0;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue