unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#39790: 26.3; Painting text on macOS has becoming unbearably slow
@ 2020-02-25 18:39 John Wiegley
  2020-02-25 21:16 ` Alan Third
  0 siblings, 1 reply; 6+ messages in thread
From: John Wiegley @ 2020-02-25 18:39 UTC (permalink / raw)
  To: 39790; +Cc: Alan Third

I use Emacs master as a dedicated ERC application window on macOS 10.15
(Catalina).

I've found that with current master (at least, up to the commit before the "no
text" bug I reported earlier), text redisplays *very very* slowly. In fact, I
can type faster than Emacs can display letters to me, hearkening back to ye
olde days of 110 baud modems.

I've done a Git bisect and discovered that this slow text behavior was
introduced in one of two commits. Since one of these does not compile, I could
not identify which one specifically, but it's either of:

3ad7813296760cecfd3fd35a5fb47930d61a573d
f674c905dc98a4617c40c4bc115462b4ad2ebfc2

Thus, 3ad7813296^ has fast text, as I've grown to expect, while f674c905dc has
very slow text.

The two commits are described as follows:

commit 3ad7813296760cecfd3fd35a5fb47930d61a573d (HEAD, refs/bisect/skip-3ad7813296760cecfd3fd35a5fb>
Author: Alan Third <alan@idiocy.org>
Date:   Sun Jul 28 15:19:19 2019 +0100

    Revert "Make all NS drawing be done from drawRect"

    This reverts commit 7946445962372c4255180af45cb7c857f1b0b5fa.

commit f674c905dc98a4617c40c4bc115462b4ad2ebfc2 (refs/bisect/bad)
Author: Alan Third <address@hidden>
Date:   Sun Feb 10 10:59:29 2019 +0000

    Draw to offscreen buffer on macOS

    * src/nsfns.m (x_set_background_color): Clear the frame after changing
    the background color, not before.
    * src/nsterm.h (drawingBuffer): New variable.
    ([EmacsView focusOnDrawingBuffer]):
    ([EmacsView copyRect:to:]):
    ([EmacsView createDrawingBufferWithRect:]): New methods.
    * src/nsterm.m (ns_update_begin):
    (ns_update_end):
    (ns_focus):
    (ns_unfocus): Handle drawing to offscreen buffer.
    (ns_clip_to_row): Use ns_row_rect.
    (ns_copy_bits): Remove unused function.
    (ns_scroll_run):
    (ns_shift_glyphs_for_insert): Use new scrolling method.
    (ns_draw_fringe_bitmap):
    (ns_dumpglyphs_image): When drawing to the offscreen buffer, flip
    images so they appear the right way up.
    (ns_dumpglyphs_stretch): Remove unnecessary code.
    (ns_draw_window_cursor): Don't disable screen updates.
    ([EmacsView updateFrameSize:]): Update the size of the offscreen
    buffer.
    ([EmacsView initFrameFromEmacs:]): Create offscreen buffer.
    ([EmacsView windowDidChangeBackingProperties:]):
    ([EmacsView createDrawingBufferWithRect:]):
    ([EmacsView focusOnDrawingBuffer]):
    ([EmacsView copyRect]): New methods.
    ([EmacsView viewWillDraw]): Remove method as it no longer does
    anything useful.
    ([EmacsView drawRect:]): Handle drawing from offscreen buffer.

Were a betting man, I'd guess the latter was the cause...

-- 
John Wiegley                  GPG fingerprint = 4710 CF98 AF9B 327B B80F
http://newartisans.com                          60E1 46C4 BD1A 7AC1 4BA2





^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2021-09-09 15:22 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-25 18:39 bug#39790: 26.3; Painting text on macOS has becoming unbearably slow John Wiegley
2020-02-25 21:16 ` Alan Third
2020-04-10 17:32   ` John Wiegley
2020-04-16 18:21     ` Alan Third
2021-08-11 12:32       ` Lars Ingebrigtsen
2021-09-09 15:22         ` Lars Ingebrigtsen

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).