bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#63187: 30.0.50; Tail of longer lines painted after end of nearby lin


From: Aaron Jensen
Subject: bug#63187: 30.0.50; Tail of longer lines painted after end of nearby lines on macOS
Date: Thu, 8 Jun 2023 22:47:33 -0400

On Thu, Jun 8, 2023 at 10:42 PM Kai Ma <justksqsf@gmail.com> wrote:
>
>
>
> > On Jun 9, 2023, at 01:22, Alan Third <alan@idiocy.org> wrote:
> >
> > On Thu, Jun 08, 2023 at 10:57:43PM +0800, Kai Ma wrote:
> >>
> >>
> >>> On Jun 8, 2023, at 21:42, Kai Ma <justksqsf@gmail.com> wrote:
> >>>
> >>>
> >>>> On Jun 8, 2023, at 20:51, Alan Third <alan@idiocy.org> wrote:
> >>>>
> >>>> I've got two things it could be worth trying to see if they make any
> >>>> difference.
> >>>> Change the CACHE_MAX_SIZE to something greater than 2, probably 4 is a
> >>>> good number. That would rule out some sort of locking problem, as it
> >>>> would reduce the chance a surface would be re-used before it's been
> >>>> sent to the screen.
> >>>>
> >>>> The downside of this is probably going to be an increase in "lag"
> >>>> because it's possible to have more surfaces "in-flight".
> >>>>
> >>>> The other option is to remove this call (nsterm.m:10636):
> >>>>
> >>>> /* Schedule a run of getContext so that if Emacs is idle it will
> >>>>   perform the buffer copy, etc.  */
> >>>> [self performSelectorOnMainThread:@selector (getContext)
> >>>>                       withObject:nil
> >>>>                    waitUntilDone:NO];
> >>>>
> >>>> I think this is harmless, but it's in there as I *assume*, with
> >>>> absolutely no proof, that it will improve performance and it seems
> >>>> possible (but I think unlikely) that it may affect the sequencing of
> >>>> surface operations.
> >>>
> >>> Tested locally. I can confirm that removing
> >>> performSelectorOnMainThread (with CACHE_MAX_SIZE = 2) fixes the
> >>> problem for me. I now observe zero glitches or tearings!
> >>>
> >>
> >> Sorry, I concluded too fast. I can still see tearings, though very
> >> rarely. So this is still not a real fix. :-(
> >
> > Try increasing CACHE_MAX_SIZE too. Tearing would, I believe, be
> > because a surface is being reused while it's still being copied to the
> > VRAM, so you'll see a partially modified output.
> >
> > If increasing CACHE_MAX_SIZE fixes it then there are a couple of
> > possible options we can look at.
>
> Increasing CACHE_MAX_SIZE alone doesn’t seem to help much.
> (Screencast: https://www.youtube.com/watch?v=9YD9jyP-GKw)
>
> Increasing CACHE_MAX_SIZE + Removing performSelectorOnMainThread seems to be 
> better but I can’t be sure.  Just observed:
>
> (1) M-< at the mid of a buffer, but only the first line of the view is 
> refreshed, and other parts were still there.
>
> (2) selecting a region doesn’t always clear the hl-line effect.

What are you doing to make your background translucent? I've never
seen anything nearly as bad as what you have. I've only seen a glitch
maybe once since the last patch (and that may have even been something
else). It makes me wonder if there's something else different/off
about your setup.

Aaron





reply via email to

[Prev in Thread] Current Thread [Next in Thread]