-
Notifications
You must be signed in to change notification settings - Fork 183
Description
Environment
- Build Machine: Windows 11
- Target Machine: Windows Server 2016 (Build 14393.693)
- Visual Studio: 2022
- Chromium Version: 141.0.7390.122
- Repository: ungoogled-chromium-windows (tag: 141.0.7390.122-1.1)
I compiled ungoogled-chromium from source using the official build process (python3 build.py) following the exact
tagged release. The compiled binary fails to initialize GPU/WebGL on Windows Server 2016, while the official
pre-built binary from the same version works perfectly with the same command-line flags.
-
Clone and build:
git clone --recurse-submodules https://github.com/ungoogled-software/ungoogled-chromium-windows.git
cd ungoogled-chromium-windows
git checkout --recurse-submodules 141.0.7390.122-1.1
python3 build.py -
Run on Windows Server 2016 with flags:
chrome.exe --ignore-gpu-blocklist --enable-unsafe-swiftshader --use-gl=angle --use-angle=swiftshader
Expected Behavior (Official Binary)
chrome://gpu shows:
Graphics Feature Status
- WebGL: Hardware accelerated
- WebGL2: Hardware accelerated
- Canvas: Hardware accelerated
- Compositing: Hardware accelerated
...
Problems Detected
- WebGPU has been disabled via blocklist or the command line.
- Some drivers are unable to reset the D3D device in the GPU process sandbox
- Disable KHR_blend_equation_advanced until cc shaders are updated
Actual Behavior (Self-Compiled Binary)
chrome://gpu shows:
Graphics Feature Status
- WebGL: Disabled
- WebGL2: Disabled
- Canvas: Software only. Hardware acceleration disabled
- Compositing: Software only. Hardware acceleration disabled
- OpenGL: Disabled
...
Problems Detected
- WebGPU has been disabled via blocklist or the command line.
- WebGL2 has been disabled via blocklist or the command line.
- Accelerated rasterization has been disabled
- Accelerated video encode has been disabled
- Accelerated video decode has been disabled
- WebGL has been disabled via blocklist or the command line.
- Gpu compositing has been disabled
- Accelerated 2D canvas is unavailable
Log Messages
[ERROR:components\viz\service\main\viz_main_impl.cc:189] : Exiting GPU process due to errors during initialization
[ERROR:gpu\ipc\service\gpu_channel_manager.cc:925] : Failed to create GLES3 context, fallback to GLES2.
[ERROR:gpu\ipc\service\gpu_channel_manager.cc:936] : ContextResult::kFatalFailure: Failed to create shared context
for virtualization.
Key Observations
- Official binary works perfectly - WebGL accelerated, no GPU process crashes
- Self-compiled binary fails - GPU process crashes during initialization, all GPU features disabled
- Same source code - Both built from identical commit (b477534e7e10d193e916cd4e2967c589383625b2)
- Same DLL size - chrome.dll is 244MB in both builds
- --ignore-gpu-blocklist flag has no effect in self-compiled binary
- Copying GPU DLLs from official to compiled build doesn't help
- Issue is specific to Windows Server 2016 - Works fine on Windows 10/11 with GPU
Questions
- Are official binaries built with different compiler flags or on a specific OS version?
- Is there a known incompatibility when building on Windows 11 for Windows Server 2016 target?
- Why does --ignore-gpu-blocklist work in official binaries but not self-compiled ones?
- What could cause GPU initialization to fail in self-compiled but not official binaries from identical source?
Additional Information
- Build configuration used: Default flags.windows.gn + ungoogled-chromium/flags.gn
- Both builds have enable_swiftshader=false in args.gn
- SwiftShader DLLs (libEGL.dll, libGLESv2.dll, vk_swiftshader.dll) are present in both
- The official binary successfully enables SwiftShader-based WebGL on Windows Server 2016
- Self-compiled binary cannot initialize GPU context at all
Any guidance on what might be different between official builds and self-compiled builds that would cause this GPU
initialization failure would be greatly appreciated.