[PATCH] drm/amdgpu: Raven: don't allow mixing GTT and VRAM
Brian Geffon
bgeffon at google.com
Wed Jul 16 16:40:15 UTC 2025
On Wed, Jul 16, 2025 at 12:33 PM Alex Deucher <alexdeucher at gmail.com> wrote:
>
> On Wed, Jul 16, 2025 at 12:18 PM Brian Geffon <bgeffon at google.com> wrote:
> >
> > Commit 81d0bcf99009 ("drm/amdgpu: make display pinning more flexible (v2)")
> > allowed for newer ASICs to mix GTT and VRAM, this change also noted that
> > some older boards, such as Stoney and Carrizo do not support this.
> > It appears that at least one additional ASIC does not support this which
> > is Raven.
> >
> > We observed this issue when migrating a device from a 5.4 to 6.6 kernel
> > and have confirmed that Raven also needs to be excluded from mixing GTT
> > and VRAM.
>
> Can you elaborate a bit on what the problem is? For carrizo and
> stoney this is a hardware limitation (all display buffers need to be
> in GTT or VRAM, but not both). Raven and newer don't have this
> limitation and we tested raven pretty extensively at the time.
Thanks for taking the time to look. We have automated testing and a
few igt gpu tools tests failed and after debugging we found that
commit 81d0bcf99009 is what introduced the failures on this hardware
on 6.1+ kernels. The specific tests that fail are kms_async_flips and
kms_plane_alpha_blend, excluding Raven from this sharing of GTT and
VRAM buffers resolves the issue.
Brian
>
>
> Alex
>
> >
> > Fixes: 81d0bcf99009 ("drm/amdgpu: make display pinning more flexible (v2)")
> > Cc: Luben Tuikov <luben.tuikov at amd.com>
> > Cc: Christian König <christian.koenig at amd.com>
> > Cc: Alex Deucher <alexander.deucher at amd.com>
> > Cc: stable at vger.kernel.org # 6.1+
> > Tested-by: Thadeu Lima de Souza Cascardo <cascardo at igalia.com>
> > Signed-off-by: Brian Geffon <bgeffon at google.com>
> > ---
> > drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 3 ++-
> > 1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
> > index 73403744331a..5d7f13e25b7c 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
> > @@ -1545,7 +1545,8 @@ uint32_t amdgpu_bo_get_preferred_domain(struct amdgpu_device *adev,
> > uint32_t domain)
> > {
> > if ((domain == (AMDGPU_GEM_DOMAIN_VRAM | AMDGPU_GEM_DOMAIN_GTT)) &&
> > - ((adev->asic_type == CHIP_CARRIZO) || (adev->asic_type == CHIP_STONEY))) {
> > + ((adev->asic_type == CHIP_CARRIZO) || (adev->asic_type == CHIP_STONEY) ||
> > + (adev->asic_type == CHIP_RAVEN))) {
> > domain = AMDGPU_GEM_DOMAIN_VRAM;
> > if (adev->gmc.real_vram_size <= AMDGPU_SG_THRESHOLD)
> > domain = AMDGPU_GEM_DOMAIN_GTT;
> > --
> > 2.50.0.727.gbf7dc18ff4-goog
> >
More information about the dri-devel
mailing list