[webkit-changes] [WebKit/WebKit] 93cc2e: [GTK] WebView empty with GTK Vulkan renderer

Carlos Garcia Campos noreply at github.com
Wed Jan 31 00:55:28 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 93cc2e901af9447420859e26973feb8a73b5dd81
      https://github.com/WebKit/WebKit/commit/93cc2e901af9447420859e26973feb8a73b5dd81
  Author: Carlos Garcia Campos <cgarcia at igalia.com>
  Date:   2024-01-31 (Wed, 31 Jan 2024)

  Changed paths:
    M Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp
    M Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.h

  Log Message:
  -----------
  [GTK] WebView empty with GTK Vulkan renderer
https://bugs.webkit.org/show_bug.cgi?id=267578

Reviewed by Alejandro G. Castro.

The problem is that we are creating to GdkTextures and reusing them all
the time. That works for the GL renderer, but it's not the way GTK
expects the API tyo be used. GdkTexture can be cached by GTK internally,
so it's not expected to change its contents and the associated GL
resources should be released by the destroy notify. This patch creates a
new GL texture and GdkTexture every time a buffer changes its contents.

* 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::Texture::Texture):
(WebKit::Texture::~Texture):
(WebKit::AcceleratedBackingStoreDMABuf::BufferEGLImage::didUpdateContents):
(WebKit::AcceleratedBackingStoreDMABuf::BufferGBM::create):
(WebKit::AcceleratedBackingStoreDMABuf::BufferGBM::BufferGBM):
(WebKit::AcceleratedBackingStoreDMABuf::BufferGBM::didUpdateContents):
(WebKit::AcceleratedBackingStoreDMABuf::BufferSHM::create):
(WebKit::AcceleratedBackingStoreDMABuf::BufferSHM::BufferSHM):
(WebKit::AcceleratedBackingStoreDMABuf::BufferSHM::didUpdateContents):
(WebKit::AcceleratedBackingStoreDMABuf::Renderer::snapshot const):
(WebKit::AcceleratedBackingStoreDMABuf::Renderer::paint const):
(WebKit::AcceleratedBackingStoreDMABuf::didCreateBuffer):
(WebKit::AcceleratedBackingStoreDMABuf::didCreateBufferSHM):
(WebKit::AcceleratedBackingStoreDMABuf::frame):
(WebKit::AcceleratedBackingStoreDMABuf::unrealize):
(WebKit::AcceleratedBackingStoreDMABuf::prepareForRendering):
(WebKit::AcceleratedBackingStoreDMABuf::snapshot):
(WebKit::AcceleratedBackingStoreDMABuf::paint):
(WebKit::AcceleratedBackingStoreDMABuf::BufferGBM::surface const): Deleted.
(WebKit::AcceleratedBackingStoreDMABuf::BufferSHM::surface const): Deleted.
(WebKit::AcceleratedBackingStoreDMABuf::Renderer::setBuffer): Deleted.
(WebKit::AcceleratedBackingStoreDMABuf::RendererGL::RendererGL): Deleted.
(WebKit::AcceleratedBackingStoreDMABuf::RendererGL::~RendererGL): Deleted.
(WebKit::AcceleratedBackingStoreDMABuf::RendererGL::setBuffer): Deleted.
(WebKit::AcceleratedBackingStoreDMABuf::RendererGL::snapshot const): Deleted.
(WebKit::AcceleratedBackingStoreDMABuf::RendererGL::paint const): Deleted.
(WebKit::AcceleratedBackingStoreDMABuf::RendererCairo::setBuffer): Deleted.
(WebKit::AcceleratedBackingStoreDMABuf::RendererCairo::snapshot const): Deleted.
(WebKit::AcceleratedBackingStoreDMABuf::RendererCairo::paint const): Deleted.
(WebKit::AcceleratedBackingStoreDMABuf::ensureRenderer): Deleted.
* Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.h:

Canonical link: https://commits.webkit.org/273818@main




More information about the webkit-changes mailing list