diff options
author | Marek Olšák <marek.olsak@amd.com> | 2016-01-13 18:42:02 +0100 |
---|---|---|
committer | Emil Velikov <emil.l.velikov@gmail.com> | 2016-01-22 11:36:43 +0000 |
commit | ce09b50e7aa21da2d34e8a076d31ebbbd4b46def (patch) | |
tree | 447aeb7751afe081a9e621fbeb4b134a3a0a68a6 | |
parent | ca6440ac33c976c5da838ee35dc74b707a7a6114 (diff) | |
download | mesa-ce09b50e7aa21da2d34e8a076d31ebbbd4b46def.tar.gz |
radeonsi: don't miss changes to SPI_TMPRING_SIZE
I'm not sure about the consequences of this bug, but it's definitely
dangerous.
This applies to SI, CIK, VI.
Cc: 11.0 11.1 <mesa-stable@lists.freedesktop.org>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
(cherry picked from commit dc96a18d24409102e36cdfd7de0552f66c3925bf)
-rw-r--r-- | src/gallium/drivers/radeonsi/si_state_shaders.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.c b/src/gallium/drivers/radeonsi/si_state_shaders.c index ca6b4be3b0b..f779dd02d6f 100644 --- a/src/gallium/drivers/radeonsi/si_state_shaders.c +++ b/src/gallium/drivers/radeonsi/si_state_shaders.c @@ -1281,6 +1281,7 @@ static bool si_update_spi_tmpring_size(struct si_context *sctx) si_get_max_scratch_bytes_per_wave(sctx); unsigned scratch_needed_size = scratch_bytes_per_wave * sctx->scratch_waves; + unsigned spi_tmpring_size; int r; if (scratch_needed_size > 0) { @@ -1350,8 +1351,12 @@ static bool si_update_spi_tmpring_size(struct si_context *sctx) assert((scratch_needed_size & ~0x3FF) == scratch_needed_size && "scratch size should already be aligned correctly."); - sctx->spi_tmpring_size = S_0286E8_WAVES(sctx->scratch_waves) | - S_0286E8_WAVESIZE(scratch_bytes_per_wave >> 10); + spi_tmpring_size = S_0286E8_WAVES(sctx->scratch_waves) | + S_0286E8_WAVESIZE(scratch_bytes_per_wave >> 10); + if (spi_tmpring_size != sctx->spi_tmpring_size) { + sctx->spi_tmpring_size = spi_tmpring_size; + sctx->emit_scratch_reloc = true; + } return true; } |