radv: Improve spilling on discrete GPUs.

The linked bug gets better performance and I personally verified
better spilling performance on HZD so let us make this step for now.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3183
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3698
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
CC: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6833>
This commit is contained in:
Bas Nieuwenhuizen 2020-09-23 03:04:27 +02:00 committed by Marge Bot
parent 8a9162c85a
commit 862b6a9a97
1 changed files with 10 additions and 2 deletions

View File

@ -445,9 +445,17 @@ radv_amdgpu_winsys_bo_create(struct radeon_winsys *_ws,
* GTT(RAM) usage, which is shared with the OS, allow VRAM
* placements too. The idea is not to use VRAM usefully, but
* to use it so that it's not unused and wasted.
*
* Furthermore, even on discrete GPUs this is beneficial. If
* both GTT and VRAM are set then AMDGPU still prefers VRAM
* for the initial placement, but it makes the buffers
* spillable. Otherwise AMDGPU tries to place the buffers in
* VRAM really hard to the extent that we are getting a lot
* of unnecessary movement. This helps significantly when
* e.g. Horizon Zero Dawn allocates more memory than we have
* VRAM.
*/
if (!ws->info.has_dedicated_vram)
request.preferred_heap |= AMDGPU_GEM_DOMAIN_GTT;
request.preferred_heap |= AMDGPU_GEM_DOMAIN_GTT;
}
if (initial_domain & RADEON_DOMAIN_GTT)