[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