Skip to content

Conversation

@deepak1556
Copy link
Collaborator

@deepak1556 deepak1556 commented Feb 23, 2025

While investigating #240767 I see that the renderer main thread is blocked around 1s in establishing the gpu channel on the perf bot. Upstream has finished evaluation of the gpu async channel and has enabled it by default since Chromium 134 https://chromium-review.googlesource.com/c/chromium/src/+/6094045. Here is the before and after with the feature enabled, CrRendererMain is the main thread of the renderer, with the feature enabled we now push the channel establishing task to a different thread and free up main thread for other tasks.

Before:

[perf] code/willOpenNewWindow-code/willLoadWorkbenchMain: 1295ms (fastest), 1295ms (slowest), 1295ms (median)

gpu-sync

After:

[perf] code/willOpenNewWindow-code/willLoadWorkbenchMain: 310ms (fastest), 310ms (slowest), 310ms (median)

gpu-async

@deepak1556
Copy link
Collaborator Author

Verified that feature is enabled from the mac exploration builds but the perf bots don't show the same wins I saw locally. Will take a look at windows tomorrow.

@bpasero
Copy link
Member

bpasero commented Feb 24, 2025

Just a guess, but maybe its because we specifically disable GPU for the perf machines?

https://github.com/microsoft/vscode-perf/blob/4a466010310f1dcd68206b6462f46eb8b6a43d17/src/perf.ts#L144-L150

@deepak1556
Copy link
Collaborator Author

The numbers from my windows machine were with the default perf bot flags, also disable gpu only disables hw acceleration the gpu process is still used for software compositing and the channel setup will happen.

@deepak1556
Copy link
Collaborator Author

deepak1556 commented Feb 26, 2025

Verified on my windows machine to show improvements with the exploration build similar to the numbers from #241640 (comment)

There is definitely something else blocking the startup path on the perf machines that hides the wins from this change, I will capture traces from the perf bots as next step.

@deepak1556 deepak1556 force-pushed the robo/enable_async_gpu_channel branch from ee34e99 to 3983983 Compare February 27, 2025 15:03
@deepak1556 deepak1556 force-pushed the robo/enable_async_gpu_channel branch from 3983983 to ea9a6fc Compare March 11, 2025 12:00
@deepak1556 deepak1556 modified the milestones: March 2025, April 2025 Mar 24, 2025
@deepak1556 deepak1556 force-pushed the robo/enable_async_gpu_channel branch 2 times, most recently from 8f964a6 to bdc8897 Compare April 3, 2025 09:09
@deepak1556 deepak1556 marked this pull request as ready for review April 4, 2025 11:18
@deepak1556 deepak1556 force-pushed the robo/enable_async_gpu_channel branch from 9db4c21 to e320e8b Compare April 4, 2025 11:19
@deepak1556 deepak1556 enabled auto-merge (squash) April 4, 2025 11:19
@deepak1556 deepak1556 merged commit 9fc94ed into main Apr 4, 2025
8 checks passed
@deepak1556 deepak1556 deleted the robo/enable_async_gpu_channel branch April 4, 2025 11:39
lszomoru added a commit that referenced this pull request Apr 6, 2025
* Add zx package

* Add stub task and script

* Add missing file

* Remove code

* Another try

* Fingers crossed

* Another try

* Add remaining steps

* Add back tasks

* Fix things

* Another try

* More fixes

* Use deemon

* Fixing things

* watcher - perf improvements for non-recursive watching (#245644)

* Feedback: before / after selectors not rendering correctly (#245645)

Fixes #244575

* Add highlights rule  for character escapes (#245647)

* ci: split gnu arm targets for cli stage (#245651)

* Fix inline edit acceptance on click (#245649)

fix clicking insertion does not accept

* Feedback: variables render differently in Insiders (#245650)

Fixes #244579

* !important different color (#245654)

Fixes #244632

* @Property css different color (#245656)

Fixes #244634

* > different color (#245658)

Fixes #244631

* notifications - adopt more `NotificationPriority.OPTIONAL` (#245664)

* Adds more inline completion tests

* Fixes CI

* feat: enable gpu channel async from the runtime (#241640)

* Update WinGet configuration file location & extension (#242241)

* Update WinGet configuration file location & extension

* Remove prerelease: true & add securityContext

* High CPU on large workspace with many TypeScript watched folders (fix #245366) (#245670)

* High CPU on large workspace with many TypeScript watched folders (fix #245366)

* reduce throttle delay

* Moving away from `execCommand` for pasting (#239233)

* adding code to invetsigate the clipboard

* adding more code

* adding change

* adding logs

* adding notes

* making deubgging easier

* adding code to fix paste

* adding code to allow await before trigger paste

* removing all logs

* removing log

* refactoring

* removing change

* adding fix after call

* polishing

* fixing merge conflict

* polishing

* Fixing property initializiation order (#245673)

fixing property initializiation order

* voice - fix some leaks (#245676)

* update css service (#245688)

* Engineering - bump deemon (#245634)

* Engineering - bump deemon

* Bump deemon again

* Always run the Codesign post-job

* Another fix

* Try signing in parallel

* Clean up signing script

Update task name

Tweak script

Some more cleanup

Some more cleanup

More cleanup

* Attempt to run signing in parallel

---------

Co-authored-by: Benjamin Pasero <benjamin.pasero@microsoft.com>
Co-authored-by: Alex Ross <38270282+alexr00@users.noreply.github.com>
Co-authored-by: Robo <hop2deep@gmail.com>
Co-authored-by: Benjamin Christopher Simmonds <44439583+benibenj@users.noreply.github.com>
Co-authored-by: Henning Dieterichs <hdieterichs@microsoft.com>
Co-authored-by: Muhammad Danish <mdanishkhdev@gmail.com>
Co-authored-by: Aiday Marlen Kyzy <amarlenkyzy@microsoft.com>
Co-authored-by: Martin Aeschlimann <martinae@microsoft.com>
@vs-code-engineering vs-code-engineering bot locked and limited conversation to collaborators May 19, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants