This CL is the Chrome-side alternative to the ANGLE-side fix in crrev.com/c/8076822. Per geofflang@'s feedback there — prefer having Chrome use a single display rather than teaching the ANGLE GL backend to support multiple displays — it fixes the bug in ui/ozone by reusing the main GLDisplayEGL. If this lands, I will abandon 8076822.
I'm new to Chromium contribution and don't yet have CQ/try-job access, so I can't trigger trybots myself. Could a committer kick a CQ dry-run — in particular gpu-fyi-try-linux-amd-rel (the AMD RX 5500 XT config from the bug) — to confirm this fixes crbug.com/533452084? Separately, if possible I'd appreciate being granted try-job access so I can run bots myself going forward. Thanks!
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Code-Review | +1 |
lgtm
Please wrap description to 72 columns. You can click the edit button, then the format button to do this automatically
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
Please wrap description to 72 columns. You can click the edit button, then the format button to do this automatically
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
@Geoff Lang, could you take a look when you have a moment?
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Code-Review | +1 |
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
Ozone/X11: Reuse the main GL display for native pixmap import
On the ANGLE GLX backend, importing a hardware-decoded video frame
corrupted subsequent GL work, failing webcodecs_tests on Linux ANGLE GL
bots (e.g. AMD RX 5500 XT) with frame corruption and GPU-process
crashes.
NativePixmapEGLX11Binding created its own EGLDisplay via a visual-less
eglGetDisplay(). Once ANGLE's display cache started keying on
EGL_X11_VISUAL_ID_ANGLE, that no longer matched the compositor's
visual-specific display, so a second DisplayGLX was created whose init
left a probe context current on the thread and never restored the
compositor's; ANGLE then elided the rebind because it tracks the current
context per-display.
Reuse the process-wide GLDisplayEGL (like the dma-buf sibling
NativePixmapEGLBinding) so only one display exists. It is already
initialized and owned by GLDisplayManagerEGL, so the redundant
eglInitialize() is dropped(the binding must not init/terminate a display
it does not own).
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |