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
•