[Mesa-dev] [PATCH] winsys/amdgpu: don't set GTT with GDS & OA placements on APUs

Marek Olšák maraeo at gmail.com
Tue Apr 16 14:18:39 UTC 2019


On Tue, Apr 16, 2019 at 5:34 AM Michel Dänzer <michel at daenzer.net> wrote:

> On 2019-04-15 7:21 p.m., Marek Olšák wrote:
> > From: Marek Olšák <marek.olsak at 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.daenzer at amd.com>
>
>
> --
> Earthling Michel Dänzer               |              https://www.amd.com
> Libre software enthusiast             |             Mesa and X developer
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20190416/d350ffb5/attachment-0001.html>


More information about the mesa-dev mailing list