Bug 254386 - [ANGLE] Implement GL_ANGLE_metal_schedule extension
Summary: [ANGLE] Implement GL_ANGLE_metal_schedule extension
Status: RESOLVED WONTFIX
Alias: None
Product: WebKit
Classification: Unclassified
Component: ANGLE (show other bugs)
Version: Other
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Dan Glastonbury
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2023-03-23 18:13 PDT by Dan Glastonbury
Modified: 2023-03-29 17:05 PDT (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Dan Glastonbury 2023-03-23 18:13:47 PDT
In angleproject:7809 the default behavior of Flush() was changed to become a "no
wait" instead of "wait for scheduled". This changes the semantics of Flush() on
ANGLE compared to Apple OpenGL, meaning that Flush() can no longer to signal to
the GPU the dependency of operations affecting IOSurfaces when working with
multiple APIs, such as CoreGraphics.

Instead of reverting the behavior change to Flush(), this change provides a way
to ensure that all queued operations currently in the pipeline have had their
resources readied and are waiting for the GPU to process them. Currently,
Finish() is required to ensure these dependencies are met where Schedule() would
suffice.
Comment 1 Radar WebKit Bug Importer 2023-03-23 18:14:19 PDT
<rdar://problem/107163821>
Comment 2 Dan Glastonbury 2023-03-23 18:20:59 PDT
Pull request: https://github.com/WebKit/WebKit/pull/11899
Comment 3 Kenneth Russell 2023-03-29 17:01:52 PDT
As mentioned on the pull request, https://github.com/WebKit/WebKit/pull/11899 , unfortunately our teams collided on this needed feature. It's already been implemented in ANGLE as the EGL extension EGL_ANGLE_wait_until_work_scheduled in https://bugs.chromium.org/p/angleproject/issues/detail?id=7890 . I think WebKit's copy of ANGLE has already rolled forward to pick up this extension. Does it suit your needs?
Comment 4 Dan Glastonbury 2023-03-29 17:03:38 PDT
Yes, I've project my work on top of EGL_ANGLE_wait_until_work_scheduled. I'll close this bug and PR.