orillusion
orillusion copied to clipboard
[Topic]: Comparison of WebGPU performance in different operating systems
*All samples run on the same physical device. *All samples are from WebGPU-samples. *All systems are native and do not have a virtual machine. *All sample pages run in fullscreen, using [Command + Shift + F] on macOS and [F11] on Windows. *All sample FPS statistics are from Chrome's Render Frame status.
Device: MacBook Air (2015)
CPU: Intel Core i5-5250U @1.6GHz
GPU: Intel HD Graphics 6000
RAM: DDR3 4GB
Sample | macOS 12.6.5 (Chrome 113.0.5672.92) |
Windows 11 (Chrome 113.0.5672.92) |
macOS 12.6.5 (Canary 115.0.5773.0) |
Windows 11 (Canary 115.0.5773.0) |
---|---|---|---|---|
instancedCube | 59.4 FPS | 59.4 FPS | 59.4 FPS | 59.4 FPS |
fractalCube | 59.4 FPS | 59.4 FPS | 59.4 FPS | 59.4 FPS |
cubemap | 59.4 FPS | 59.4 FPS | 59.4 FPS | 59.4 FPS |
computeBoids | 59.4 FPS | 59.4 FPS | 59.4 FPS | 59.4 FPS |
animometer (20k) |
42.6 FPS | 42.6 FPS | 42.0 FPS | 42.0 FPS |
videoUploading | 59.4 FPS | 59.4 FPS | 59.4 FPS | 59.4 FPS |
shadowMapping | 59.4 FPS | 59.4 FPS | 59.4 FPS | 59.4 FPS |
deferredRendering (256 light) |
59.4 FPS | 59.4 FPS | 59.4 FPS | 59.4 FPS |
deferredRendering (512 light) |
51.0 FPS | 43.8 FPS | 51.0 FPS | 45.6 FPS |
deferredRendering (1024 light) |
33.6 FPS | 28.2 FPS | 33.6 FPS | 28.8 FPS |
particles | 59.4 FPS | 59.4 FPS | 59.4 FPS | 59.4 FPS |
cornell | 54.0 FPS | error: bgra8unorm-storage not supported |
52.8 FPS | error: bgra8unorm-storage not supported |
gameOfLife | 59.4 FPS | 59.4 FPS | 59.4 FPS | 59.4 FPS |
renderBundles (5k) |
56.4 FPS | 59.4 FPS | 51.6 FPS | 59.4 FPS |
renderBundles (10k) |
39.6 FPS | 59.4 FPS | 38.4 FPS | 59.4 FPS |
For the last two renderBundle
test, please try without keep writing transformationMatrix
.
Becase the writeBuffer
got much worse performance in intel Macs. So for a same big number matrix, the mac end up with a much slower result.
If try the test without writeBuffer
, only test executeBundles
perofmacne, I belive you will get a very closed result.
by the way, the M1/2 Macs got much better
writeBuffer
performance due to itsunified memory
But after all, the writeBuffer
in WebGPU has some performance issues compared to bufferSubData
in WebGL
You can try a live demo in https://codepen.io/ShuangLiu/pen/YzEEmLa to check the difference
Chromium also addressed some disccustions about writeBuffer
:
https://bugs.chromium.org/p/chromium/issues/detail?id=1298309&q=writeBuffer&can=2
https://bugs.chromium.org/p/chromium/issues/detail?id=1266727&q=writeBuffer&can=2