Open
Bug 1331026
Opened 8 years ago
Updated 2 years ago
When ANGLE is enabled, WebGL 2 gl.blitFramebuffer() is sometimes implemented in software, causing an estimated -66% performance impact
Categories
(Core :: Graphics: CanvasWebGL, enhancement, P3)
Tracking
()
NEW
People
(Reporter: jujjyl, Unassigned)
Details
(Whiteboard: gfx-noted)
Attachments
(1 file)
291.89 KB,
image/png
|
Details |
Profiling WebGL 2 demo "AtF" which uses gl.blitFramebuffer, it looks like when ANGLE is enabled on Windows, its D3D11 backend implements the function sometimes(?) in software, which is disastrous for rendering performance in the demo.
Not sure at this point if this is necessary e.g. due to some missing D3D11 functionality compared to OpenGL, or if it is just an unoptimized path in ANGLE, so either
a) issue a performance warning (I'm starting to love these, since they guide people to avoid these types of cliffs that exist in GL a lot), and document the best practices to avoid issues, or
b) optimize the ANGLE path if possible so GPU -> CPU -> GPU roundtrip is not needed?
Attached an example callstack. With ANGLE disabled, the demo gets 60fps with no obvious WebGL related hotspots (biggest hotspot is then actually in JS engine). With ANGLE enabled, the demo gets about 20fps. Not sure if all of the lost performance is due to glBlitFramebuffer, but that is the biggest one that shows up.
Updated•8 years ago
|
Whiteboard: gfx-noted
Updated•8 years ago
|
Priority: -- → P3
Comment 1•7 years ago
|
||
Interesting! does it only happen in a few of WebGL demos or most of them?
Updated•5 years ago
|
Type: defect → enhancement
Updated•2 years ago
|
Severity: normal → S3
You need to log in
before you can comment on or make changes to this bug.
Description
•