Subject: bug#32932: 27.0.50; render bugs on macOS Mojave

From: Eli Zaretskii <[email-masked]>
Date: Thu, 01 Nov 2018 22:12:17 +0200

> From: Aaron Jensen <[email-masked]>
> Date: Thu, 1 Nov 2018 12:52:43 -0700
> Cc: [email-masked], [email-masked], [email-masked]
> 
> dispnew.c redraws up to the end of the line in many situations. I
> added the following logging:
> 
>       fprintf (stderr, "clear %d %d %d %d %d %d %d\n", !current_row->enabled_p
>                , desired_row->y != current_row->y
>                , desired_row->ascent != current_row->ascent
>                , desired_row->phys_ascent != current_row->phys_ascent
>                , desired_row->phys_height != current_row->phys_height
>                , desired_row->visible_height != current_row->visible_height
>                , current_row->overlapped_p);
>       fprintf (stderr, "desired\t%d\t%d\t%d\t%d\t%d\n"
>                , desired_row->y
>                , desired_row->ascent
>                , desired_row->phys_ascent
>                , desired_row->phys_height
>                , desired_row->visible_height);
>       fprintf (stderr, "current\t%d\t%d\t%d\t%d\t%d\n"
>                , current_row->y
>                , current_row->ascent
>                , current_row->phys_ascent
>                , current_row->phys_height
>                , current_row->visible_height);
> 
> And when this happens, this is what I get:
> 
> draw_glyphs x: 56 pos: 7 8
> clear 0 0 1 1 1 0 0
> desired 0       15      12      16      19
> current 0       0       0       19      19
> clear 1 0 0 0 0 0 0
> desired 637     20      19      26      28
> current 637     20      19      26      28
> clear 1 0 1 1 1 1 0
> desired 0       318     318     637     637
> current 0       15      15      19      19
> clear 1 0 0 0 0 0 0
> desired 0       15      12      16      19
> current 0       15      12      16      19

Thanks, but this is not enough info, I need also to see the actual
contents of the current and the desired rows.  If they are different,
then clearing is justified.  You can display a glyph row in GDB using
the command pgrowx defined in src/.gdbinit.

And which row is the problematic one: the one at Y = 0 or at Y = 637?

The large numbers for the desired row in the 3rd sample look bogus to
me, unless you have a very tall image there.

> So, the ascent and physics_ascent on the current row are coming back
> as 0. Also, the height is different.

Sounds improbable to me.  Are you sure you caught the right rows?