-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[ANGLE] Don't lose Metal-backed contexts for non-fatal errors #17573
[ANGLE] Don't lose Metal-backed contexts for non-fatal errors #17573
Conversation
EWS run on previous version of this PR (hash fa895ab)
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The problem is that the submit is lossy.
For example, if we submit work that should signal an event and the system responds "not permitted" and we drop the queue to floor then the waiter will time out.
So we need to devise a way to do something useful.
I'm not sure OpenGL as an API bends to such a direction where the flushed commands aren't executed.
We should guarantee that we are not submitting work while backgrounded.
Some work related to this patch is still needed, but I'm not sure what's the strategy.
This is a stop gap until we can guarantee that we are not submitting work while backgrounded. The reasoning being we were submitting work in the background previously and ignore any error returned. This means that for your example, we have always been dropping the queue on the floor and not signalling the event. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ok
fa895ab
to
9c90757
Compare
EWS run on current version of this PR (hash 9c90757)
|
https://bugs.webkit.org/show_bug.cgi?id=261313 rdar://115152037 Reviewed by Kimmo Kinnunen. Since Bug 257584, Any errors from Metal command buffer submission are treated as causing a lost device. MTLCommandBufferErrorNotPermitted is a non-fatal error that is reported when a page with active WebGL moves to the background on iPhoneOS/iPadOS. This error is ignored to avoid needlessly losing all WebGL contexts since they can't be recovered once lost and need to be recreated. * Source/ThirdParty/ANGLE/changes.diff: * Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_command_buffer.mm: (rx::mtl::CommandQueue::onCommandBufferCompleted): Canonical link: https://commits.webkit.org/267784@main
9c90757
to
e1280c4
Compare
Committed 267784@main (e1280c4): https://commits.webkit.org/267784@main Reviewed commits have been landed. Closing PR #17573 and removing active labels. |
e1280c4
9c90757
🧪 wpe-wk2