[PATCH] drm/amdgpu: Place new CPU-accessbile BOs in GTT if visible VRAM is full
John Brooks
john at fastquake.com
Sat May 20 03:21:01 UTC 2017
On Sat, May 20, 2017 at 10:27:14AM +0900, Michel Dänzer wrote:
> On 20/05/17 04:23 AM, John Brooks wrote:
> > On Fri, May 19, 2017 at 04:03:28PM +0900, Michel Dänzer wrote:
> >> On 19/05/17 12:04 PM, John Brooks wrote:
> >>> Set GTT as the busy placement for newly created BOs that have the
> >>> AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED flag, so that they don't cause
> >>> established BOs to be evicted from visible VRAM.
> >>
> >> This is an interesting idea, but there are some issues with this patch.
>
> [...]
>
> >>> + flags & AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED) {
> >>> + bo->placement.num_placement = 1;
> >>> + bo->placement.num_busy_placement = 1;
> >>> + bo->placement.busy_placement = &bo->placement.placement[1];
> >>> + }
> >>
> >> The original placements set by amdgpu_fill_placement_to_bo need to be
> >> restored before returning from this function, otherwise I suspect such
> >> BOs which end up being created in GTT will stay there permanently.
> >>
> >
> > I'm curious, what makes you think that the BOs cannot move back to VRAM
> > otherwise? VRAM is still in the placements and prefered/allowed domains, just
> > not in the busy placements.
>
> If there is not enough free space when the BO is created, there probably
> won't be either when it's validated for GPU command streams later.
>
>
> >> Does the patch still help for Dying Light if you fix this?
>
> Please test this. The result should tell us whether the problem with
> Dying Light is really pressure on CPU visible VRAM, or something else.
>
I did some tests. The patch still helps if I restore the old placement values
after ttm_bo_init_reserved. But while doing this, I made another observation
that throws a wrench into things: It *does* kill performance if I remove
AMDGPU_GEM_DOMAIN_GTT from bo->prefered_domains. I think that GTT getting into
prefered_domains was what "fixed" the game this whole time and the BO creation
was irrelevant. Oh well, it was worth a try.
I'll see what else I can find out.
John
>
> --
> Earthling Michel Dänzer | http://www.amd.com
> Libre software enthusiast | Mesa and X developer
More information about the amd-gfx
mailing list