emacs-devel
[Top][All Lists]
Advanced

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

Re: Redisplay issue


From: Yuan MEI
Subject: Re: Redisplay issue
Date: Sun, 29 Nov 2015 15:35:04 -0800

> I don't understand how Emacs could redraw only partially, if it
> received the correct coordinates of the exposed region.  I might be
> able to understand how nothing could be redrawn, but partially?..
> There's something I'm missing here.
>
> Can you build your own Emacs?  The display engine can produce a trace
> of what it does, but it isn't compiled by default.  If you can build
> Emacs, then please configure with --enable-checking='yes,glyphs', then
> type "M-x trace-redisplay RET" inside Emacs, and post here everything
> it outputs to stderr starting with "expose_frame" when you succeed to
> reproduce this again.
>
> If you cannot build Emacs, then perhaps you could step with a debugger
> inside expose_frame and its subroutines, and tell what's going one
> there.

This is when redisplay works normally:

>>> right after window exposure

redisplay_preserve_echo_area (8)
redisplay_internal 0
0x299e030 ( SPEEDBAR): same window start
0x299e030 ( SPEEDBAR): 1
0x1383e60 (*GNU Emacs*): same window start
0x1383e60 (*GNU Emacs*): 1
redisplay_preserve_echo_area (9)
redisplay_internal 0
expose_frame (0, 0, 170, 1026)
expose_window (1, 1, 168, 1024)
expose_window (1, 0, 168, 0)
expose_window (1, 0, 168, 0)
expose_frame (0, 0, 818, 1026)
expose_window (1, 17, 816, 992)
expose_window (1, 1009, 816, 16)
expose_window (1, 16, 816, 0)
expose_window (1, 0, 816, 16)

>>> some time pause here, although nothing else (mouse is outside of Emacs, no 
>>> mouse movement or key press)

redisplay_preserve_echo_area (8)
redisplay_internal 0
redisplay_preserve_echo_area (9)
redisplay_internal 0
0x299e030 ( SPEEDBAR): same window start
0x299e030 ( SPEEDBAR): 1
0x1383e60 (*GNU Emacs*): same window start
0x1383e60 (*GNU Emacs*): 1

This is when partial redraw happened:

redisplay_preserve_echo_area (8)
redisplay_internal 0
0x299e030 ( SPEEDBAR): same window start
0x299e030 ( SPEEDBAR): 1
0x1383e60 (*GNU Emacs*): same window start
0x1383e60 (*GNU Emacs*): 1
redisplay_preserve_echo_area (9)
redisplay_internal 0
expose_frame (0, 0, 170, 1026)
expose_window (1, 1, 168, 1024)
expose_window (1, 0, 168, 0)
expose_window (1, 0, 168, 0)
expose_frame (0, 0, 818, 1026)
expose_window (1, 17, 816, 992)
expose_window (1, 1009, 816, 16)
expose_window (1, 16, 816, 0)
expose_window (1, 0, 816, 16)
redisplay_preserve_echo_area (8)
redisplay_internal 0
redisplay_preserve_echo_area (9)
redisplay_internal 0
0x299e030 ( SPEEDBAR): same window start
0x299e030 ( SPEEDBAR): 1
0x1383e60 (*GNU Emacs*): same window start
0x1383e60 (*GNU Emacs*): 1
redisplay_preserve_echo_area (8)
redisplay_internal 0
0x299e030 ( SPEEDBAR): same window start
0x299e030 ( SPEEDBAR): 1
0x1383e60 (*GNU Emacs*): same window start
0x1383e60 (*GNU Emacs*): 1
redisplay_preserve_echo_area (9)
redisplay_internal 0
redisplay_preserve_echo_area (8)
redisplay_internal 0
redisplay_preserve_echo_area (9)
redisplay_internal 0
0x299e030 ( SPEEDBAR): same window start
0x299e030 ( SPEEDBAR): 1
0x1383e60 (*GNU Emacs*): same window start
0x1383e60 (*GNU Emacs*): 1

>>> I switched to another virtual desktop then came back, redraw remained 
>>> incorrect but the following showed up in the log

redisplay_preserve_echo_area (9)
redisplay_internal 0
expose_frame (0, 0, 170, 1026)
expose_window (1, 1, 168, 1024)
expose_window (1, 0, 168, 0)
expose_window (1, 0, 168, 0)
expose_frame (0, 0, 818, 1026)
expose_window (1, 17, 816, 992)
expose_window (1, 1009, 816, 16)
expose_window (1, 16, 816, 0)
expose_window (1, 0, 816, 16)

>>> switched out and back again, finding the entire frame showing only the 
>>> background color, no menu or status bar

redisplay_preserve_echo_area (8)
redisplay_internal 0
redisplay_preserve_echo_area (9)
redisplay_internal 0
0x299e030 ( SPEEDBAR): same window start
0x299e030 ( SPEEDBAR): 1
0x1383e60 (*GNU Emacs*): same window start
0x1383e60 (*GNU Emacs*): 1
expose_frame (0, 0, 170, 1026)
expose_window (1, 1, 168, 1024)
expose_window (1, 0, 168, 0)
expose_window (1, 0, 168, 0)
expose_frame (0, 0, 818, 1026)
expose_window (1, 17, 816, 992)
expose_window (1, 1009, 816, 16)
expose_window (1, 16, 816, 0)
expose_window (1, 0, 816, 16)

>>> a few seconds of time pause, then a few glyphs showed up in the status bar

redisplay_preserve_echo_area (8)
redisplay_internal 0
0x299e030 ( SPEEDBAR): same window start
0x299e030 ( SPEEDBAR): 1
0x1383e60 (*GNU Emacs*): same window start
0x1383e60 (*GNU Emacs*): 1
redisplay_preserve_echo_area (9)
redisplay_internal 0

Any ideas?

Thanks,

Yuan



reply via email to

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