Commit 8f12bbe6 authored by Christian König's avatar Christian König Committed by Alex Deucher

drm/radeon: force the UVD DPB into VRAM as well

Seems to be mandatory for WMV playback.

Bugs: https://bugs.freedesktop.org/show_bug.cgi?id=100510Signed-off-by: default avatarChristian König <christian.koenig@amd.com>
Acked-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 203eb0cb
...@@ -117,11 +117,13 @@ static int radeon_cs_parser_relocs(struct radeon_cs_parser *p) ...@@ -117,11 +117,13 @@ static int radeon_cs_parser_relocs(struct radeon_cs_parser *p)
priority = (r->flags & RADEON_RELOC_PRIO_MASK) * 2 priority = (r->flags & RADEON_RELOC_PRIO_MASK) * 2
+ !!r->write_domain; + !!r->write_domain;
/* the first reloc of an UVD job is the msg and that must be in /* 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 * VRAM, the second reloc is the DPB and for WMV that must be in
IGP chips to avoid image corruptions */ * 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 && if (p->ring == R600_RING_TYPE_UVD_INDEX &&
(i == 0 || pci_find_capability(p->rdev->ddev->pdev, (i <= 0 || pci_find_capability(p->rdev->ddev->pdev,
PCI_CAP_ID_AGP) || PCI_CAP_ID_AGP) ||
p->rdev->family == CHIP_RS780 || p->rdev->family == CHIP_RS780 ||
p->rdev->family == CHIP_RS880)) { p->rdev->family == CHIP_RS880)) {
......
...@@ -621,7 +621,7 @@ static int radeon_uvd_cs_reloc(struct radeon_cs_parser *p, ...@@ -621,7 +621,7 @@ static int radeon_uvd_cs_reloc(struct radeon_cs_parser *p,
} }
/* TODO: is this still necessary on NI+ ? */ /* 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)) { (start >> 28) != (p->rdev->uvd.gpu_addr >> 28)) {
DRM_ERROR("msg/fb buffer %LX-%LX out of 256MB segment!\n", DRM_ERROR("msg/fb buffer %LX-%LX out of 256MB segment!\n",
start, end); start, end);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment