Subject: Re: bug#52085: 29.0.50; Frame occasionally fails to paint while screen sharing on macOS

From: Rudolf Adamkovič <[email-masked]>
Date: Tue, 30 Nov 2021 16:49:02 +0100

I have the same problem (every day) but with the open-source Jitsi screen-sharing program.

R+

Aaron Jensen <[email-masked]> writes:

> I still need to try this with emacs -Q, but I have seen this for some
> time now (possibly since Alan's recent batch of changes to macOS
> rendering)
>
> If I am screen sharing on zoom, I will often issue a command that I
> expect to repaint the frame and it will not. If I issue another then it
> repaints immediately with both commands having been realized. This
> *only* happens when screen sharing with Zoom. I will try other screen
> sharing software to see if it is a Zoom specific thing. I am typically
> sharing just the Emacs window (and maybe an iTerm and a browser), but
> never full screen sharing.
>
> Alan, is there anything that you could think of that could cause
> something like this to happen? Is there logging I could add to help get
> to the bottom of it?
>
> Thanks,
>
> Aaron
>
> In GNU Emacs 29.0.50 (build 1, x86_64-apple-darwin21.2.0, NS appkit-2112.20 Version 12.1 (Build 21C5021h))
>  of 2021-11-13 built on Aarons-MacBook-Pro.local
> Windowing system distributor 'Apple', version 10.3.2112
> System Description:  macOS 12.1
>
> Configured using:
>  'configure --disable-dependency-tracking --disable-silent-rules
>  --enable-locallisppath=/usr/local/share/emacs/site-lisp
>  --infodir=/usr/local/Cellar/emacs-plus@29/29.0.50/share/info/emacs
>  --prefix=/usr/local/Cellar/emacs-plus@29/29.0.50 --with-xml2
>  --with-gnutls --with-native-compilation --without-dbus
>  --without-imagemagick --with-modules --with-rsvg --with-ns
>  --disable-ns-self-contained 'CFLAGS=-I/usr/local/opt/gcc/include
>  -I/usr/local/opt/libgccjit/include -I/usr/local/opt/gmp/include
>  -I/usr/local/opt/jpeg/include' 'LDFLAGS=-L/usr/local/lib/gcc/11
>  -I/usr/local/opt/gcc/include -I/usr/local/opt/libgccjit/include
>  -I/usr/local/opt/gmp/include -I/usr/local/opt/jpeg/include''
>
> Configured features:
> ACL GIF GLIB GMP GNUTLS JPEG JSON LCMS2 LIBXML2 MODULES NATIVE_COMP
> NOTIFY KQUEUE NS PDUMPER PNG RSVG THREADS TIFF TOOLKIT_SCROLL_BARS XIM
> ZLIB
>
> Important settings:
>   value of $LANG: en_US.UTF-8
>   locale-coding-system: utf-8-unix
>
> Features:
> (shadow sort mail-extr emacsbug sendmail wgrep embark-consult embark
> ffap use-package-core org-goto evil-matchit-simple evil-matchit-prog
> evil-nerd-commenter evil-nerd-commenter-operator evil-nerd-commenter-sdk
> rotate wdired image-file image-converter org-drill persist conf-mode
> lsp-diagnostics lsp-modeline lsp-lens lsp-ui lsp-ui-flycheck lsp-ui-doc
> lsp-ui-imenu lsp-ui-peek lsp-ui-sideline lsp-ui-util yaml-mode
> tramp-cmds cal-move evil-collection-vterm vterm term ehelp vterm-module
> term/xterm xterm vterm-toggle tramp-sh goto-addr consult-vertico consult
> tabify css-mode emmet-mode cl web-mode company-rg company-oddmuse
> company-keywords company-etags company-gtags company-dabbrev-code
> company-dabbrev company-clang company-cmake company-semantic
> company-template company-bbdb restart-emacs desktop frameset
> tree-sitter-langs tree-sitter-langs-build tar-mode
> evil-collection-arc-mode arc-mode archive-mode tree-sitter-hl
> tree-sitter tree-sitter-load tree-sitter-cli tsc tsc-dyn tsc-dyn-get
> dired-aux tsc-obsolete evil-ruby-text-objects ruby-refactor
> ruby-electric bundler enh-ruby-mode magit-extras tramp-cache prettier
> tramp tramp-loaddefs trampver tramp-integration files-x tramp-compat
> ls-lisp nvm iter2 rspec-mode inf-ruby ruby-mode typescript-mode rng-xsd
> xsd-regexp rng-cmpct rng-nxml rng-valid nxml-mode nxml-outln nxml-rap
> sgml-mode facemenu sql json-mode json-snatcher js cc-mode cc-fonts
> cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs
> lsp-zig lsp-steep lsp-svelte lsp-sqls lsp-yaml lsp-xml lsp-vimscript
> lsp-vhdl lsp-vetur lsp-html lsp-verilog lsp-vala lsp-v lsp-terraform
> lsp-tex lsp-sorbet lsp-solargraph lsp-rust lsp-rf lsp-r lsp-purescript
> lsp-pylsp lsp-pyls lsp-pwsh lsp-php lsp-perl lsp-ocaml lsp-nix lsp-nim
> lsp-markdown lsp-lua lsp-kotlin lsp-json lsp-javascript lsp-haxe
> lsp-groovy lsp-hack lsp-graphql lsp-go lsp-completion lsp-gdscript
> lsp-fsharp lsp-fortran lsp-eslint lsp-erlang lsp-elixir lsp-elm
> lsp-dockerfile lsp-dhall lsp-d lsp-css lsp-csharp gnutls lsp-crystal
> lsp-cmake lsp-clojure lsp-semantic-tokens lsp-clangd lsp-beancount
> lsp-bash lsp-angular lsp-ada lsp-actionscript lsp-mode lsp-protocol
> spinner network-stream markdown-mode lua-mode sh-script smie org-clock
> magit-bookmark bookmark vertico-directory diary-lib diary-loaddefs
> executable vc-mtn vc-hg vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs vc
> bug-reference magit-delta company-files company-capf company-posframe
> company-prescient company-tng company eval-sexp-fu eros lispyville lispy
> hydra lv swiper ivy ivy-faces ivy-overlay colir lispy-inline avy etags
> fileloop lispy-tags elisp-def ert ewoc evil-collection-debug debug
> evil-collection-xref xref project sotlisp skeleton evil-vimish-fold
> vimish-fold dtrt-indent vc-git vc-dispatcher cursor-sensor
> evil-collection-magit magit-submodule magit-obsolete magit-blame
> magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch
> magit-clone magit-remote magit-commit magit-sequence magit-notes
> magit-worktree magit-tag magit-merge magit-branch magit-reset
> magit-files magit-refs magit-status magit package url-handlers
> magit-repos magit-apply magit-wip magit-log which-func magit-diff
> smerge-mode diff-mode git-commit log-edit view elec-pair org-eldoc
> org-appear orgonomic org-indent org-superstar form-feed ol-eww eww
> url-queue mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect
> gnus-search eieio-opt speedbar ezimage dframe gnus-art mm-uu mml2015
> mm-view mml-smime smime dig gnus-sum shr kinsoku svg dom browse-url
> gnus-group gnus-undo gnus-start gnus-dbus dbus xml gnus-cloud nnimap
> nnmail mail-source utf7 netrc nnoo parse-time gnus-spec gnus-int
> gnus-range message yank-media gnus-win gnus nnheader ol-docview doc-view
> jka-compr image-mode exif ol-bibtex ol-bbdb ol-w3m ol-doi org-link-doi
> org-journal org-crypt ox-odt rng-loc rng-uri rng-parse rng-match rng-dt
> rng-util rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex
> ox-icalendar org-agenda ox-ascii ox-gfm ox-md ox-html table ox-publish
> ox org-download org-attach async vulpea vulpea-meta vulpea-select
> vulpea-buffer vulpea-db vulpea-utils vulpea-note org-roam-migrate
> org-roam-mode org-roam-capture org-roam-node org-roam-db org-roam-utils
> org-roam-compat org-roam org-mac-link org-capture emacsql-sqlite emacsql
> emacsql-compiler org-tempo tempo evil-org-agenda evil-org org-element
> org-persist xdg org-id org-refile avl-tree generator ob-shell org ob
> ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-footnote org-src
> ob-comint org-pcomplete org-list org-faces org-entities noutline outline
> org-version ob-emacs-lisp ob-core ob-eval org-table oc-basic bibtex
> iso8601 ol org-keys oc org-compat org-macs org-loaddefs cal-iso cal-menu
> calendar cal-loaddefs rfc822 mml mml-sec epa epg rfc6068 epg-config
> gnus-util rmail rmail-loaddefs mm-decode mm-bodies mm-encode mailabbrev
> mail-utils gmm-utils mailheader pcvs-util add-log magit-core
> magit-autorevert magit-margin magit-transient magit-process with-editor
> magit-mode transient-posframe transient format-spec magit-git
> magit-section magit-utils crm time-date flycheck yasnippet
> treemacs-themes treemacs-core-utils pfuture inline hl-line ht
> treemacs-logging treemacs-customization treemacs-macros autorevert
> hide-mode-line popup-mode-core popup-mode-hacks pcase
> evil-collection-which-key which-key-posframe which-key winner filenotify
> rainbow-mode xterm-color color posframe evil-collection-helpful helpful
> imenu trace evil-collection-edebug edebug backtrace info-look f help-fns
> radix-tree elisp-refs s dired-subtree dired-hacks-utils
> evil-collection-dired dired dired-loaddefs dash evil-collection-profiler
> profiler url-http url url-proxy url-privacy url-expand url-methods
> url-history mailcap url-auth url-cookie url-domsuf url-util url-gw
> url-parse auth-source password-cache url-vars nsm rmc puny recentf
> tree-widget better-jumper repeat undo-tree diff queue evil-nl-break-undo
> evil-anzu anzu evil-collection-unimpaired evil-collection-ibuffer
> evil-collection-help evil-collection-custom evil-collection-process-menu
> evil-collection annalist evil-mc evil-mc-command-execute
> evil-mc-command-record evil-mc-cursor-make evil-mc-region
> evil-mc-cursor-state evil-mc-undo evil-mc-vars evil-mc-known-commands
> evil-mc-common evil-numbers evil-snipe evil-matchit evil-matchit-sdk
> semantic/lex semantic/fw eieio eieio-core eieio-loaddefs mode-local
> find-func evil-surround evil evil-integration cus-edit pp cus-start
> cus-load wid-edit evil-maps evil-commands reveal flyspell ispell
> evil-jumps evil-command-window evil-search evil-ex shell pcomplete
> evil-types evil-macros evil-repeat evil-states evil-core evil-common
> windmove calc calc-loaddefs calc-macs rect evil-digraphs evil-vars envrc
> inheritenv json map nano-modeline memoize persp-projectile projectile
> lisp-mnt mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums
> mail-prsvr grep compile text-property-search comint ansi-color ibuf-ext
> ibuffer ibuffer-loaddefs perspective advice thingatpt ido comp comp-cstr
> warnings rx mini-frame server gcmh nano-light-theme face-remap
> nano-theme disp-table gcmh-autoloads explain-pause-mode-autoloads
> pdf-tools-autoloads tablist-autoloads restclient-autoloads
> vterm-toggle-autoloads vterm-autoloads dumb-jump-autoloads
> popup-autoloads emmet-mode-autoloads terraform-mode-autoloads
> hcl-mode-autoloads dockerfile-mode-autoloads yaml-mode-autoloads
> json-snatcher-autoloads lua-mode-autoloads ruby-electric-autoloads
> bundler-autoloads inf-ruby-autoloads ruby-refactor-autoloads
> rspec-mode-autoloads evil-ruby-text-objects-autoloads
> enh-ruby-mode-autoloads sotlisp-autoloads elisp-def-autoloads
> lispyville-autoloads lispy-autoloads zoutline-autoloads
> counsel-autoloads swiper-autoloads ivy-autoloads iedit-autoloads
> eros-autoloads eval-sexp-fu-autoloads eslintd-fix-autoloads
> web-mode-autoloads typescript-mode-autoloads company-rg-autoloads
> company-posframe-autoloads company-prescient-autoloads company-autoloads
> git-link-autoloads git-timemachine-autoloads magit-delta-autoloads
> xterm-color-autoloads prettier-autoloads nvm-autoloads iter2-autoloads
> flycheck-autoloads let-alist-autoloads pkg-info-autoloads epl-autoloads
> evil-textobj-tree-sitter-autoloads tree-sitter-langs-autoloads
> tree-sitter-autoloads tsc-autoloads lsp-ui-autoloads lsp-mode-autoloads
> markdown-mode-autoloads spinner-autoloads org-superstar-autoloads
> ox-gfm-autoloads org-pandoc-import-autoloads gnuplot-autoloads
> org-download-autoloads async-autoloads org-journal-autoloads
> deft-autoloads vulpea-autoloads org-roam-autoloads
> emacsql-sqlite-autoloads emacsql-autoloads orgonomic-autoloads
> org-drill-autoloads persist-autoloads org-appear-autoloads
> org-contrib-autoloads evil-org-autoloads transient-posframe-autoloads
> restart-emacs-autoloads better-jumper-autoloads buffer-move-autoloads
> rotate-autoloads mini-frame-autoloads embark-consult-autoloads
> embark-autoloads consult-dir-autoloads project-autoloads xref-autoloads
> consult-autoloads orderless orderless-autoloads vertico-mouse vertico
> vertico-autoloads persp-projectile-autoloads prescient
> prescient-autoloads which-key-posframe-autoloads which-key-autoloads
> popup-mode popup-mode-settings popup-mode-autoloads
> hide-mode-line-autoloads wgrep-autoloads yasnippet-autoloads
> form-feed-autoloads drag-stuff-autoloads dtrt-indent-autoloads ws-butler
> ws-butler-autoloads evil-vimish-fold-autoloads vimish-fold-autoloads
> evil-anzu-autoloads anzu-autoloads evil-collection-autoloads
> annalist-autoloads evil-mc-autoloads evil-numbers-autoloads
> speeddating-autoloads evil-snipe-autoloads evil-matchit-autoloads
> evil-nerd-commenter-autoloads evil-visualstar-autoloads
> evil-surround-autoloads evil-nl-break-undo-autoloads undo-tree-autoloads
> queue-autoloads treemacs-perspective-autoloads perspective-autoloads
> treemacs-magit-autoloads magit-autoloads magit-section-autoloads
> git-commit-autoloads with-editor-autoloads transient-autoloads
> treemacs-all-the-icons-autoloads all-the-icons-autoloads
> treemacs-projectile-autoloads treemacs-evil-autoloads evil-autoloads
> goto-chg-autoloads treemacs-autoloads cfrs-autoloads ht-autoloads
> pfuture-autoloads ace-window-autoloads avy-autoloads
> projectile-autoloads saveplace rainbow-mode-autoloads posframe-autoloads
> ns-auto-titlebar ns-auto-titlebar-autoloads nano-modeline-autoloads
> memoize-autoloads nano-theme-autoloads envrc-autoloads
> inheritenv-autoloads compdef derived compdef-autoloads edmacro kmacro
> ring helpful-autoloads elisp-refs-autoloads f-autoloads s-autoloads
> dired-subtree-autoloads dired-hacks-utils-autoloads dash-autoloads
> hydra-autoloads lv-autoloads leader-key bind-map leader-key-autoloads
> bind-map-autoloads delsel savehist xt-mouse no-littering
> no-littering-autoloads finder-inf bind-key easy-mmode compat-autoloads
> compat compat-28.1 compat-27.1 compat-26.1 compat-25.1 compat-24.4
> use-package-autoloads bind-key-autoloads straight-autoloads cl-seq info
> cl-extra help-mode seq byte-opt straight subr-x cl-macs gv bytecomp
> byte-compile cconv cl-loaddefs cl-lib display-line-numbers iso-transl
> tooltip eldoc paren electric uniquify ediff-hook vc-hooks
> lisp-float-type elisp-mode mwheel term/ns-win ns-win ucs-normalize
> mule-util term/common-win tool-bar dnd fontset image regexp-opt fringe
> tabulated-list replace newcomment text-mode lisp-mode prog-mode register
> page tab-bar menu-bar rfn-eshadow isearch easymenu timer select
> scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors
> frame minibuffer cl-generic cham georgian utf-8-lang misc-lang
> vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932
> hebrew greek romanian slovak czech european ethiopic indian cyrillic
> chinese composite emoji-zwj charscript charprop case-table epa-hook
> jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice button
> loaddefs faces cus-face macroexp files window text-properties overlay
> sha1 md5 base64 format env code-pages mule custom widget
> hashtable-print-readable backquote threads kqueue cocoa ns lcms2
> multi-tty make-network-process native-compile emacs)
>
> Memory information:
> ((conses 16 2867922 1088976)
>  (symbols 48 89673 2)
>  (strings 32 363999 172828)
>  (string-bytes 1 15018849)
>  (vectors 16 260455)
>  (vector-slots 8 5514205 431800)
>  (floats 8 1228 4242)
>  (intervals 56 149462 2507)
>  (buffers 992 247))
>
>
>

-- 
"I love deadlines. I love the whooshing noise they make as they go by." -- Douglas Adams, The Salmon of Doubt

Rudolf Adamkovič <[email-masked]>
Studenohorská 25
84103 Bratislava
Slovakia

[he/him]