-
- Downloads
ir3: make shpe a terminator
shpe is a bit of a special instruction: it's not really a terminator (i.e., it does not perform a jump) but it does have to stay at the end of its block. Up to now, we tried to enforce this by creating const write barriers on shpe; the assumption being that everything that happens in the preamble ends in a write to the const file so shpe stays at the end. Alas, it turns out this is not true: things like sampler prefetches do not write the const file and nothing was preventing those from being scheduled after shpe. Instead of trying to create even more barrier dependencies, fix this by making shpe a terminator. Both sched and postsched treat terminators specially to make sure they always stay at the end of their block. Signed-off-by:Job Noorman <jnoorman@igalia.com> Part-of: <!34290>
Showing
- src/freedreno/ir3/ir3.c 1 addition, 4 deletionssrc/freedreno/ir3/ir3.c
- src/freedreno/ir3/ir3.h 1 addition, 0 deletionssrc/freedreno/ir3/ir3.h
- src/freedreno/ir3/ir3_compiler_nir.c 1 addition, 3 deletionssrc/freedreno/ir3/ir3_compiler_nir.c
- src/freedreno/ir3/ir3_legalize.c 10 additions, 1 deletionsrc/freedreno/ir3/ir3_legalize.c
Loading
Please register or sign in to comment