Subject: 29.0.50; Frame occasionally fails to paint while screen sharing on macOS
From: Aaron Jensen <[email-masked]>
To: [email-masked]
Date: Wed, 24 Nov 2021 20:12:53 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

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))