XRWebGLLayer doesn't delete framebuffers when exiting the immersive mode.
Categories
(Core :: WebVR, defect)
Tracking
()
Tracking | Status | |
---|---|---|
firefox77 | --- | fixed |
People
(Reporter: daoshengmu, Assigned: daoshengmu)
Details
Attachments
(2 files)
1.35 KB,
patch
|
Details | Diff | Splinter Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review |
-
I can see
BufferQueue has been abandoned
error log when every time exiting immersive mode, WebVR doesn’t see this error. I will cause WebXR can't enter immersive mode after a couple of times. https://immersive-web.github.io/webxr-input-profiles/packages/viewer/dist/index.html -
After a couple of times enter/exit the immersive mode, FxR will be have a OOM-like crash. One of the reason is like FrameBuffer doesn't be deleted after XRWebGLLayer is recycled. I noticed
mFrameBuffer
[1] is always null. After applying my wip patch this problem seems to be better. -
When running Jumpy balls in FxR, I can see WebGL context is lost, after recreating it again and again,
THREE.WebGLRenderer: Context Lost.
THREE.WebGLRenderer: Context Restored.
WebGL warning: bindFramebuffer: `fb` is from a different (or lost) WebGL context.
However, Firefox Desktop doesn’t have this error, just can’t enter to the immersive mode.
Assignee | ||
Comment 1•5 years ago
|
||
Comment 2•5 years ago
|
||
Comment 3•5 years ago
|
||
I found that the XRWebGLLayer framebuffer is not released when exiting WebXR. I posted a patch to release it as soon as we exit immersive mode, instead of relying on garbage collector which may be delayed if the objects are kept in JS or Gecko.
Comment 5•5 years ago
|
||
bugherder |
Assignee | ||
Updated•5 years ago
|
Description
•