nwjs / nw.js

Call all Node.js modules directly from DOM/WebWorker and enable a new way of writing applications with all Web technologies.
https://nwjs.io
MIT License
40.23k stars 3.88k forks source link

Problem with version >= 0.30.0 and --enable-zero-copy and --disable-gpu-rasterization chromium flags #6581

Open ogo-adp opened 6 years ago

ogo-adp commented 6 years ago

NWJS Version : 0.30.0 / 0.30.1 Operating System : Windows 7 and 10 64 bits

Expected behavior

Using the following flags in package.json "chromium-args": "--disable-gpu-rasterization --enable-zero-copy" should work properly. It is working fine for versions 0.26 to 0.29 and official chrome 66. We need this for performance reasons on some hardware.

Actual behavior

Since version 0.30.0 (chromium 66), nw.js displays black content. The same flags works properly in official chrome 66 so it does not seem to be an upstream bug.

How to reproduce

Create a package.json with these args, and open url chrome://flags (or any other url). "chromium-args": "--disable-gpu-rasterization --enable-zero-copy"

Using only "--enable-zero-copy" combo boxes will not render correctly (black) Using both "--disable-gpu-rasterization" and "--enable-zero-copy" the whole page will be black

ogo-adp commented 6 years ago

Extract of chrome debug log : [8388:4480:0425/133146.391:WARNING:push_messaging_service_factory.cc(30)] PushMessagingService could not be built because InstanceID is unexpectedly disabled [8388:4480:0425/133146.915:WARNING:push_messaging_service_factory.cc(30)] PushMessagingService could not be built because InstanceID is unexpectedly disabled [13080:11132:0425/133147.276:ERROR:gl_utils.cc(277)] [.DisplayCompositor-000000000C3BE420] GL_INVALID_OPERATION: Texture was not generated [13080:11132:0425/133147.279:ERROR:gl_utils.cc(277)] [.DisplayCompositor-000000000C3BE420] GL_INVALID_OPERATION: Texture was not generated [13080:11132:0425/133147.279:ERROR:gl_utils.cc(277)] [.DisplayCompositor-000000000C3BE420] GL_INVALID_OPERATION: Texture was not generated [13080:11132:0425/133147.279:ERROR:gl_utils.cc(277)] [.DisplayCompositor-000000000C3BE420] GL_INVALID_OPERATION: Texture was not generated [13080:11132:0425/133147.299:ERROR:gl_utils.cc(277)] [.DisplayCompositor-000000000C3BE420] GL_INVALID_OPERATION: Texture was not generated ... last line repeated many times

ogo-adp commented 6 years ago

Comparing chrome://gpu output for official chrome and nw.js it seems like CheckerImaging is enabled on nw.js. Using --disable-checker-imaging arg does disable CheckerImaging but app is still broken

Christywl commented 6 years ago

I can reproduce this issue on Windows with nwjs-sdk-v0.30.1. It works fine on Linux/Mac.

{
  "name": "6581",
  "main": "chrome://flags",
  "chromium-args": "--disable-gpu-rasterization --enable-zero-copy"
}