For each ANGLE-produced WebGL frame, we'd want to retrieve a dmabuf buffer via GBMBufferSwapchain, impose it as the backing for the texture that's being used as the default framebuffer color attachment, and finally push it into the rendering pipeline once the frame is complete. Upon the next frame the swapchain would provide a different buffer, and the cycle repeats.
Created attachment 454692 [details]
Early, but functions on the most basic WebGL content. It still needs cleanup, proper understanding of what's used in different configurations sharing this code, and how other things like preserved-drawing-buffer affect this.
Created attachment 455475 [details]
Created attachment 455633 [details]
Created attachment 455901 [details]
Created attachment 455914 [details]
Comment on attachment 455914 [details]
View in context: https://bugs.webkit.org/attachment.cgi?id=455914&action=review
LGTM! Just check the unguarded line to make sure we do not break other compilations.
> + m_swapchain.displayBO = WTFMove(m_swapchain.drawBO);
This needs to be guarded with the TEXTURE_MAPPER_DMABUF. It is causing the wincairo failure.
Created attachment 455994 [details]
Patch for landing
Committed r292025 (248968@main): <https://commits.webkit.org/248968@main>
All reviewed patches have been landed. Closing bug and clearing flags on attachment 455994 [details].