mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 20:28:04 +02:00
vc4: Initialize undefined temporaries to 0.
Under the simulator, reading registers before writing them triggers an assertion failure. c->undef gets treated as r0, which will usually be written, but not if it's used in the first instruction. We should definitely not be aborting in this case, and return some sort of undefined value instead. Fixes glsl-user-varying-ff.
This commit is contained in:
parent
4ce11de4ae
commit
5cfab07639
1 changed files with 6 additions and 1 deletions
|
|
@ -957,10 +957,15 @@ emit_tgsi_declaration(struct vc4_compile *c,
|
|||
struct tgsi_full_declaration *decl)
|
||||
{
|
||||
switch (decl->Declaration.File) {
|
||||
case TGSI_FILE_TEMPORARY:
|
||||
case TGSI_FILE_TEMPORARY: {
|
||||
uint32_t old_size = c->temps_array_size;
|
||||
resize_qreg_array(c, &c->temps, &c->temps_array_size,
|
||||
(decl->Range.Last + 1) * 4);
|
||||
|
||||
for (int i = old_size; i < c->temps_array_size; i++)
|
||||
c->temps[i] = qir_uniform_ui(c, 0);
|
||||
break;
|
||||
}
|
||||
|
||||
case TGSI_FILE_INPUT:
|
||||
resize_qreg_array(c, &c->inputs, &c->inputs_array_size,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue