Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: enable gpu channel async from the runtime #241640

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants