radv: Change memory type order for GPUs without dedicated VRAM
authorAlex Smith <asmith@feralinteractive.com>
Sun, 2 Jun 2019 10:32:06 +0000 (11:32 +0100)
committerBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Sat, 24 Aug 2019 15:37:47 +0000 (17:37 +0200)
commitfe0ec41c4d36fd5a82e7579d89e34cce7423c4e5
treeedd69f6085a8d679e26ed61f984f5ab7c6c4f4d1
parent681e99d11cf85638dc7a163c9096c6ea6eab1b62
radv: Change memory type order for GPUs without dedicated VRAM

Put the uncached GTT type at a higher index than the visible VRAM type,
rather than having GTT first.

When we don't have dedicated VRAM, we don't have a non-visible VRAM
type, and the property flags for GTT and visible VRAM are identical.
According to the spec, for types with identical flags, we should give
the one with better performance a lower index.

Previously, apps which follow the spec guidance for choosing a memory
type would have picked the GTT type in preference to visible VRAM (all
Feral games will do this), and end up with lower performance.

On a Ryzen 5 2500U laptop (Raven Ridge), this improves average FPS in
the Rise of the Tomb Raider benchmark by up to ~30%. Tested a couple of
other (Feral) games and saw similar improvement on those as well.

Signed-off-by: Alex Smith <asmith@feralinteractive.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Cc: 19.2 <mesa-stable@lists.freedesktop.org>
(Bas: CCing this to 19.2-rc due to high impact and limited complexity)
src/amd/vulkan/radv_device.c