agx: Ensure load_frag_coord has the right sizes

In case .x isn't read, it'll be null which has the wrong size and will fail
the validation added later in this series. We fix this by padding with sized
undefs (something that exists of defined size but undefined value) rather than
nothingness (of undefined size).

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22891>
This commit is contained in:
Alyssa Rosenzweig
2023-04-23 17:38:40 -04:00
parent 7f71e1bc2d
commit f4f9269b66
+5 -1
View File
@@ -636,7 +636,11 @@ static void
agx_emit_load_frag_coord(agx_builder *b, agx_index dst,
nir_intrinsic_instr *instr)
{
agx_index dests[4] = {agx_null()};
agx_index dests[4];
for (unsigned i = 0; i < ARRAY_SIZE(dests); ++i) {
dests[i] = agx_undef(AGX_SIZE_32);
}
u_foreach_bit(i, nir_ssa_def_components_read(&instr->dest.ssa)) {
agx_index fp32 = agx_temp(b->shader, AGX_SIZE_32);