ZIm/crates
Max Brunsfeld f12510b8b0
Defer drawing the window until the CoreAnimation displayLayer: method is called (#3592)
GPUI (both 1 and 2) currently performs rendering, layout, and painting
at the end of every effect cycle. This leads to poor performance when
the app receives events more frequently than the display refreshes. Such
rapid events can come from a terminal, an LSP, or a mouse with a high
polling rate.

This PR changes GPUI so that we don't render until the OS notifies us
that the content will be presented, via the `displayLayer:` callback.

Because render, layout, and paint have side effects that are sometimes
relied on in tests, we currently keep the old behavior (drawing after
every effects cycle) in tests.

This is similar to what @ForLoveOfCats explored in
https://github.com/zed-industries/zed/pull/3542, but slightly simpler,
in that we're not using the display link. As a follow-up, we could use
the display link to start rendering earlier, to possibly reduce latency
further.
2023-12-11 13:03:04 -08:00
..
activity_indicator Unify icons using multiple variants, remove all unused icons 2023-09-15 12:50:49 -04:00
activity_indicator2 Restore namespace parameter to actions! 2023-12-09 15:18:31 -07:00
ai Add gpt-4-1106-preview model 2023-11-14 08:28:57 -05:00
ai2 WIP 2023-12-05 19:27:15 +01:00
assistant Add some text to clarify no api key state 2023-11-30 11:20:51 -05:00
assistant2 Restore namespace parameter to actions! 2023-12-09 15:18:31 -07:00
audio chore: remove unused features from rodio crate. (#2869) 2023-08-21 11:07:31 +02:00
audio2 Remove the 2s from source code 2023-11-02 10:55:02 -07:00
auto_update WIP: 2023-11-17 12:54:16 -08:00
auto_update2 Restore namespace parameter to actions! 2023-12-09 15:18:31 -07:00
breadcrumbs Move breadcrumb style to toolbar 2023-08-29 16:37:48 -04:00
breadcrumbs2 Show the correct outline when clicking on a breadcrumb 2023-12-11 14:01:16 +01:00
call Add timestamp delta to telemetry events 2023-11-19 21:52:28 -05:00
call2 Revert "Decouple workspace from call (#3380)" 2023-12-04 17:05:44 -08:00
channel Set up UI to allow dragging a channel to the root 2023-10-25 15:39:02 +02:00
channel2 Get more of chat panel compiling, but lots of todos 2023-12-08 12:31:07 -08:00
cli Code to allow opening zed:/channel/1234 2023-10-05 14:57:45 -07:00
client Disable instance handshake in dev builds 2023-12-04 09:16:04 -05:00
client2 Restore namespace parameter to actions! 2023-12-09 15:18:31 -07:00
clock Remove local timestamps from CRDT operations 2023-08-31 16:23:06 -07:00
collab collab 0.30.1 2023-12-08 12:48:02 -05:00
collab2 Get more of chat panel compiling, but lots of todos 2023-12-08 12:31:07 -08:00
collab_ui Pass a new query parameter into the search 2023-11-17 21:40:56 +02:00
collab_ui2 Fix inactive tab styles (the verbose way) (#3591) 2023-12-11 15:42:17 -05:00
collections Start out Copilot2; 2023-12-05 14:57:20 +01:00
command_palette Start out Copilot2; 2023-12-05 14:57:20 +01:00
command_palette2 Merge branch 'main' into vim2 2023-12-11 09:38:23 -07:00
component_test Merge branch 'main' into disclosable-component 2023-08-23 16:30:27 -07:00
context_menu Add components example 2023-08-15 03:06:43 -07:00
copilot Upgrade async-compression dep 2023-12-06 14:29:09 -08:00
copilot2 Restore namespace parameter to actions! 2023-12-09 15:18:31 -07:00
copilot_button Unify icons using multiple variants, remove all unused icons 2023-09-15 12:50:49 -04:00
copilot_button2 Remove cx param 2023-12-04 23:35:31 +00:00
db Change from try (reserved keyword) to maybe 2023-10-25 07:10:21 -07:00
db2 Remove the 2s from source code 2023-11-02 10:55:02 -07:00
diagnostics Exclude gitignored files' diagnostics from project panel and its indicator. 2023-11-30 15:46:30 +02:00
diagnostics2 Fix inactive tab styles (the verbose way) (#3591) 2023-12-11 15:42:17 -05:00
drag_and_drop Fix bug in channel rendering 2023-09-20 16:40:29 -07:00
editor Port to gpui1 2023-12-11 12:28:22 +02:00
editor2 Fix inactive tab styles (the verbose way) (#3591) 2023-12-11 15:42:17 -05:00
feature_flags Add feature flags handling to the client, rewrite staff mode to a trait extension style 2023-08-25 17:00:53 -07:00
feature_flags2 Inviting/Responding/Creating Channels... etc. 2023-11-28 22:47:04 -07:00
feedback Add memory and cpu events 2023-10-02 19:35:31 -04:00
feedback2 Fix rustfmt in feedback_modal.rs 2023-12-11 13:56:58 -05:00
file_finder Trim file_finder input queries 2023-11-30 16:05:45 +02:00
file_finder2 Restore namespace parameter to actions! 2023-12-09 15:18:31 -07:00
fs Revert unnecessary style changes 2023-10-12 16:17:41 +03:00
fs2 port rope2 to zed2 2023-11-03 12:15:23 -04:00
fsevent 🎨 Specify more dependencies at the workspace level 2023-04-24 17:41:55 -07:00
fuzzy Ignore history items' paths when matching search queries 2023-10-09 23:14:32 +03:00
fuzzy2 Start on wiring up render_parsed_markdown 2023-11-24 17:28:59 +01:00
git move git2 to workspace dependency globally 2023-09-19 16:13:47 -04:00
git3 git -> git3 2023-11-02 19:18:01 -06:00
go_to_line Store an AnyWindowHandle in WindowContext 2023-08-08 11:08:37 -06:00
go_to_line2 Restore namespace parameter to actions! 2023-12-09 15:18:31 -07:00
gpui Implement most core actions 2023-11-14 00:06:33 -08:00
gpui2 Fix unused field warning 2023-12-11 12:56:18 -08:00
gpui2_macros Restore impl_actions! and remove derive(Action) 2023-12-10 19:33:38 -07:00
gpui_macros Suppress unused vars warning generated by gpui macro 2023-11-04 13:54:37 +02:00
install_cli Remove potential osascript hijacking 2023-08-18 17:40:08 -07:00
install_cli2 Restore namespace parameter to actions! 2023-12-09 15:18:31 -07:00
journal Enable test-support on editor in tests 2023-05-20 09:54:38 -06:00
journal2 please work 2023-11-18 10:46:35 -08:00
language Fix eslint diagnostics by passing worktree root during workspace init 2023-11-30 11:38:16 +02:00
language2 Pass proper theme colors for inlays and suggestions 2023-12-06 21:48:39 +02:00
language_selector Add tooltip to language selector 2023-09-08 12:41:32 -04:00
language_selector2 Restore namespace parameter to actions! 2023-12-09 15:18:31 -07:00
language_tools Reduce max log lines, clean log buffers better 2023-10-17 21:47:21 +03:00
live_kit_client WIP - make livekit work in GPUI2 2023-10-31 14:04:03 -07:00
live_kit_client2 Restore impl_actions! and remove derive(Action) 2023-12-10 19:33:38 -07:00
live_kit_server Fix notifications for membership changes too 2023-10-19 23:05:06 -06:00
lsp Declare more supported client capabilities 2023-11-30 12:22:23 +02:00
lsp2 Port to gpui2 2023-11-30 13:07:47 +02:00
media
menu Position and style the channel editor correctly 2023-08-08 14:06:29 -07:00
menu2 Restore namespace parameter to actions! 2023-12-09 15:18:31 -07:00
multi_buffer Extract multi_buffer module out of editor (#3170) 2023-10-25 19:31:47 +02:00
multi_buffer2 Get workspace compiling with new event emitters 2023-11-08 19:29:00 -08:00
node_runtime Upgrade async-compression dep 2023-12-06 14:29:09 -08:00
notifications Load more notifications when scrolling down 2023-10-22 17:10:21 +02:00
notifications2 Add notifications2 2023-11-08 21:23:31 -08:00
outline feat(workspace): allow alternative actions to open files and symbols in split 2023-07-14 21:49:15 +02:00
outline2 Focus editor when confirming outline item 2023-12-11 14:18:46 +01:00
picker Ensure the picker waits for pending updates 2023-09-20 20:44:26 -06:00
picker2 WIP update picker style 2023-12-06 11:01:22 -05:00
plugin 🎨 Specify more dependencies at the workspace level 2023-04-24 17:41:55 -07:00
plugin_macros
plugin_runtime
prettier Clear failed installation task when error threshold gets exceeded 2023-11-29 10:58:22 +02:00
prettier2 Port to gpui2 2023-11-29 11:52:26 +02:00
project Port to gpui1 2023-12-11 12:28:22 +02:00
project2 Finalize the command 2023-12-11 12:28:22 +02:00
project_panel Ignore excluded files on worktree entry refresh 2023-12-05 12:30:29 +02:00
project_panel2 Restore namespace parameter to actions! 2023-12-09 15:18:31 -07:00
project_symbols Add local next LSP adapter 2023-09-21 18:09:02 -07:00
quick_action_bar Add "Toggle Inlay Hints" quick action (#3520) 2023-12-06 16:14:39 -05:00
quick_action_bar2 buffer search: Fix up rough edges 2023-12-07 12:52:34 +01:00
recent_projects WIP 2023-08-10 10:26:48 -06:00
recent_projects2 Restore namespace parameter to actions! 2023-12-09 15:18:31 -07:00
refineable Generalize Refineable derive macro to derive arbitrary traits on the refinement type 2023-11-09 13:23:31 -08:00
rich_text Account for markdown styling in mentions offset calculation. 2023-10-23 12:50:57 +02:00
rich_text2 Start work on rendering formatted chat messages 2023-12-08 15:44:27 -08:00
rope Port buffer reload bug fixes back to gpui1 crates 2023-11-16 16:03:14 -08:00
rope2 Fix race conditions and bugs in Buffer::reload 2023-11-16 16:03:14 -08:00
rpc Port to gpui1 2023-12-11 12:28:22 +02:00
rpc2 Finalize the command 2023-12-11 12:28:22 +02:00
search Always open new project search view workspace::NewSearch action 2023-12-11 13:11:07 +02:00
search2 Fix inactive tab styles (the verbose way) (#3591) 2023-12-11 15:42:17 -05:00
semantic_index Use 'any-match?' predicate in elixir embedding query 2023-11-27 15:06:20 -08:00
semantic_index2 Port semantic_index to gpui2 2023-12-05 15:38:36 +01:00
settings Add feature flags handling to the client, rewrite staff mode to a trait extension style 2023-08-25 17:00:53 -07:00
settings2 Merge branch 'main' into vim2 2023-12-11 09:38:23 -07:00
snippet 🎨 Specify more dependencies at the workspace level 2023-04-24 17:41:55 -07:00
sqlez WIP 2023-11-16 10:40:02 +02:00
sqlez_macros
story Extract Story into separate story crate (#3378) 2023-11-21 13:42:00 -05:00
storybook2 Restore namespace parameter to actions! 2023-12-09 15:18:31 -07:00
sum_tree Ensure collaborators cursor colors are the same in channel buffers as in projects 2023-08-24 11:31:41 -07:00
terminal Add Nushell support to venv activation 2023-10-01 23:38:30 -04:00
terminal2 Restore namespace parameter to actions! 2023-12-09 15:18:31 -07:00
terminal_view Ignore excluded files on worktree entry refresh 2023-12-05 12:30:29 +02:00
terminal_view2 Fix inactive tab styles (the verbose way) (#3591) 2023-12-11 15:42:17 -05:00
text Don't depend on gpui2 in text 2023-11-03 14:53:08 +01:00
text2 port rope2 to zed2 2023-11-03 12:15:23 -04:00
theme Set up UI to allow dragging a channel to the root 2023-10-25 15:39:02 +02:00
theme2 Use tab.inactiveForeground from VS Code for muted text color (#3593) 2023-12-11 15:57:47 -05:00
theme_importer Use tab.inactiveForeground from VS Code for muted text color (#3593) 2023-12-11 15:57:47 -05:00
theme_selector Add feature flags handling to the client, rewrite staff mode to a trait extension style 2023-08-25 17:00:53 -07:00
theme_selector2 Restore namespace parameter to actions! 2023-12-09 15:18:31 -07:00
ui2 Merge branch 'main' into project_search2 2023-12-11 16:47:48 +01:00
util Merge remote-tracking branch 'origin/main' into assistant-2 2023-12-06 12:53:02 +01:00
vcs_menu vcs_menu: Fix a circular view handle in modal picker. 2023-10-25 18:34:14 +02:00
vim COmment out tests again for now 2023-12-11 11:40:54 -07:00
vim2 Clear out easy todo!()s 2023-12-11 11:00:55 -07:00
welcome Add enable vim mode checkbox to welcome screen 2023-10-08 20:07:59 -04:00
welcome2 Fix inactive tab styles (the verbose way) (#3591) 2023-12-11 15:42:17 -05:00
workspace Ignore excluded files on worktree entry refresh 2023-12-05 12:30:29 +02:00
workspace2 Fix inactive tab styles (the verbose way) (#3591) 2023-12-11 15:42:17 -05:00
xtask
zed Upgrade async-compression dep 2023-12-06 14:29:09 -08:00
zed-actions Port journal to GPUI2 2023-10-28 11:37:25 -04:00
zed2 Clear out easy todo!()s 2023-12-11 11:00:55 -07:00
zed_actions2 Clear out easy todo!()s 2023-12-11 11:00:55 -07:00