radeonsi: calculate optimal GS ring sizes to fix GS hangs on Tonga
authorMarek Olšák <marek.olsak@amd.com>
Sun, 8 Nov 2015 12:34:44 +0000 (13:34 +0100)
committerMarek Olšák <marek.olsak@amd.com>
Fri, 13 Nov 2015 18:54:42 +0000 (19:54 +0100)
commitb1c5f3faa9d7a227150b677469df1a5832236541
tree98630efa0fd53ffe5c0dc7140d9939400cc87a70
parent2f5d911ba2b0d477bce80e4dd3ae4d9748c6f784
radeonsi: calculate optimal GS ring sizes to fix GS hangs on Tonga

I discovered that increasing the ESGS ring size fixes GS hangs on Tonga,
so let's do it properly.

There is now a separate init_config_gs_rings state that is not immutable,
because GS rings are resized when needed.

This also saves some memory. Most apps won't need more than 1MB
per ring per shader engine.

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
src/gallium/drivers/radeonsi/si_hw_context.c
src/gallium/drivers/radeonsi/si_pipe.c
src/gallium/drivers/radeonsi/si_pipe.h
src/gallium/drivers/radeonsi/si_shader.h
src/gallium/drivers/radeonsi/si_state_shaders.c