Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 0e48ee99a1fc29e246900829c7e241587e59d22d https://github.com/WebKit/WebKit/commit/0e48ee99a1fc29e246900829c7e241587e59d22d Author: Carlos Garcia Campos <cgar...@igalia.com> Date: 2023-06-15 (Thu, 15 Jun 2023)
Changed paths: M Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp M Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.h M Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.messages.in M Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp M Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.h Log Message: ----------- [GTK] Use three buffers for DMA-BUF renderer https://bugs.webkit.org/show_bug.cgi?id=257475 Reviewed by Alejandro G. Castro. Two buffers is not enough, because we might be rendering in the UI process with the buffer that is being used by the web process. The first time we render a frame in the UI process we notify the web process that the buffer has been painted and web process does a swap and starts rendering the next frame. If there's a web view redraw before the next frame message is received in the UI process we would be using the current web process back buffer to repaint. This patch adds a third buffer, the display buffer, that is the one always used by the UI process for rendering and ensured that is never used by the web process as the back buffer until a new display buffer is set in the UI process. * Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp: (WebKit::AcceleratedBackingStoreDMABuf::Texture::Texture): (WebKit::AcceleratedBackingStoreDMABuf::Texture::~Texture): (WebKit::AcceleratedBackingStoreDMABuf::Texture::frame): (WebKit::AcceleratedBackingStoreDMABuf::Texture::willDisplayFrame): (WebKit::AcceleratedBackingStoreDMABuf::Texture::prepareForRendering): (WebKit::AcceleratedBackingStoreDMABuf::Surface::Surface): (WebKit::AcceleratedBackingStoreDMABuf::Surface::~Surface): (WebKit::AcceleratedBackingStoreDMABuf::Surface::frame): (WebKit::AcceleratedBackingStoreDMABuf::Surface::willDisplayFrame): (WebKit::AcceleratedBackingStoreDMABuf::Surface::prepareForRendering): (WebKit::AcceleratedBackingStoreDMABuf::configure): (WebKit::AcceleratedBackingStoreDMABuf::configureSHM): (WebKit::AcceleratedBackingStoreDMABuf::createSource): (WebKit::AcceleratedBackingStoreDMABuf::frame): (WebKit::AcceleratedBackingStoreDMABuf::willDisplayFrame): (WebKit::AcceleratedBackingStoreDMABuf::snapshot): (WebKit::AcceleratedBackingStoreDMABuf::paint): (WebKit::AcceleratedBackingStoreDMABuf::Texture::swap): Deleted. (WebKit::AcceleratedBackingStoreDMABuf::Surface::swap): Deleted. * Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.h: * Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.messages.in: * Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp: (WebKit::AcceleratedSurfaceDMABuf::RenderTarget::RenderTarget): (WebKit::AcceleratedSurfaceDMABuf::RenderTarget::~RenderTarget): (WebKit::AcceleratedSurfaceDMABuf::RenderTarget::didRenderFrame): (WebKit::AcceleratedSurfaceDMABuf::RenderTarget::didDisplayFrame): (WebKit::AcceleratedSurfaceDMABuf::RenderTargetEGLImage::create): (WebKit::AcceleratedSurfaceDMABuf::RenderTargetEGLImage::RenderTargetEGLImage): (WebKit::AcceleratedSurfaceDMABuf::RenderTargetEGLImage::~RenderTargetEGLImage): (WebKit::AcceleratedSurfaceDMABuf::RenderTargetEGLImage::didRenderFrame): (WebKit::AcceleratedSurfaceDMABuf::RenderTargetEGLImage::didDisplayFrame): (WebKit::AcceleratedSurfaceDMABuf::RenderTargetSHMImage::create): (WebKit::AcceleratedSurfaceDMABuf::RenderTargetSHMImage::RenderTargetSHMImage): (WebKit::AcceleratedSurfaceDMABuf::RenderTargetSHMImage::didRenderFrame): (WebKit::AcceleratedSurfaceDMABuf::RenderTargetSHMImage::didDisplayFrame): (WebKit::AcceleratedSurfaceDMABuf::frameDone): (WebKit::AcceleratedSurfaceDMABuf::RenderTarget::swap): Deleted. (WebKit::AcceleratedSurfaceDMABuf::RenderTargetEGLImage::swap): Deleted. (WebKit::AcceleratedSurfaceDMABuf::RenderTargetSHMImage::didRenderFrame const): Deleted. (WebKit::AcceleratedSurfaceDMABuf::RenderTargetSHMImage::swap): Deleted. * Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.h: Canonical link: https://commits.webkit.org/265192@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes