[webkit-changes] [WebKit/WebKit] 8b0322: [GTK] Stop using a fixed amount of buffers for the...
Carlos Garcia Campos
noreply at github.com
Mon Sep 11 04:49:13 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 8b032261f86477144715c7dab48adac6d68aa5d1
https://github.com/WebKit/WebKit/commit/8b032261f86477144715c7dab48adac6d68aa5d1
Author: Carlos Garcia Campos <cgarcia at igalia.com>
Date: 2023-09-11 (Mon, 11 Sep 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
M Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.messages.in
Log Message:
-----------
[GTK] Stop using a fixed amount of buffers for the DMA-BUF renderer
https://bugs.webkit.org/show_bug.cgi?id=261328
Reviewed by Alejandro G. Castro.
At first it was simpler, but having to synchronize the buffer swaps
between UI and web processes ended up being quite complex and weak in
the end. So, instead of creating 3 buffers and send a configure message
with the properties of the 3 buffers, now buffers are created on demand
and a DidCreateBuffer message is sent every time a buffer is created.
When the UI process receives the message the buffer is imported and
added to a map of buffers. The Frame message now includes the buffer ID,
so that UI process can get the imported buffer and schedule a redraw.
When there's a pending buffer on a redraw, the previous committed buffer
is released by sending a message to the web process, and the pending
buffer is committed and then rendered.
* Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp:
(WebKit::AcceleratedBackingStoreDMABuf::~AcceleratedBackingStoreDMABuf):
(WebKit::AcceleratedBackingStoreDMABuf::Buffer::Buffer):
(WebKit::AcceleratedBackingStoreDMABuf::BufferEGLImage::create):
(WebKit::AcceleratedBackingStoreDMABuf::BufferEGLImage::BufferEGLImage):
(WebKit::AcceleratedBackingStoreDMABuf::BufferEGLImage::~BufferEGLImage):
(WebKit::AcceleratedBackingStoreDMABuf::BufferGBM::create):
(WebKit::AcceleratedBackingStoreDMABuf::BufferGBM::BufferGBM):
(WebKit::AcceleratedBackingStoreDMABuf::BufferGBM::~BufferGBM):
(WebKit::AcceleratedBackingStoreDMABuf::BufferGBM::surface const):
(WebKit::AcceleratedBackingStoreDMABuf::BufferSHM::create):
(WebKit::AcceleratedBackingStoreDMABuf::BufferSHM::BufferSHM):
(WebKit::AcceleratedBackingStoreDMABuf::BufferSHM::surface const):
(WebKit::AcceleratedBackingStoreDMABuf::Renderer::setBuffer):
(WebKit::AcceleratedBackingStoreDMABuf::RendererGL::RendererGL):
(WebKit::AcceleratedBackingStoreDMABuf::RendererGL::~RendererGL):
(WebKit::AcceleratedBackingStoreDMABuf::RendererGL::setBuffer):
(WebKit::AcceleratedBackingStoreDMABuf::RendererGL::snapshot const):
(WebKit::AcceleratedBackingStoreDMABuf::RendererGL::paint const):
(WebKit::AcceleratedBackingStoreDMABuf::RendererCairo::setBuffer):
(WebKit::AcceleratedBackingStoreDMABuf::RendererCairo::snapshot const):
(WebKit::AcceleratedBackingStoreDMABuf::RendererCairo::paint const):
(WebKit::AcceleratedBackingStoreDMABuf::didCreateBuffer):
(WebKit::AcceleratedBackingStoreDMABuf::didCreateBufferSHM):
(WebKit::AcceleratedBackingStoreDMABuf::didDestroyBuffer):
(WebKit::AcceleratedBackingStoreDMABuf::ensureRenderer):
(WebKit::AcceleratedBackingStoreDMABuf::frame):
(WebKit::AcceleratedBackingStoreDMABuf::frameDone):
(WebKit::AcceleratedBackingStoreDMABuf::unrealize):
(WebKit::AcceleratedBackingStoreDMABuf::update):
(WebKit::AcceleratedBackingStoreDMABuf::prepareForRendering):
(WebKit::AcceleratedBackingStoreDMABuf::snapshot):
(WebKit::AcceleratedBackingStoreDMABuf::paint):
(WebKit::AcceleratedBackingStoreDMABuf::RenderSource::RenderSource): Deleted.
(WebKit::AcceleratedBackingStoreDMABuf::Texture::Texture): Deleted.
(WebKit::AcceleratedBackingStoreDMABuf::Texture::~Texture): Deleted.
(WebKit::AcceleratedBackingStoreDMABuf::Texture::frame): Deleted.
(WebKit::AcceleratedBackingStoreDMABuf::Texture::willDisplayFrame): Deleted.
(WebKit::AcceleratedBackingStoreDMABuf::Texture::prepareForRendering): Deleted.
(WebKit::AcceleratedBackingStoreDMABuf::Texture::snapshot const): Deleted.
(WebKit::AcceleratedBackingStoreDMABuf::Texture::paint const): Deleted.
(WebKit::AcceleratedBackingStoreDMABuf::Surface::Surface): Deleted.
(WebKit::AcceleratedBackingStoreDMABuf::Surface::~Surface): Deleted.
(WebKit::AcceleratedBackingStoreDMABuf::Surface::map const): Deleted.
(WebKit::AcceleratedBackingStoreDMABuf::Surface::frame): Deleted.
(WebKit::AcceleratedBackingStoreDMABuf::Surface::willDisplayFrame): Deleted.
(WebKit::AcceleratedBackingStoreDMABuf::Surface::prepareForRendering): Deleted.
(WebKit::AcceleratedBackingStoreDMABuf::Surface::snapshot const): Deleted.
(WebKit::AcceleratedBackingStoreDMABuf::Surface::paint const): Deleted.
(WebKit::AcceleratedBackingStoreDMABuf::configure): Deleted.
(WebKit::AcceleratedBackingStoreDMABuf::configureSHM): Deleted.
(WebKit::AcceleratedBackingStoreDMABuf::createSource): Deleted.
(WebKit::AcceleratedBackingStoreDMABuf::willDisplayFrame): Deleted.
(WebKit::AcceleratedBackingStoreDMABuf::realize): Deleted.
* Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.h:
* Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.messages.in:
* Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp:
(WebKit::AcceleratedSurfaceDMABuf::AcceleratedSurfaceDMABuf):
(WebKit::generateTargetID):
(WebKit::AcceleratedSurfaceDMABuf::RenderTarget::RenderTarget):
(WebKit::AcceleratedSurfaceDMABuf::RenderTarget::~RenderTarget):
(WebKit::AcceleratedSurfaceDMABuf::RenderTargetColorBuffer::RenderTargetColorBuffer):
(WebKit::AcceleratedSurfaceDMABuf::RenderTargetColorBuffer::~RenderTargetColorBuffer):
(WebKit::AcceleratedSurfaceDMABuf::RenderTargetColorBuffer::willRenderFrame const):
(WebKit::AcceleratedSurfaceDMABuf::RenderTargetEGLImage::create):
(WebKit::AcceleratedSurfaceDMABuf::RenderTargetEGLImage::RenderTargetEGLImage):
(WebKit::AcceleratedSurfaceDMABuf::RenderTargetEGLImage::~RenderTargetEGLImage):
(WebKit::AcceleratedSurfaceDMABuf::RenderTargetSHMImage::create):
(WebKit::AcceleratedSurfaceDMABuf::RenderTargetSHMImage::RenderTargetSHMImage):
(WebKit::AcceleratedSurfaceDMABuf::RenderTargetSHMImage::didRenderFrame):
(WebKit::AcceleratedSurfaceDMABuf::RenderTargetTexture::create):
(WebKit::AcceleratedSurfaceDMABuf::RenderTargetTexture::RenderTargetTexture):
(WebKit::AcceleratedSurfaceDMABuf::RenderTargetTexture::~RenderTargetTexture):
(WebKit::AcceleratedSurfaceDMABuf::RenderTargetTexture::willRenderFrame const):
(WebKit::AcceleratedSurfaceDMABuf::SwapChain::SwapChain):
(WebKit::AcceleratedSurfaceDMABuf::SwapChain::resize):
(WebKit::AcceleratedSurfaceDMABuf::SwapChain::createTarget const):
(WebKit::AcceleratedSurfaceDMABuf::SwapChain::nextTarget):
(WebKit::AcceleratedSurfaceDMABuf::SwapChain::releaseTarget):
(WebKit::AcceleratedSurfaceDMABuf::SwapChain::reset):
(WebKit::AcceleratedSurfaceDMABuf::willDestroyGLContext):
(WebKit::AcceleratedSurfaceDMABuf::clientResize):
(WebKit::AcceleratedSurfaceDMABuf::willRenderFrame):
(WebKit::AcceleratedSurfaceDMABuf::didRenderFrame):
(WebKit::AcceleratedSurfaceDMABuf::releaseBuffer):
(WebKit::AcceleratedSurfaceDMABuf::frameDone):
(WebKit::AcceleratedSurfaceDMABuf::RenderTargetColorBuffer::didRenderFrame): Deleted.
(WebKit::AcceleratedSurfaceDMABuf::RenderTargetColorBuffer::didDisplayFrame): Deleted.
(WebKit::AcceleratedSurfaceDMABuf::RenderTargetEGLImage::didRenderFrame): Deleted.
(WebKit::AcceleratedSurfaceDMABuf::RenderTargetEGLImage::didDisplayFrame): Deleted.
(WebKit::AcceleratedSurfaceDMABuf::RenderTargetSHMImage::didDisplayFrame): Deleted.
(WebKit::AcceleratedSurfaceDMABuf::RenderTargetTexture::didRenderFrame): Deleted.
(WebKit::AcceleratedSurfaceDMABuf::RenderTargetTexture::didDisplayFrame): Deleted.
* Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.h:
* Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.messages.in:
Canonical link: https://commits.webkit.org/267860@main
More information about the webkit-changes
mailing list