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
..
2023-12-09 15:18:31 -07:00
2023-11-14 08:28:57 -05:00
2023-12-05 19:27:15 +01:00
2023-11-30 11:20:51 -05:00
2023-12-09 15:18:31 -07:00
2023-11-02 10:55:02 -07:00
2023-11-17 12:54:16 -08:00
2023-12-09 15:18:31 -07:00
2023-12-11 14:01:16 +01:00
2023-11-19 21:52:28 -05:00
2023-12-04 17:05:44 -08:00
2023-10-25 15:39:02 +02:00
2023-12-08 12:31:07 -08:00
2023-12-04 09:16:04 -05:00
2023-12-09 15:18:31 -07:00
2023-12-08 12:48:02 -05:00
2023-12-08 12:31:07 -08:00
2023-11-17 21:40:56 +02:00
2023-12-11 15:42:17 -05:00
2023-12-05 14:57:20 +01:00
2023-12-05 14:57:20 +01:00
2023-12-11 09:38:23 -07:00
2023-12-06 14:29:09 -08:00
2023-12-09 15:18:31 -07:00
2023-12-04 23:35:31 +00:00
2023-10-25 07:10:21 -07:00
2023-11-02 10:55:02 -07:00
2023-11-30 15:46:30 +02:00
2023-12-11 15:42:17 -05:00
2023-12-11 12:28:22 +02:00
2023-12-11 15:42:17 -05:00
2023-11-28 22:47:04 -07:00
2023-12-11 13:56:58 -05:00
2023-11-30 16:05:45 +02:00
2023-12-09 15:18:31 -07:00
2023-11-03 12:15:23 -04:00
2023-11-24 17:28:59 +01:00
2023-11-02 19:18:01 -06:00
2023-12-09 15:18:31 -07:00
2023-11-14 00:06:33 -08:00
2023-12-11 12:56:18 -08:00
2023-12-10 19:33:38 -07:00
2023-11-04 13:54:37 +02:00
2023-12-09 15:18:31 -07:00
2023-11-18 10:46:35 -08:00
2023-11-30 11:38:16 +02:00
2023-12-06 21:48:39 +02:00
2023-12-09 15:18:31 -07:00
2023-10-31 14:04:03 -07:00
2023-12-10 19:33:38 -07:00
2023-10-19 23:05:06 -06:00
2023-11-30 12:22:23 +02:00
2023-11-30 13:07:47 +02:00
2023-12-09 15:18:31 -07:00
2023-10-25 19:31:47 +02:00
2023-11-08 19:29:00 -08:00
2023-12-06 14:29:09 -08:00
2023-10-22 17:10:21 +02:00
2023-11-08 21:23:31 -08:00
2023-12-11 14:18:46 +01:00
2023-12-06 11:01:22 -05:00
2023-11-29 10:58:22 +02:00
2023-11-29 11:52:26 +02:00
2023-12-11 12:28:22 +02:00
2023-12-11 12:28:22 +02:00
2023-12-05 12:30:29 +02:00
2023-12-09 15:18:31 -07:00
2023-12-06 16:14:39 -05:00
2023-12-07 12:52:34 +01:00
2023-12-09 15:18:31 -07:00
2023-11-09 13:23:31 -08:00
2023-10-23 12:50:57 +02:00
2023-12-08 15:44:27 -08:00
2023-11-16 16:03:14 -08:00
2023-11-16 16:03:14 -08:00
2023-12-11 12:28:22 +02:00
2023-12-11 12:28:22 +02:00
2023-12-11 13:11:07 +02:00
2023-12-11 15:42:17 -05:00
2023-11-27 15:06:20 -08:00
2023-12-05 15:38:36 +01:00
2023-12-11 09:38:23 -07:00
2023-11-16 10:40:02 +02:00
2023-11-21 13:42:00 -05:00
2023-12-09 15:18:31 -07:00
2023-12-09 15:18:31 -07:00
2023-12-05 12:30:29 +02:00
2023-12-11 15:42:17 -05:00
2023-11-03 14:53:08 +01:00
2023-11-03 12:15:23 -04:00
2023-10-25 15:39:02 +02:00
2023-12-11 15:57:47 -05:00
2023-12-11 15:57:47 -05:00
2023-12-09 15:18:31 -07:00
2023-12-11 16:47:48 +01:00
2023-12-06 12:53:02 +01:00
2023-10-25 18:34:14 +02:00
2023-12-11 11:40:54 -07:00
2023-12-11 11:00:55 -07:00
2023-10-23 11:06:58 +02:00
2023-12-11 15:42:17 -05:00
2023-12-05 12:30:29 +02:00
2023-12-11 15:42:17 -05:00
2023-12-06 14:29:09 -08:00
2023-12-11 11:00:55 -07:00
2023-12-11 11:00:55 -07:00
2023-10-28 11:37:25 -04:00