fix(windows): 全环境统一软件渲染——根治多机白屏(RDP/老显卡/驱动差异)
用户实测三台电脑(Win10×2/Win11×1)安装后白屏,远程与非远程均有;进程与 HTTP 服务完全健康(manifest 可访问、cmd 无报错)——纯渲染层失败。属于 Flutter Windows 引擎 GPU/ANGLE 渲染在真实环境的已知兼容性问题 (flutter/flutter#74856:RDP 会话 OpenGL 不可用白屏;老/虚拟显卡同理)。 方案:wWinMain 入口(引擎创建前)设置 FLUTTER_ENGINE_SWITCHES= --enable-software-rendering,全部环境统一软件渲染。本应用为轻量状态页 (列表/卡片/图标),软件渲染性能无感;换来 RDP、老显卡、驱动缺失等 一切图形环境可用。此前 ANGLE_PLATFORM_BACKEND=d3d9 试验失败(Flutter 自带的 ANGLE 仅含 d3d11 后端),软件渲染是为该场景设计的官方开关。
This commit is contained in:
1 parent
98df601f7b
commit
1f0f5b4503
1 file changed
+6
@@ -7,6 +7,12 @@
|
||||
|
||||
int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev,
|
||||
_In_ wchar_t *command_line, _In_ int show_command) {
|
||||
// 统一软件渲染:Flutter 的 GPU/ANGLE 渲染在多种真实环境下初始化失败导致
|
||||
// 白屏窗口(RDP 远程会话、老显卡/驱动、虚拟显卡——实测远程与非远程机器
|
||||
// 均有白屏,而进程与 HTTP 服务本身健康)。本应用界面为轻量状态页,软件
|
||||
// 渲染性能足够;引擎开关必须在引擎创建前经 FLUTTER_ENGINE_SWITCHES 注入。
|
||||
SetEnvironmentVariable(L"FLUTTER_ENGINE_SWITCHES", L"--enable-software-rendering");
|
||||
|
||||
// Attach to console when present (e.g., 'flutter run') or create a
|
||||
// new console when running with a debugger.
|
||||
if (!::AttachConsole(ATTACH_PARENT_PROCESS) && ::IsDebuggerPresent()) {
|
||||
|
||||
Reference in new issue
Block a user