fix(desktop): add --no-angle for Windows GPU crash and implement HERMES_DESKTOP_DISABLE_GPU - #45341
Open
annguyenNous wants to merge 1 commit into
Open
fix(desktop): add --no-angle for Windows GPU crash and implement HERMES_DESKTOP_DISABLE_GPU#45341annguyenNous wants to merge 1 commit into
annguyenNous wants to merge 1 commit into
Conversation
…ES_DESKTOP_DISABLE_GPU Windows with older Intel integrated graphics (WDDM 1.x drivers) crashes the GPU process on startup with exit_code=-2147483645. The ANGLE graphics abstraction layer is the culprit; --no-angle forces Chromium to use the basic Direct3D renderer instead. Also implements the HERMES_DESKTOP_DISABLE_GPU env var that was documented in comments but never actually checked. Setting it to 1/true/yes now forces software rendering regardless of platform. Fixes NousResearch#45226
tonydwb
approved these changes
Jun 13, 2026
tonydwb
left a comment
There was a problem hiding this comment.
Code Review Summary
Verdict: Approved
Clean, well-scoped fix/feature with comprehensive tests. No issues found.
- Logic is correct and focused
- Tests cover the new behavior
- No security concerns
- Good error handling
Reviewed by Hermes Agent
This was referenced Jun 19, 2026
Closed
teknium1
reviewed
Jul 14, 2026
teknium1
left a comment
Contributor
There was a problem hiding this comment.
Thanks for documenting the Windows Intel-GPU reproduction and the reported --no-angle workaround from #45226.
Problems
- The PR modifies
apps/desktop/electron/main.cjs, but current main migrated that entry point toapps/desktop/electron/main.tsin 39d0945; the relevant pre-ready block is now atmain.ts:163-194. - The override portion is already superseded:
bootstrap-platform.ts:67-76parsesHERMES_DESKTOP_DISABLE_GPU, andhermes_cli/main.py:5654-5660provides the supporteddesktop.disable_gpuconfig bridge. The existing behavior is covered bybootstrap-platform.test.ts:71-85. - No regression test accompanies the proposed Windows-only command-line switch policy.
Suggested changes
- Salvage only the still-unresolved automatic Windows
no-angle/use-gl=disabledpolicy intoapps/desktop/electron/main.tsbeforeapp.ready, if maintainers retain that workaround. - Keep GPU configuration user-facing through
desktop.disable_gpuanddesktop.electron_flags, rather than adding another environment-variable surface. - Add a focused Windows/non-Windows regression test for the retained switch policy.
Automated hermes-sweeper review.
| @@ -136,14 +136,29 @@ function hiddenWindowsChildOptions(options = {}) { | |||
| // switches only apply pre-launch. Override with HERMES_DESKTOP_DISABLE_GPU | |||
| // (1/true → always disable, 0/false → keep GPU on). | |||
| const REMOTE_DISPLAY_REASON = detectRemoteDisplay() | |||
Contributor
There was a problem hiding this comment.
Current main already implements this override through apps/desktop/electron/bootstrap-platform.ts:67-76 and exposes the supported config.yaml surface at hermes_cli/main.py:5654-5660. Please do not duplicate the user-facing environment-variable mechanism when salvaging.
This was referenced Jul 18, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #45226 — Hermes Desktop crashes on Windows with older Intel integrated graphics (WDDM 1.x drivers) due to the ANGLE graphics abstraction layer crashing the GPU process on startup (
exit_code=-2147483645).Changes
Add
--no-angleflag for Windows: Forces Chromium to use the basic Direct3D renderer instead of ANGLE, preventing the GPU process crash on Intel integrated graphics.Add
--disable-gpu-compositingand--use-gl=disabledfor Windows: Belt-and-suspenders approach to ensure stable rendering on Windows with problematic GPU drivers.Implement
HERMES_DESKTOP_DISABLE_GPUenv var: The comment at line 136 documented this override but it was never actually implemented. SettingHERMES_DESKTOP_DISABLE_GPU=1/true/yesnow forces software rendering regardless of platform.Test Plan
HERMES_DESKTOP_DISABLE_GPU=1forces software rendering