[PATCH] drm/amdgpu: fix radv vulkan fps drop after s3 resume

Christian König ckoenig.leichtzumerken at gmail.com
Wed Aug 18 08:58:46 UTC 2021


Am 17.08.21 um 20:26 schrieb Mohan Marimuthu, Yogesh:
>
> [Public]
>
>
> [Why]
>
> After s3, In radv there is huge fps drop in games. This is because
>
> when memory is allocated using radv_amdgpu_winsys_bo_create()
>
> with both AMDGPU_GEM_DOMAIN_VRAM and AMDGPU_GEM_DOMAIN_GTT domains
>
> set, the kernel memory management after resume fails to move the data
>
> back to VRAM. In kernel memory management, ttm_bo_mem_compat()
>
> function returns true and hence data is not moved back to VRAM.
>
> [How]
>
> Implement the idea suggested by Christian Koenig. During suspend
>
> move the data to system RAM instead of GTT. Due to this 
> ttm_bo_mem_compat()
>
> will return false and data will be moved back to VRAM.
>
> Signed-off-by: Christian König christian.koenig at amd.com 
> <mailto:christian.koenig at amd.com>
>

Suggested-by: would be better here since I wasn't involved in the coding.

> Signed-off-by: Yogesh mohan marimuthu yogesh.mohanmarimuthu at amd.com 
> <mailto:yogesh.mohanmarimuthu at amd.com>
>

Reviewed-by: Christian König <christian.koenig at amd.com>

> ---
>
> drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 8 +++++++-
>
> 1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c 
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
>
> index 446943e32..44ec59998 100644
>
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
>
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
>
> @@ -136,7 +136,13 @@ static void amdgpu_evict_flags(struct 
> ttm_buffer_object *bo,
>
>                             return;
>
>                case TTM_PL_VRAM:
>
> -                            if (!adev->mman.buffer_funcs_enabled) {
>
> +                           /* Move data to system memory for S3 so 
> that while resume
>
> +                           * ttm_bo_mem_compat() will return false 
> and data will be
>
> +                           * moved back to VRAM also in case of bo 
> with both
>
> +                           * AMDGPU_GEM_DOMAIN_GTT and 
> AMDGPU_GEM_DOMAIN_VRAM domain
>
> +                           * set in bo->preferred_domains.
>
> +                           */
>
> +                           if (!adev->mman.buffer_funcs_enabled || 
> adev->in_s3) {
>
> /* Move to system memory */
>
> amdgpu_bo_placement_from_domain(abo, AMDGPU_GEM_DOMAIN_CPU);
>
>                             } else if 
> (!amdgpu_gmc_vram_full_visible(&adev->gmc) &&
>
> -- 
>
> 2.25.1
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/amd-gfx/attachments/20210818/a3c9c96a/attachment.htm>


More information about the amd-gfx mailing list