radv: Set the RADEON_SURF_OPTIMIZE_FOR_SPACE flag for images
authorAlex Smith <asmith@feralinteractive.com>
Mon, 17 Jul 2017 10:14:33 +0000 (11:14 +0100)
committerDave Airlie <airlied@redhat.com>
Tue, 18 Jul 2017 06:18:35 +0000 (16:18 +1000)
This looks like a regression from df301237940 ("radv: use
ac_compute_surface"). Before that, the opt4Space addrlib flag was set
to true unless the image has FMASK (ac_compute_surface will similarly
only set that flag for images without FMASK).

This saves multiple gigabytes of VRAM on one of our games, and brings
its VRAM utilisation on RADV in line with AMDGPU-PRO and NVIDIA.

Signed-off-by: Alex Smith <asmith@feralinteractive.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
src/amd/vulkan/radv_image.c

index e6ad31ebaa15dbc2c0b8b4fbcb822a14c8113f4e..f5fb790ddaf9c3728ae7edf0189d0ef6434bb7f2 100644 (file)
@@ -109,6 +109,7 @@ radv_init_surface(struct radv_device *device,
                surface->flags |= RADEON_SURF_SBUFFER;
 
        surface->flags |= RADEON_SURF_HAS_TILE_MODE_INDEX;
+       surface->flags |= RADEON_SURF_OPTIMIZE_FOR_SPACE;
 
        if ((pCreateInfo->usage & (VK_IMAGE_USAGE_TRANSFER_SRC_BIT |
                                   VK_IMAGE_USAGE_STORAGE_BIT)) ||