[PATCH 1/2] present: Ignore TILE_SPLIT tiling flags in page flip check.

Alex Deucher alexdeucher at gmail.com
Fri Jun 5 06:10:07 PDT 2015


On Fri, Jun 5, 2015 at 8:33 AM, Mario Kleiner
<mario.kleiner.de at gmail.com> wrote:
> Mismatched tile split bits between source pixmap
> and target screen pixmap caused present_check_flip
> to reject page flips on at least RV730 (Radeon HD 4670).
> (Source pixmap had 0x1, Target screen pixmap had 0x6000001)
>
> Mask those tile split bits out to make the check pass and
> page flipping under DRI3/Present work.
>
> Maybe we should mask out more bits?

I'm not sure if it's safe to do that.  Tile split is part of the
tiling configuration in the display registers on evergreen and newer.
It's probably better to try and figure out why the surfaces end up
with different tiling parameters and fix that.

Alex

>
> Signed-off-by: Mario Kleiner <mario.kleiner.de at gmail.com>
> ---
>  src/radeon_present.c | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/src/radeon_present.c b/src/radeon_present.c
> index 2626044..cbe3ac4 100644
> --- a/src/radeon_present.c
> +++ b/src/radeon_present.c
> @@ -207,6 +207,10 @@ radeon_present_get_pixmap_tiling_flags(RADEONInfoPtr info, PixmapPtr pixmap)
>  {
>      uint32_t tiling_flags = radeon_get_pixmap_tiling_flags(pixmap);
>
> +    /* Ignore TILE_SPLIT flags. */
> +    tiling_flags &= ~(RADEON_TILING_EG_TILE_SPLIT_MASK <<
> +                     RADEON_TILING_EG_TILE_SPLIT_SHIFT);
> +
>      /* Micro tiling is always enabled with macro tiling on >= R600, so we
>       * can ignore the micro tiling bit in that case
>       */
> --
> 1.9.1
>
> _______________________________________________
> xorg-driver-ati mailing list
> xorg-driver-ati at lists.x.org
> http://lists.x.org/mailman/listinfo/xorg-driver-ati


More information about the xorg-driver-ati mailing list