Savage performance hit on some systems...

11 views
Skip to first unread message

John Peat

unread,
Jan 9, 2013, 8:58:09 PM1/9/13
to node-...@googlegroups.com
I've create a simple Box2D/Canvas graphical demo/performance test with the latest node-webkit to test it out on a few systems (it also uses AUDIO, WebWorkers and some other stuff).

On newersystems (running XP or W7) the demo runs at close-to-the-same speeds it does on native Chrome on that same system.

On one of my test systems the performance just collapses tho - the different is MASSIVE and I'm wondering where I should start looking for the cause?

In native Chrome the demo runs at between 25 and 45 FPS (and 45 physics steps/sec) reasonably well.  In the packaged node-webkit form it runs well under 1fps/1step/sec - that's a pretty staggering drop in performance!  There are also rendering errors with the Canvas which may just be down to the sheer lack of performance or could relate to other things!?

The test system is an old Centrino Laptop - Dual Core but only 1.2Ghz and a SLOW low-power HDD - it's running XP (32Bit).

To check it wasn't a Chrome/Chromium issue I put the latest Chromium build on that laptop and it runs the demo at 25-45 FPS - same as Chrome (Public) does.

Any ideas why I'm seeing such a massive drop-off in the node-webkit version?

I wondered if it was down to GPU acceleration detection but the only options for Chromium seem to be to DISABLE GPU stuff, not to forcibly enable it (Chrome/Chromium are using the Intel GPU as far as I can tell)

TIA

Roger WANG

unread,
Jan 9, 2013, 9:12:09 PM1/9/13
to John Peat, node-...@googlegroups.com
John Peat <john...@gmail.com> writes:

> I've create a simple Box2D/Canvas graphical demo/performance test with the
> latest node-webkit to test it out on a few systems (it also uses AUDIO,
> WebWorkers and some other stuff).
>
> On newersystems (running XP or W7) the demo runs at close-to-the-same
> speeds it does on native Chrome on that same system.
>
> On one of my test systems the performance just collapses tho - the
> different is MASSIVE and I'm wondering where I should start looking for the
> cause?
>
> In native Chrome the demo runs at between 25 and 45 FPS (and 45 physics
> steps/sec) reasonably well. In the packaged node-webkit form it runs well
> under 1fps/1step/sec - that's a pretty staggering drop in performance!
> There are also rendering errors with the Canvas which may just be down to
> the sheer lack of performance or could relate to other things!?

It seems to be canvas. To narrow it down Devtools might help.

> The test system is an old Centrino Laptop - Dual Core but only 1.2Ghz and a
> SLOW low-power HDD - it's running XP (32Bit).
>
> To check it wasn't a Chrome/Chromium issue I put the latest Chromium build
> on that laptop and it runs the demo at 25-45 FPS - same as Chrome (Public)
> does.
>
> Any ideas why I'm seeing such a massive drop-off in the node-webkit version?
>
> I wondered if it was down to GPU acceleration detection but the only
> options for Chromium seem to be to DISABLE GPU stuff, not to forcibly
> enable it (Chrome/Chromium are using the Intel GPU as far as I can
> tell)

It could be Gfx stuff. node-webkit is based on new versions of Chromium,
close to versions in the Dev channel. Did you try Dev channel Chromium?
And could you please provide the GFX driver version?

Disabling GPU acceleration might help on some hardware, because some
version of driver on some hardware doesn't play well with Chromium when
GPU acceleration is turned on. So the upstream has a GPU blacklist.
--
Roger WANG Intel Open Source Technology Center

Trevor Linton

unread,
Jan 10, 2013, 12:57:54 PM1/10/13
to node-...@googlegroups.com
Can you load up chrome://gpu-internals/ on the test machine with problems (within node-webkit) and copy/paste the results?

John Peat

unread,
Jan 10, 2013, 3:29:00 PM1/10/13
to node-...@googlegroups.com
This is the output of chrome://gpu-internals as given by the latest public download of Chromium on that system

Graphics Feature Status
Canvas: Software only. Hardware acceleration disabled.
Compositing: Hardware accelerated
3D CSS: Unavailable. Hardware acceleration unavailable
CSS Animation: Software only, hardware acceleration unavailable
WebGL: Hardware accelerated
WebGL multisampling: Unavailable. Hardware acceleration unavailable
Flash 3D: Unavailable. Hardware acceleration unavailable
Flash Stage3D: Hardware accelerated
Texture Sharing: Hardware accelerated
Video Decode: Software only, hardware acceleration unavailable
Video: Software only, hardware acceleration unavailable
Panel Fitting: Unavailable. Hardware acceleration disabled.
Problems Detected
Drivers older than 2009-01 on Windows are possibly unreliable.: 72979, 89802
Intel drivers older than 14.42.7.5294 on Windows XP are possibly unreliable.: 74212
Disable 3D (but not Stage3D) in Flash on XP: 134885
Enable panel fitting capability on ChromeOS only on IVB and SNB Graphics Controllers.
Hardware video decode is only supported in win7+.: 159458
Accelerated 2D canvas is unavailable: either disabled at the command line or not supported by the current system.
Panel fitting is unavailable, either disabled at the command line or not supported by the current system.
Version Information
Data exported 1/10/2013 8:26:26 PM
Chrome version 26.0.1379.0 (Developer Build 175838)
Operating system Windows NT 5.1 SP3
Software rendering list version 4.9
ANGLE revision 1641
2D graphics backend Skia
Performance Information
Graphics 0.0
Gaming 0.0
Overall 0.0
Driver Information
Initialization time 1320
Sandboxed false
GPU0 VENDOR = 0x8086, DEVICE= 0x27a2
Optimus false
AMD switchable false
Driver vendor Intel Corporation
Driver version 6.14.10.4926
Driver date 2-15-2008
Pixel shader version 2.0
Vertex shader version 0.0
Machine model
GL version
GL_VENDOR
GL_RENDERER
GL_VERSION
GL_EXTENSIONS
Diagnostics
0
b3DAccelerationEnabled true
b3DAccelerationExists true
bAGPEnabled true
bAGPExistenceValid true
bAGPExists false
bCanRenderWindow true
bDDAccelerationEnabled true
bDriverBeta false
bDriverDebug false
bDriverSigned false
bDriverSignedValid false
bNoHardware false
dwBpp 32
dwDDIVersion 9
dwHeight 800
dwRefreshRate 60
dwWHQLLevel 0
dwWidth 1280
iAdapter 0
lDriverSize 57344
lMiniVddSize 5854752
szAGPStatusEnglish Not Available
szAGPStatusLocalized Not Available
szChipType Intel(R) GMA 950
szD3DStatusEnglish Enabled
szD3DStatusLocalized Enabled
szDACType Internal
szDDIVersionEnglish 9 (or higher)
szDDIVersionLocalized 9 (or higher)
szDDStatusEnglish Enabled
szDDStatusLocalized Enabled
szDXVAModes
szDescription Mobile Intel(R) 945 Express Chipset Family
szDeviceId 0x27A2
szDeviceIdentifier {D7B78E66-64E2-11CF-B260-AB10A2C2CB35}
szDeviceName \\.\DISPLAY1
szDisplayMemoryEnglish 128.0 MB
szDisplayMemoryLocalized 128.0 MB
szDisplayModeEnglish 1280 x 800 (32 bit) (60Hz)
szDisplayModeLocalized 1280 x 800 (32 bit) (60Hz)
szDriverAttributes Final Retail
szDriverDateEnglish 2/15/2008 14:12:06
szDriverDateLocalized 15/02/2008 14:12:06
szDriverLanguageEnglish English
szDriverLanguageLocalized English
szDriverName igxprd32.dll
szDriverSignDate
szDriverVersion 6.14.0010.4926
szKeyDeviceID Enum\PCI\VEN_8086&DEV_27A2&SUBSYS_30A1103C&REV_03
szKeyDeviceKey \REGISTRY\Machine\System\ControlSet001\Services\ialm\Device0
szManufacturer Intel Corporation
szMiniVdd igxpmp32.sys
szMiniVddDateEnglish 2/15/2008 14:12:06
szMiniVddDateLocalized 15/02/2008 14:12:06
szMonitorMaxRes 1600,1200
szMonitorName Plug and Play Monitor
szNotesEnglish No problems found.
 To test DirectDraw functionality, click the "Test DirectDraw" button above.
 To test Direct3D functionality, click the "Test Direct3D" button above.
szNotesLocalized No problems found.
 To test DirectDraw functionality, click the "Test DirectDraw" button above.
 To test Direct3D functionality, click the "Test Direct3D" button above.
szRegHelpText
szRevision
szRevisionId 0x0003
szSubSysId 0x30A1103C
szTestResultD3D7English Not run
szTestResultD3D7Localized Not run
szTestResultD3D8English Not run
szTestResultD3D8Localized Not run
szTestResultD3D9English Not run
szTestResultD3D9Localized Not run
szTestResultDDEnglish Not run
szTestResultDDLocalized Not run
szVdd n/a
szVendorId 0x8086
Log Messages
GpuProcessHostUIShim: GPU process crashed or exited.

That runs the demo at 25-45fps DESPITE claiming that canvas isn't accelerated - so the dropoff in performance with the node-webkit version probably isn't related to that aspect of it???

John Peat

unread,
Jan 10, 2013, 3:33:23 PM1/10/13
to node-...@googlegroups.com
From Control Panel/System/Device Manager - the driver version for the Intel GPU is 6.14.10.4926 (dated 15/2/2008)

John Peat

unread,
Jan 12, 2013, 9:21:01 PM1/12/13
to node-...@googlegroups.com
By way of an update, I've not gotten far in tracking this problem down.  It seems that when you are making the browser work hard (the main thread drawing canvas and a WebWorker thread running Box2D) the whole process is becoming CPU bound - the browser becomes unresponsive, the dev tools report nothing useful etc. etc.

It's hard to scale-back the demo to a useful degree but I'll keep tinkering.  I've tried node-webkit with some much less demanding stuff and it generally runs at near-the-same-speed as the page running in regular Chromium (even on this slow laptop).

Oh - I also disabled WebWorkers to see if it was a specific issue with the extra thread but that made no difference at all - although if I can make a 'less demanding' demo I'll try that again just in case it's a factor

Roger

unread,
Jan 12, 2013, 10:36:18 PM1/12/13
to node-...@googlegroups.com
In a private email you said the devtools is very slow. So I suggested
that you've hit the same issue as
https://github.com/rogerwang/node-webkit/issues/318 .

Does the workaround work on your side?

Roger

John Peat

unread,
Jan 25, 2013, 7:27:15 PM1/25/13
to node-...@googlegroups.com
Before I could hack around with the dev-tools, I noticed you'd released 0.4.0 so I downloaded that and ran a few tests.

The big performance is isn't only gone - it's actually now running a bit BETTER than stock/release Chromium!!

I'm guessing this is purely an issue relating to the release of Chromium you've used in each case - probably relating to GPU acceleration or other issues!?

Either way, node-webkit running BETTER than the latest Chromium (release) or even Chrome - is a great thing :)

Thanks for the help!
Reply all
Reply to author
Forward
0 new messages