orillusion icon indicating copy to clipboard operation
orillusion copied to clipboard

[Topic]: Comparison of WebGPU performance in different operating systems

Open Codeboy-cn opened this issue 1 year ago • 1 comments

*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

Codeboy-cn avatar May 16 '23 11:05 Codeboy-cn

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 its unified 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

lslzl3000 avatar May 16 '23 14:05 lslzl3000