diff options
author | Rob Clark <robclark@freedesktop.org> | 2015-06-26 14:24:08 -0400 |
---|---|---|
committer | Rob Clark <robclark@freedesktop.org> | 2015-06-30 12:13:44 -0400 |
commit | 879dcf07f6a3ab56f23d540b0df94c57e0706094 (patch) | |
tree | 452742210920e393f8c044733c86affc2bc6ea62 /src/gallium/auxiliary/nir/tgsi_to_nir.c | |
parent | d1f0e019797863b23388bfef53a77f659f749d3c (diff) | |
download | external_mesa3d-879dcf07f6a3ab56f23d540b0df94c57e0706094.zip external_mesa3d-879dcf07f6a3ab56f23d540b0df94c57e0706094.tar.gz external_mesa3d-879dcf07f6a3ab56f23d540b0df94c57e0706094.tar.bz2 |
gallium/ttn: don't upset nir_validate w/ BRK's
Previously we were unconditionally doing ttn_get_src() even for
instructions with no src's. Which created a lot of unnecessary
load_const instructions. These were mostly harmless since NIR opt
passes would strip them back out. But for an ENDIF following a
BRK, it would result in load_const instructions created after the
NIR break instruction. Which nir_validate dislikes.
But we can actually just dtrt by using NumSrcRegs instead.
Signed-off-by: Rob Clark <robclark@freedesktop.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Diffstat (limited to 'src/gallium/auxiliary/nir/tgsi_to_nir.c')
-rw-r--r-- | src/gallium/auxiliary/nir/tgsi_to_nir.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/gallium/auxiliary/nir/tgsi_to_nir.c b/src/gallium/auxiliary/nir/tgsi_to_nir.c index bd4cdcb..e1647d5 100644 --- a/src/gallium/auxiliary/nir/tgsi_to_nir.c +++ b/src/gallium/auxiliary/nir/tgsi_to_nir.c @@ -1491,7 +1491,7 @@ ttn_emit_instruction(struct ttn_compile *c) return; nir_ssa_def *src[TGSI_FULL_MAX_SRC_REGISTERS]; - for (i = 0; i < TGSI_FULL_MAX_SRC_REGISTERS; i++) { + for (i = 0; i < tgsi_inst->Instruction.NumSrcRegs; i++) { src[i] = ttn_get_src(c, &tgsi_inst->Src[i]); } nir_alu_dest dest = ttn_get_dest(c, tgsi_dst); |