broadcom/compiler: disable TMU pipelining if we fail to register allocate

TMU pipelining can severely reduce our capacity to emit TMU spills,
causing us to fail to compile a shader we may otherwise be able to
compile. This is because pipelining extends the liveness of TMU
sequences by posponing the thread switch and LDTMU until a result
is needed, and we can't emit TMU spills while in the middle of a
TMU sequence.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8825>
This commit is contained in:
Iago Toral Quiroga
2021-02-01 11:01:47 +01:00
committed by Marge Bot
parent ecd654bf00
commit e18d6bbf2f
3 changed files with 26 additions and 5 deletions

View File

@@ -627,6 +627,12 @@ struct v3d_compile {
*/
bool fallback_scheduler;
/* Disable TMU pipelining. This may increase the chances of being able
* to compile shaders with high register pressure that require to emit
* TMU spills.
*/
bool disable_tmu_pipelining;
/* State for whether we're executing on each channel currently. 0 if
* yes, otherwise a block number + 1 that the channel jumped to.
*/