On Tue, Apr 16, 2019 at 5:34 AM Michel Dänzer <mic...@daenzer.net> wrote:
> On 2019-04-15 7:21 p.m., Marek Olšák wrote: > > From: Marek Olšák <marek.ol...@amd.com> > > > > --- > > src/gallium/winsys/amdgpu/drm/amdgpu_bo.c | 20 +++++++++++--------- > > 1 file changed, 11 insertions(+), 9 deletions(-) > > > > diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c > b/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c > > index c1863057370..09cf9247755 100644 > > --- a/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c > > +++ b/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c > > @@ -471,37 +471,39 @@ static struct amdgpu_winsys_bo > *amdgpu_create_bo(struct amdgpu_winsys *ws, > > return NULL; > > } > > > > if (heap >= 0) { > > pb_cache_init_entry(&ws->bo_cache, &bo->u.real.cache_entry, > &bo->base, > > heap); > > } > > request.alloc_size = size; > > request.phys_alignment = alignment; > > > > - if (initial_domain & RADEON_DOMAIN_VRAM) > > + if (initial_domain & RADEON_DOMAIN_VRAM) { > > request.preferred_heap |= AMDGPU_GEM_DOMAIN_VRAM; > > + > > + /* Since VRAM and GTT have almost the same performance on APUs, > we could > > + * just set GTT. However, in order to decrease GTT(RAM) usage, > which is > > + * shared with the OS, allow VRAM placements too. The idea is not > to use > > + * VRAM usefully, but to use it so that it's not unused and > wasted. > > + */ > > + if (!ws->info.has_dedicated_vram) > > + request.preferred_heap |= AMDGPU_GEM_DOMAIN_GTT; > > + } > > + > > if (initial_domain & RADEON_DOMAIN_GTT) > > request.preferred_heap |= AMDGPU_GEM_DOMAIN_GTT; > > if (initial_domain & RADEON_DOMAIN_GDS) > > request.preferred_heap |= AMDGPU_GEM_DOMAIN_GDS; > > if (initial_domain & RADEON_DOMAIN_OA) > > request.preferred_heap |= AMDGPU_GEM_DOMAIN_OA; > > > > - /* Since VRAM and GTT have almost the same performance on APUs, we > could > > - * just set GTT. However, in order to decrease GTT(RAM) usage, which > is > > - * shared with the OS, allow VRAM placements too. The idea is not to > use > > - * VRAM usefully, but to use it so that it's not unused and wasted. > > - */ > > - if (!ws->info.has_dedicated_vram) > > - request.preferred_heap |= AMDGPU_GEM_DOMAIN_GTT; > > - > > if (flags & RADEON_FLAG_NO_CPU_ACCESS) > > request.flags |= AMDGPU_GEM_CREATE_NO_CPU_ACCESS; > > if (flags & RADEON_FLAG_GTT_WC) > > request.flags |= AMDGPU_GEM_CREATE_CPU_GTT_USWC; > > if (flags & RADEON_FLAG_NO_INTERPROCESS_SHARING && > > ws->info.has_local_buffers) > > request.flags |= AMDGPU_GEM_CREATE_VM_ALWAYS_VALID; > > if (ws->zero_all_vram_allocs && > > (request.preferred_heap & AMDGPU_GEM_DOMAIN_VRAM)) > > request.flags |= AMDGPU_GEM_CREATE_VRAM_CLEARED; > > > > Does this fix a problem which could be mentioned in the commit log? > Yes but the driver doesn't use GDS, so it doesn't matter. Marek > Either way, > > Reviewed-by: Michel Dänzer <michel.daen...@amd.com> > > > -- > Earthling Michel Dänzer | https://www.amd.com > Libre software enthusiast | Mesa and X developer >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev