> -----Original Message----- > From: amd-gfx [mailto:amd-gfx-bounces at lists.freedesktop.org] On Behalf > Of Christian König > Sent: Tuesday, April 11, 2017 1:22 PM > To: amd-gfx at lists.freedesktop.org > Cc: jan.burgmeier at unicon-software.com > Subject: [PATCH] drm/radeon: force the UVD DPB into VRAM as well > > From: Christian König <christian.koenig at amd.com> > > Seems to be mandatory for WMV playback. > > Bugs: https://bugs.freedesktop.org/show_bug.cgi?id=100510 > > Signed-off-by: Christian König <christian.koenig at amd.com> Acked-by: Alex Deucher <alexander.deucher at amd.com> > --- > drivers/gpu/drm/radeon/radeon_cs.c | 10 ++++++---- > drivers/gpu/drm/radeon/radeon_uvd.c | 2 +- > 2 files changed, 7 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/radeon/radeon_cs.c > b/drivers/gpu/drm/radeon/radeon_cs.c > index 46e5f8c..cf7169d 100644 > --- a/drivers/gpu/drm/radeon/radeon_cs.c > +++ b/drivers/gpu/drm/radeon/radeon_cs.c > @@ -117,11 +117,13 @@ static int radeon_cs_parser_relocs(struct > radeon_cs_parser *p) > priority = (r->flags & RADEON_RELOC_PRIO_MASK) * 2 > + !!r->write_domain; > > - /* the first reloc of an UVD job is the msg and that must be in > - VRAM, also but everything into VRAM on AGP cards and > older > - IGP chips to avoid image corruptions */ > + /* The first reloc of an UVD job is the msg and that must be in > + * VRAM, the second reloc is the DPB and for WMV that must > be in > + * VRAM as well. Also put everything into VRAM on AGP > cards and older > + * IGP chips to avoid image corruptions > + */ > if (p->ring == R600_RING_TYPE_UVD_INDEX && > - (i == 0 || drm_pci_device_is_agp(p->rdev->ddev) || > + (i <= 1 || drm_pci_device_is_agp(p->rdev->ddev) || > p->rdev->family == CHIP_RS780 || > p->rdev->family == CHIP_RS880)) { > > diff --git a/drivers/gpu/drm/radeon/radeon_uvd.c > b/drivers/gpu/drm/radeon/radeon_uvd.c > index 0cd0e7b..fad4a11 100644 > --- a/drivers/gpu/drm/radeon/radeon_uvd.c > +++ b/drivers/gpu/drm/radeon/radeon_uvd.c > @@ -621,7 +621,7 @@ static int radeon_uvd_cs_reloc(struct > radeon_cs_parser *p, > } > > /* TODO: is this still necessary on NI+ ? */ > - if ((cmd == 0 || cmd == 0x3) && > + if ((cmd == 0 || cmd == 1 || cmd == 0x3) && > (start >> 28) != (p->rdev->uvd.gpu_addr >> 28)) { > DRM_ERROR("msg/fb buffer %LX-%LX out of 256MB > segment!\n", > start, end); > -- > 2.5.0 > > _______________________________________________ > amd-gfx mailing list > amd-gfx at lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/amd-gfx