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:34:24 -0700 [thread overview]
Message-ID: <CALqSXk7unctiqqyyv7i_kXqu+Q9HLnigB8WzVg9T1nKX+pKLjg@mail.gmail.com> (raw)
In-Reply-To: <CALqSXk5yojUHkTOERHCYH=0NOvmvak+Fig1FAboxjjycRuvHAQ@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 6664 bytes --]
On Tue, Aug 30, 2022 at 9:19 AM Dmitrii Kuragin <kuragin@google.com> wrote:
> `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:
>>
> Sorry, what does TRT mean?
>
>> . are all the capabilities that are supposed to be available for
>> these two flags are indeed available?
>>
> How can I verify it?
> . 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?
>>
> It makes sense to me, but since the output is still correct after the
glitch, doesn't it mean that capabilities work correctly?
>
>> 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.
>
>
--
*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: 11506 bytes --]
next prev parent reply other threads:[~2022-08-30 16:34 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
2022-08-30 16:34 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors [this message]
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=CALqSXk7unctiqqyyv7i_kXqu+Q9HLnigB8WzVg9T1nKX+pKLjg@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).