[PATCH xf86-video-amdgpu] Fix linear check in amdgpu_glamor_share_pixmap_backing

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Jan 22, 2018 at 12:36 PM, Michel Dänzer <michel at daenzer.net> wrote:
> From: Michel Dänzer <michel.daenzer at amd.com>
>
> We were incorrectly interpreting the tiling information.
>
> Reported-by: Marek Olšák <marek.olsak at amd.com>
> Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>

Acked-by: Alex Deucher <alexander.deucher at amd.com>

> ---
>  configure.ac        |  2 +-
>  src/amdgpu_glamor.c | 11 ++++++++++-
>  2 files changed, 11 insertions(+), 2 deletions(-)
>
> diff --git a/configure.ac b/configure.ac
> index 02e19aac5..ea41f41b3 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -71,7 +71,7 @@ XORG_DRIVER_CHECK_EXT(DPMSExtension, xextproto)
>
>  # Checks for libraries.
>  PKG_CHECK_MODULES(LIBDRM, [libdrm >= 2.4.78])
> -PKG_CHECK_MODULES(LIBDRM_AMDGPU, [libdrm_amdgpu >= 2.4.72])
> +PKG_CHECK_MODULES(LIBDRM_AMDGPU, [libdrm_amdgpu >= 2.4.76])
>  PKG_CHECK_MODULES(GBM, [gbm])
>
>  # Obtain compiler/linker options for the driver dependencies
> diff --git a/src/amdgpu_glamor.c b/src/amdgpu_glamor.c
> index 4d9788787..82146a157 100644
> --- a/src/amdgpu_glamor.c
> +++ b/src/amdgpu_glamor.c
> @@ -323,13 +323,22 @@ amdgpu_glamor_share_pixmap_backing(PixmapPtr pixmap, ScreenPtr slave,
>                                    void **handle_p)
>  {
>         ScreenPtr screen = pixmap->drawable.pScreen;
> +       AMDGPUInfoPtr info = AMDGPUPTR(xf86ScreenToScrn(screen));
>         uint64_t tiling_info;
>         CARD16 stride;
>         CARD32 size;
> +       Bool is_linear;
>         int fd;
>
>         tiling_info = amdgpu_pixmap_get_tiling_info(pixmap);
> -       if (AMDGPU_TILING_GET(tiling_info, ARRAY_MODE) != 0) {
> +
> +       if (info->family >= AMDGPU_FAMILY_AI) {
> +               is_linear = AMDGPU_TILING_GET(tiling_info, SWIZZLE_MODE) == 0;
> +       } else {
> +               is_linear = AMDGPU_TILING_GET(tiling_info, ARRAY_MODE) == 1;
> +       }
> +
> +       if (!is_linear) {
>                 PixmapPtr linear;
>
>                 /* We don't want to re-allocate the screen pixmap as
> --
> 2.15.1
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx


[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux