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 async channel feature to improve startup #43

Closed
wants to merge 1 commit into from

Conversation

deepak1556
Copy link
Contributor

@deepak1556 deepak1556 commented Feb 23, 2025

While investigating microsoft/vscode#240767 I see that the renderer main thread is blocked around 1s in establishing the gpu channel. Upstream has finished evaluation of the gpu async channel and has enabled it by default since Chromium 134. 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 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 deepak1556 added this to the February 2025 milestone Feb 23, 2025
@deepak1556 deepak1556 requested a review from bpasero February 23, 2025 19:15
@deepak1556 deepak1556 self-assigned this Feb 23, 2025
@deepak1556
Copy link
Contributor Author

I will push the flags into VSCode by default from March milestone since it is too late in the current milestone. However, I would like to start testing with the flag in the perf bot.

Here is the upstream CL https://chromium-review.googlesource.com/c/chromium/src/+/6094045 that enables it since 134, we should get it once we update to E35

@@ -138,7 +138,12 @@ async function launchDesktop(options: Options, perfFile: string, markers: string
EXTENSIONS_FOLDER,
'--disable-extensions',
'--disable-workspace-trust',
'--disable-features=CalculateNativeWinOcclusion', // disable penalty for occluded windows
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@deepak1556 deepak1556 enabled auto-merge (squash) February 23, 2025 19:22
Copy link
Member

@bpasero bpasero left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As suggested, I would go with exploration builds to test this out, which gives us perf numbers too 🙏

This is incredible btw!!

@deepak1556
Copy link
Contributor Author

Closing in favor of microsoft/vscode#241640

@deepak1556 deepak1556 closed this Feb 23, 2025
auto-merge was automatically disabled February 23, 2025 19:54

Pull request was closed

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