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

Deucher, Alexander Alexander.Deucher at amd.com
Tue Apr 11 18:28:52 UTC 2017


> -----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


More information about the amd-gfx mailing list