GNU bug report logs -
#40278
Flickering in Windows 10 (not double buffered)
Previous Next
To reply to this bug, email your comments to 40278 AT debbugs.gnu.org.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#40278
; Package
emacs
.
(Sun, 29 Mar 2020 17:11:03 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Nicolas Bertolo <nicolasbertolo <at> gmail.com>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Sun, 29 Mar 2020 17:11:03 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/html, inline)]
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#40278
; Package
emacs
.
(Sun, 29 Mar 2020 17:26:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 40278 <at> debbugs.gnu.org (full text, mbox):
> Date: Sun, 29 Mar 2020 13:11:20 -0300
> From: Nicolas Bertolo <nicolasbertolo <at> gmail.com>
> Bcc: <nicolasbertolo <at> gmail.com>
>
> 1) Open a long C++ file.
>
> 2) Run (setq mouse-wheel-scroll-amount '(1)).
>
> 3) Mouse the mouse whell up and down fast.
>
> 4) Pay attention to the part of the screen that should show new content.
>
> Sometimes it will flicker a few time before stabilizing.
I don't see it.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#40278
; Package
emacs
.
(Sun, 29 Mar 2020 20:29:01 GMT)
Full text and
rfc822 format available.
Message #11 received at 40278 <at> debbugs.gnu.org (full text, mbox):
> I don't see it.
I'll try to debug my configuration to see what causes it to flicker more.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#40278
; Package
emacs
.
(Sun, 29 Mar 2020 21:00:01 GMT)
Full text and
rfc822 format available.
Message #14 received at 40278 <at> debbugs.gnu.org (full text, mbox):
> I don't see it.
I have found that creating a child frame causes it to flicker a lot more.
Here is a video that shows what happens https://youtu.be/BsUqPpyAvVQ
To reproduce it:
1) Start runemacs -Q
2) Open a big C/C++ file (I used dispextern.h from emacs)
3) Run this code to create the child frame (in the scratch buffer)
(defun open-test ()
(display-buffer-in-child-frame (get-buffer-create "test child-frame")
'((child-frame-parameters . ((width . 20)
(height . 10)
(top . 200)
(left . 100))))))
4) In the C/C++ buffer eval (open-test)
5) Scroll with the mouse wheel up and down.
I don't know if this is the same bug or if it's related.
El dom., 29 mar. 2020 a las 14:25, Eli Zaretskii (<eliz <at> gnu.org>) escribió:
>
> > Date: Sun, 29 Mar 2020 13:11:20 -0300
> > From: Nicolas Bertolo <nicolasbertolo <at> gmail.com>
> > Bcc: <nicolasbertolo <at> gmail.com>
> >
> > 1) Open a long C++ file.
> >
> > 2) Run (setq mouse-wheel-scroll-amount '(1)).
> >
> > 3) Mouse the mouse whell up and down fast.
> >
> > 4) Pay attention to the part of the screen that should show new content.
> >
> > Sometimes it will flicker a few time before stabilizing.
>
> I don't see it.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#40278
; Package
emacs
.
(Mon, 30 Mar 2020 14:07:01 GMT)
Full text and
rfc822 format available.
Message #17 received at 40278 <at> debbugs.gnu.org (full text, mbox):
> From: Nicolas Bértolo <nicolasbertolo <at> gmail.com>
> Date: Sun, 29 Mar 2020 17:58:51 -0300
> Cc: 40278 <at> debbugs.gnu.org
>
> > I don't see it.
>
> I have found that creating a child frame causes it to flicker a lot more.
> Here is a video that shows what happens https://youtu.be/BsUqPpyAvVQ
>
> To reproduce it:
> 1) Start runemacs -Q
> 2) Open a big C/C++ file (I used dispextern.h from emacs)
> 3) Run this code to create the child frame (in the scratch buffer)
>
> (defun open-test ()
> (display-buffer-in-child-frame (get-buffer-create "test child-frame")
> '((child-frame-parameters . ((width . 20)
> (height . 10)
> (top . 200)
> (left . 100))))))
> 4) In the C/C++ buffer eval (open-test)
> 5) Scroll with the mouse wheel up and down.
It doesn't flicker here, sorry.
Does anyone else see this?
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#40278
; Package
emacs
.
(Mon, 30 Mar 2020 16:24:01 GMT)
Full text and
rfc822 format available.
Message #20 received at 40278 <at> debbugs.gnu.org (full text, mbox):
>> To reproduce it:
>> 1) Start runemacs -Q
>> 2) Open a big C/C++ file (I used dispextern.h from emacs)
>> 3) Run this code to create the child frame (in the scratch buffer)
>>
>> (defun open-test ()
>> (display-buffer-in-child-frame (get-buffer-create "test child-frame")
>> '((child-frame-parameters . ((width . 20)
>> (height . 10)
>> (top . 200)
>> (left . 100))))))
>> 4) In the C/C++ buffer eval (open-test)
>> 5) Scroll with the mouse wheel up and down.
>
> It doesn't flicker here, sorry.
>
> Does anyone else see this?
I can see it here, especially on scroll towards the beginning of the
file (Emacs is maxing out the CPU while doing this). It kind of looks
like the rectangle beneath the child frame gets repainted separately
from the rest.
In GNU Emacs 27.0.90 (build 1, x86_64-w64-mingw32)
of 2020-03-30 built on VHOST2
Repository revision: c6e0981b96eaa12c28b70c949ccd6e426c13df4d
Repository branch: emacs-27
Windowing system distributor 'Microsoft Corp.', version 10.0.18363
System Description: Microsoft Windows 10 Home (v10.0.1909.18363.720)
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#40278
; Package
emacs
.
(Mon, 30 Mar 2020 16:40:01 GMT)
Full text and
rfc822 format available.
Message #23 received at 40278 <at> debbugs.gnu.org (full text, mbox):
> From: Noam Postavsky <npostavs <at> gmail.com>
> Cc: Nicolas Bértolo <nicolasbertolo <at> gmail.com>,
> 40278 <at> debbugs.gnu.org
> Date: Mon, 30 Mar 2020 12:23:42 -0400
>
> I can see it here, especially on scroll towards the beginning of the
> file (Emacs is maxing out the CPU while doing this).
If redisplay cannot keep up, you could indeed see partially-redrawn
window. But I didn't understand this was the problem, and it doesn't
sound like "flicker" to me.
> It kind of looks like the rectangle beneath the child frame gets
> repainted separately from the rest.
What do you mean by "beneath" in this context?
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#40278
; Package
emacs
.
(Mon, 30 Mar 2020 17:16:02 GMT)
Full text and
rfc822 format available.
Message #26 received at 40278 <at> debbugs.gnu.org (full text, mbox):
Eli Zaretskii <eliz <at> gnu.org> writes:
>> From: Noam Postavsky <npostavs <at> gmail.com>
>> Cc: Nicolas Bértolo <nicolasbertolo <at> gmail.com>,
>> 40278 <at> debbugs.gnu.org
>> Date: Mon, 30 Mar 2020 12:23:42 -0400
>>
>> I can see it here, especially on scroll towards the beginning of the
>> file (Emacs is maxing out the CPU while doing this).
>
> If redisplay cannot keep up, you could indeed see partially-redrawn
> window. But I didn't understand this was the problem, and it doesn't
> sound like "flicker" to me.
The "flicker" part is that it looks like the window turns momentarily
completely blank before redrawing.
>> It kind of looks like the rectangle beneath the child frame gets
>> repainted separately from the rest.
>
> What do you mean by "beneath" in this context?
There's occasionally a rectangle which seems to repainted slower than
its surroundings. That rectangle is lower down (closer to my desk than
the ceiling) on my monitor than the child frame. Also, I guess the text
it momentarily contains was previously behind the child frame in terms
of z-order (although it's a bit hard to tell because the repainting is
still too fast to really anything).
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#40278
; Package
emacs
.
(Mon, 30 Mar 2020 18:30:01 GMT)
Full text and
rfc822 format available.
Message #29 received at 40278 <at> debbugs.gnu.org (full text, mbox):
> From: Noam Postavsky <npostavs <at> gmail.com>
> Cc: 40278 <at> debbugs.gnu.org, nicolasbertolo <at> gmail.com
> Date: Mon, 30 Mar 2020 13:15:39 -0400
>
> The "flicker" part is that it looks like the window turns momentarily
> completely blank before redrawing.
That could happen if there's nothing in common between the previous
and the new contents of the window. Again, if redisplay cannot keep
up, this is entirely normal, and any flicker related to such situation
is something we cannot do anything about.
> > What do you mean by "beneath" in this context?
>
> There's occasionally a rectangle which seems to repainted slower than
> its surroundings. That rectangle is lower down (closer to my desk than
> the ceiling) on my monitor than the child frame. Also, I guess the text
> it momentarily contains was previously behind the child frame in terms
> of z-order (although it's a bit hard to tell because the repainting is
> still too fast to really anything).
What are the dimensions of that rectangle? Is its width identical to
that of the parent frame, or is it smaller? If smaller, is the width
similar to that of the child frame or different?
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#40278
; Package
emacs
.
(Mon, 30 Mar 2020 19:22:02 GMT)
Full text and
rfc822 format available.
Message #32 received at 40278 <at> debbugs.gnu.org (full text, mbox):
Eli Zaretskii <eliz <at> gnu.org> writes:
>> > What do you mean by "beneath" in this context?
>>
>> There's occasionally a rectangle which seems to repainted slower than
>> its surroundings. That rectangle is lower down (closer to my desk than
>> the ceiling) on my monitor than the child frame. Also, I guess the text
>> it momentarily contains was previously behind the child frame in terms
>> of z-order (although it's a bit hard to tell because the repainting is
>> still too fast to really anything).
>
> What are the dimensions of that rectangle? Is its width identical to
> that of the parent frame, or is it smaller? If smaller, is the width
> similar to that of the child frame or different?
The width is similar (equal, as far as I can tell) to the child frame.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#40278
; Package
emacs
.
(Tue, 31 Mar 2020 08:49:01 GMT)
Full text and
rfc822 format available.
Message #35 received at 40278 <at> debbugs.gnu.org (full text, mbox):
> I can see it here, especially on scroll towards the beginning of the
> file (Emacs is maxing out the CPU while doing this
It maxes out here as well but I do not need to display a child frame for
that purpose. Simply scrolling through dispextern.h suffices. Here it
typically pauses for about ten seconds without any flicker though.
> ). It kind of looks
> like the rectangle beneath the child frame gets repainted separately
> from the rest.
I have no idea why this should be related to scrolling. Does any of
these happen with a normal frame put on top of the window you scroll?
martin
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#40278
; Package
emacs
.
(Tue, 31 Mar 2020 15:52:02 GMT)
Full text and
rfc822 format available.
Message #38 received at 40278 <at> debbugs.gnu.org (full text, mbox):
> I have no idea why this should be related to scrolling. Does any of
> these happen with a normal frame put on top of the window you scroll?
I think it is not possible to input into a frame that is partially hidden (and
thus not focused) by others in Windows. The mouse wheel does nothing and
keyboard inputs go to the topmost window.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#40278
; Package
emacs
.
(Tue, 31 Mar 2020 15:57:02 GMT)
Full text and
rfc822 format available.
Message #41 received at 40278 <at> debbugs.gnu.org (full text, mbox):
> From: Nicolas Bértolo <nicolasbertolo <at> gmail.com>
> Date: Tue, 31 Mar 2020 12:51:37 -0300
> Cc: Noam Postavsky <npostavs <at> gmail.com>, Eli Zaretskii <eliz <at> gnu.org>, 40278 <at> debbugs.gnu.org
>
> > I have no idea why this should be related to scrolling. Does any of
> > these happen with a normal frame put on top of the window you scroll?
>
> I think it is not possible to input into a frame that is partially hidden (and
> thus not focused) by others in Windows. The mouse wheel does nothing and
> keyboard inputs go to the topmost window.
It's possible, but you need to turn on the "active window tracking"
feature. There are tiny programs floating around that allow you to do
that. With that feature turned on, focus follows the mouse, like on X
Window system on Unix.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#40278
; Package
emacs
.
(Tue, 31 Mar 2020 16:11:02 GMT)
Full text and
rfc822 format available.
Message #44 received at 40278 <at> debbugs.gnu.org (full text, mbox):
> It's possible, but you need to turn on the "active window tracking"
> feature. There are tiny programs floating around that allow you to do
> that. With that feature turned on, focus follows the mouse, like on X
> Window system on Unix.
Thank you for the tip!
Here are my results:
Emacs frame partially covered by an Emacs frame: Nothing happens. Mouse input
does not seem to go anywhere.
Emacs frame partially covered by a Windows explorer window: Emacs scrolls
normally, that is, in my case there is some flickering. But nothing like what
happens with a child frame.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#40278
; Package
emacs
.
(Wed, 01 Apr 2020 06:37:01 GMT)
Full text and
rfc822 format available.
Message #47 received at 40278 <at> debbugs.gnu.org (full text, mbox):
> Emacs frame partially covered by an Emacs frame: Nothing happens. Mouse input
> does not seem to go anywhere.
Might be that here I'm using yet another program to handle that case.
'mouse-wheel-follow-mouse' should not be involved but please make sure
that it's t.
> Emacs frame partially covered by a Windows explorer window: Emacs scrolls
> normally, that is, in my case there is some flickering. But nothing like what
> happens with a child frame.
From what Noam described the flickering could be due to the tool bar.
What happens when you write
(defun open-test ()
(display-buffer-in-child-frame
(get-buffer-create "test child-frame")
'((child-frame-parameters . ((tool-bar-lines . 0)
(width . 20)
(height . 10)
(top . 200)
(left . 100))))))
instead?
martin
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#40278
; Package
emacs
.
(Wed, 01 Apr 2020 14:26:01 GMT)
Full text and
rfc822 format available.
Message #50 received at 40278 <at> debbugs.gnu.org (full text, mbox):
>> Emacs frame partially covered by an Emacs frame: Nothing happens. Mouse input
>> does not seem to go anywhere.
Seems to work fine for me. I see the "normal" flickering, no slow-paint
rectangle.
>> Emacs frame partially covered by a Windows explorer window: Emacs scrolls
>> normally, that is, in my case there is some flickering. But nothing like what
>> happens with a child frame.
Same here.
martin rudalics <rudalics <at> gmx.at> writes:
> What happens when you write
>
> (defun open-test ()
> (display-buffer-in-child-frame
> (get-buffer-create "test child-frame")
> '((child-frame-parameters . ((tool-bar-lines . 0)
> (width . 20)
> (height . 10)
> (top . 200)
> (left . 100))))))
Doesn't make a difference, I still see the slow-paint rectangle.
=======================
At any rate, if I've understood the responses from Eli, it sounds like
there isn't any bug here, just that we haven't implemented double
buffering for Windows.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#40278
; Package
emacs
.
(Wed, 01 Apr 2020 20:40:02 GMT)
Full text and
rfc822 format available.
Message #53 received at 40278 <at> debbugs.gnu.org (full text, mbox):
> From what Noam described the flickering could be due to the tool bar.
> What happens when you write
>
> (defun open-test ()
> (display-buffer-in-child-frame
> (get-buffer-create "test child-frame")
> '((child-frame-parameters . ((tool-bar-lines . 0)
> (width . 20)
> (height . 10)
> (top . 200)
> (left . 100))))))
>
> instead?
No difference here.
> At any rate, if I've understood the responses from Eli, it sounds like
> there isn't any bug here, just that we haven't implemented double
> buffering for Windows.
This may be the reason indeed.
Changed bug title to 'Flickering in Windows 10 (not double buffered)' from '27.0.90; Flickering in Windows 10'
Request was from
Noam Postavsky <npostavs <at> gmail.com>
to
control <at> debbugs.gnu.org
.
(Mon, 06 Apr 2020 01:22:02 GMT)
Full text and
rfc822 format available.
Severity set to 'wishlist' from 'normal'
Request was from
Noam Postavsky <npostavs <at> gmail.com>
to
control <at> debbugs.gnu.org
.
(Mon, 06 Apr 2020 01:22:02 GMT)
Full text and
rfc822 format available.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#40278
; Package
emacs
.
(Mon, 16 May 2022 11:54:01 GMT)
Full text and
rfc822 format available.
Message #60 received at 40278 <at> debbugs.gnu.org (full text, mbox):
Nicolas Bértolo <nicolasbertolo <at> gmail.com> writes:
>> At any rate, if I've understood the responses from Eli, it sounds like
>> there isn't any bug here, just that we haven't implemented double
>> buffering for Windows.
>
> This may be the reason indeed.
So now that double buffering is implemented for MS Windows, do you still
see the flicker?
This bug report was last modified 3 years and 36 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.