[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