From: Dmitrii Kuragin via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
To: Eli Zaretskii <eliz@gnu.org>
Cc: "Gerd Möllmann" <gerd.moellmann@gmail.com>, 57434@debbugs.gnu.org
Subject: bug#57434: 28.1.91; Terminal Emacs Mac OS flickering.
Date: Tue, 30 Aug 2022 09:19:42 -0700 [thread overview]
Message-ID: <CALqSXk5yojUHkTOERHCYH=0NOvmvak+Fig1FAboxjjycRuvHAQ@mail.gmail.com> (raw)
In-Reply-To: <83wnaqugvh.fsf@gnu.org>
[-- Attachment #1: Type: text/plain, Size: 5720 bytes --]
`tty->TS_ins_line` (al) is supprted.
`tty->TS_ins_multi_lines` (AL) is supprted.
`tty->TS_del_line` (dl) is supprted.
`tty->TS_del_multi_lines` (DL) is supprted.
to verify that I used `tput <cap_name>`.
I think, that is sufficient for `tty->line_ins_del_ok` to be true, but fo
completeness:
`tty->TS_fwd_scroll` (sf) is supprted.
`tty->TS_rev_scroll` (sr) is supprted.
`tty->TS_set_window` (wi) is NOT supprted.
`tty->TS_set_scroll_region` (cs) is supprted.
`tty->TS_set_scroll_region_1` (cS) is NOT supprted.
BUt I do not know how to verify `tty->Wcm->cm_abs`.
```
tty->scroll_region_ok
= (tty->Wcm->cm_abs
&& (tty->TS_set_window || tty->TS_set_scroll_region ||
tty->TS_set_scroll_region_1));
```
```
tty->line_ins_del_ok
= (((tty->TS_ins_line || tty->TS_ins_multi_lines)
&& (tty->TS_del_line || tty->TS_del_multi_lines))
|| (tty->scroll_region_ok
&& tty->TS_fwd_scroll && tty->TS_rev_scroll));
```
BTW, here's a video with what I have with "-Q", it still flickers:
https://drive.google.com/file/d/1Yq2QFWHR6CHkoM4buEokV6p3a1uOI8ao/view?usp=sharing
On Tue, Aug 30, 2022 at 4:09 AM Eli Zaretskii <eliz@gnu.org> wrote:
> > From: Gerd Möllmann <gerd.moellmann@gmail.com>
> > Cc: Eli Zaretskii <eliz@gnu.org>, 57434@debbugs.gnu.org
> > Date: Tue, 30 Aug 2022 08:09:33 +0200
> >
> > Dmitrii Kuragin <kuragin@google.com> writes:
> >
> > > So far:
> > > ```
> > > :~/Desktop% tput al; echo $?
> > > 0
> > > :~/Desktop% tput AL; echo $?
> > > 1%dL0
> > > :~/Desktop% tput dl; echo $?
> > > 0
> > > :~/Desktop% tput DL; echo $?
> > > 1%dM0
> > > :~/Desktop% tput sf; echo $?
> > >
> > > 0
> > > 0~/Desktop% tput sr; echo $?
> > > :~/Desktop% tput wi; echo $?
> > > tput: unknown terminfo capability 'wi'
> > > 4
> > > :~/Desktop% tput cs; echo $?
> > > %p1%d;%p2%dr0
> > > :~/Desktop% tput cS; echo $?
> > > tput: unknown terminfo capability 'cS'
> > > 4
> > > ```
> >
> > Same here.
>
> Thanks.
>
> But I'm quite confused by all of this, because you don't show all the
> relevant capabilities, AFAICT.
>
> We have in term.c:
>
> tty->scroll_region_ok
> = (tty->Wcm->cm_abs
> && (tty->TS_set_window || tty->TS_set_scroll_region ||
> tty->TS_set_scroll_region_1));
>
> tty->line_ins_del_ok
> = (((tty->TS_ins_line || tty->TS_ins_multi_lines)
> && (tty->TS_del_line || tty->TS_del_multi_lines))
> || (tty->scroll_region_ok
> && tty->TS_fwd_scroll && tty->TS_rev_scroll));
>
> Please try all of the relevant capabilities and tell me which ones are
> supported and which aren't. (Please also mention both the capability
> string and its term.c flag name, so that I shouldn't need to jump
> back-and-forth in the source looking up each one to understand what it
> means.)
>
> Then we have in dispnew.c:
>
> /* If we cannot insert/delete lines, it's no use trying it. */
> if (!FRAME_LINE_INS_DEL_OK (f))
> inhibit_id_p = 1;
> [...]
> /* Try doing i/d line, if not yet inhibited. */
> if (!inhibit_id_p && i < desired_matrix->nrows)
> force_p |= scrolling (f);
>
> Which means that 'scrolling', and thus 'scrolling_1' (where the
> problem happens) will not be called if the line_ins_del_ok flag is not
> set.
>
> Furthermore, we have in scrolling_1:
>
> if (FRAME_SCROLL_REGION_OK (frame))
> {
> calculate_direct_scrolling (frame, matrix, window_size,
> unchanged_at_bottom,
> draw_cost, old_draw_cost,
> old_hash, new_hash, free_at_end);
> do_direct_scrolling (frame, frame->current_matrix,
> matrix, window_size, unchanged_at_top);
> }
> else
> {
> calculate_scrolling (frame, matrix, window_size, unchanged_at_bottom,
> draw_cost, old_hash, new_hash,
> free_at_end);
> do_scrolling (frame,
> frame->current_matrix, matrix, window_size,
> unchanged_at_top);
> }
>
> which means do_direct_scrolling (which causes the problem) will not be
> called if the terminal's scroll_region_ok flag is not set.
>
> So given all of this, can you tell whether Emacs does TRT here? That
> is:
>
> . are all the capabilities that are supposed to be available for
> these two flags are indeed available?
> . do we need to check any additional capabilities, which are in fact
> used in the problematic scenario, but not tested as part of
> setting these two flags?
>
> Assuming that Emacs does TRT, i.e. sets the flags correctly and uses
> only the capabilities that are conditions for the flags set, then the
> next important question is: why doesn't Gerd see the flickering on a
> very similar system and the same terminal emulator? Is it possible
> that some other local software configuration on Dmitrii's machine
> causes this, directly or indirectly? E.g., Dmitrii, do you have some
> display-related software/driver that has some "optimization" features
> turned on? If so, can you turn them off and try again?
>
> Thanks.
>
--
*If you get an email from me outside of the 9-5 it is *not* because I'm
always on or expect an immediate response from you; it is because of work
flexibility
<http://www.inc.com/john-boitnott/how-flexible-hours-can-create-a-better-work-life-balance.html>
. Evening and weekend emails are a sign I allocated some regular working
hours for other things (such as family, gym, friends,...). And I encourage
you to feel free to do the same.
[-- Attachment #2: Type: text/html, Size: 8414 bytes --]
next prev parent reply other threads:[~2022-08-30 16:19 UTC|newest]
Thread overview: 97+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-26 16:54 bug#57434: 28.1.91; Terminal Emacs Mac OS flickering Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-27 5:34 ` Gerd Möllmann
2022-08-27 5:41 ` Gerd Möllmann
2022-08-27 15:03 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-27 15:46 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-27 15:58 ` Eli Zaretskii
2022-08-27 16:01 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-27 16:14 ` Eli Zaretskii
2022-08-29 14:18 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-29 14:38 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-29 16:04 ` Eli Zaretskii
2022-08-29 16:05 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-29 16:07 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-29 16:27 ` Eli Zaretskii
2022-08-29 15:15 ` Gerd Möllmann
2022-08-29 16:22 ` Eli Zaretskii
2022-08-29 17:14 ` Gerd Möllmann
2022-08-29 18:24 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-29 18:57 ` Eli Zaretskii
2022-08-29 19:04 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-29 19:17 ` Eli Zaretskii
2022-08-29 19:26 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-29 19:37 ` Eli Zaretskii
2022-08-29 20:25 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-29 20:44 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-29 21:08 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-30 11:28 ` Eli Zaretskii
2022-08-30 6:09 ` Gerd Möllmann
2022-08-30 11:10 ` Eli Zaretskii
2022-08-30 11:23 ` Gerd Möllmann
2022-08-30 13:48 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-30 16:19 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors [this message]
2022-08-30 16:34 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-30 17:00 ` Eli Zaretskii
2022-08-30 17:22 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-30 11:11 ` Eli Zaretskii
2022-08-30 6:04 ` Gerd Möllmann
2022-08-30 11:46 ` Eli Zaretskii
2022-08-30 11:53 ` Gerd Möllmann
2022-08-30 12:07 ` Eli Zaretskii
2022-08-30 12:15 ` Gerd Möllmann
2022-08-30 12:48 ` Eli Zaretskii
2022-08-30 13:25 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-30 13:48 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-31 6:14 ` Gerd Möllmann
2022-08-31 6:14 ` Gerd Möllmann
2022-08-31 7:02 ` Gerd Möllmann
2022-08-31 11:09 ` Eli Zaretskii
2022-08-31 11:54 ` Gerd Möllmann
2022-08-31 14:12 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-31 14:38 ` Gerd Möllmann
2022-08-31 16:00 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-31 16:21 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-31 16:34 ` Eli Zaretskii
2022-08-31 17:11 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-31 16:25 ` Eli Zaretskii
2022-09-01 5:44 ` Gerd Möllmann
2022-09-01 6:11 ` Eli Zaretskii
2022-09-01 6:45 ` Gerd Möllmann
2022-09-01 8:18 ` Gerd Möllmann
2022-09-01 8:25 ` Eli Zaretskii
2022-09-01 8:56 ` Gerd Möllmann
2022-09-01 11:30 ` Eli Zaretskii
2022-09-01 12:27 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-09-01 12:32 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-09-01 12:36 ` Gerd Möllmann
2022-09-02 7:16 ` Eli Zaretskii
2022-09-02 7:26 ` Eli Zaretskii
2022-09-02 9:21 ` Gerd Möllmann
2022-09-03 8:04 ` Gerd Möllmann
2022-09-03 9:06 ` Eli Zaretskii
2022-09-03 16:35 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-09-03 16:51 ` Eli Zaretskii
2022-09-03 17:14 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-09-03 17:21 ` Eli Zaretskii
2022-09-04 4:55 ` Gerd Möllmann
2022-09-07 4:59 ` Gerd Möllmann
2022-09-07 16:11 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-09-07 18:17 ` Eli Zaretskii
2022-09-08 5:31 ` Gerd Möllmann
2022-09-08 6:25 ` Eli Zaretskii
2022-09-08 6:43 ` Gerd Möllmann
2022-09-08 8:20 ` Eli Zaretskii
2022-09-08 8:43 ` Gerd Möllmann
2022-09-08 9:16 ` Eli Zaretskii
2022-09-08 9:35 ` Gerd Möllmann
2022-09-08 15:59 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-09-09 15:48 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-09-09 16:00 ` Eli Zaretskii
2022-09-20 16:35 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-09-20 16:45 ` Eli Zaretskii
2022-09-21 6:10 ` Gerd Möllmann
2022-09-21 11:17 ` Eli Zaretskii
2022-09-02 9:20 ` Gerd Möllmann
2022-08-29 16:01 ` Eli Zaretskii
2022-08-29 16:03 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-29 16:27 ` Eli Zaretskii
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CALqSXk5yojUHkTOERHCYH=0NOvmvak+Fig1FAboxjjycRuvHAQ@mail.gmail.com' \
--to=bug-gnu-emacs@gnu.org \
--cc=57434@debbugs.gnu.org \
--cc=eliz@gnu.org \
--cc=gerd.moellmann@gmail.com \
--cc=kuragin@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).