[webkit-changes] [WebKit/WebKit] cd1e2e: [WebGPU] Revert 263054 at main "Make RemoteGPU owned ...

Myles C. Maxfield noreply at github.com
Wed May 17 17:57:24 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: cd1e2eb65f29352d8be1c317db89531be266c973
      https://github.com/WebKit/WebKit/commit/cd1e2eb65f29352d8be1c317db89531be266c973
  Author: Myles C. Maxfield <mmaxfield at apple.com>
  Date:   2023-05-17 (Wed, 17 May 2023)

  Changed paths:
    M Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp
    M Source/WebKit/GPUProcess/GPUConnectionToWebProcess.h
    M Source/WebKit/GPUProcess/GPUConnectionToWebProcess.messages.in
    M Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp
    M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp
    M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h
    M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.messages.in
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.cpp
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.h
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.h
    M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp

  Log Message:
  -----------
  [WebGPU] Revert 263054 at main "Make RemoteGPU owned by RemoteRenderingBackend rather than GPUConnectionToWebProcess"
https://bugs.webkit.org/show_bug.cgi?id=256868
rdar://109432358

Reviewed by Mike Wyrzykowski and Kimmo Kinnunen.

The design of GPUP is that there is a GPUConnectionToWebProcess, and it owns all the
MessageQueues. It's not correct to have RemoteRenderingBackend, which runs on its own
message queue, own WebGPU, which runs on a different message queue. We were getting
a double-thread-hop for message receipt, and ASSERT()s were firing, indicating that
things were being run on the wrong thread.

* Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::performWithMediaPlayerOnMainThread):
(WebKit::GPUConnectionToWebProcess::createRemoteGPU):
(WebKit::GPUConnectionToWebProcess::releaseRemoteGPU):
* Source/WebKit/GPUProcess/GPUConnectionToWebProcess.h:
* Source/WebKit/GPUProcess/GPUConnectionToWebProcess.messages.in:
* Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp:
(WebKit::RemoteDisplayListRecorder::paintFrameForMedia):
* Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::performWithMediaPlayerOnMainThread): Deleted.
(WebKit::RemoteRenderingBackend::createRemoteGPU): Deleted.
(WebKit::RemoteRenderingBackend::releaseRemoteGPU): Deleted.
* Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h:
(WebKit::RemoteRenderingBackend::streamConnection const):
* Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.messages.in:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.cpp:
(WebKit::RemoteGPU::RemoteGPU):
(WebKit::RemoteGPU::initialize):
(WebKit::RemoteGPU::stopListeningForIPC):
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.cpp:
(WebKit::RemoteGPUProxy::create):
(WebKit::RemoteGPUProxy::RemoteGPUProxy):
(WebKit::RemoteGPUProxy::~RemoteGPUProxy):
(WebKit::RemoteGPUProxy::initializeIPC):
(WebKit::RemoteGPUProxy::disconnectGpuProcessIfNeeded):
(WebKit::RemoteGPUProxy::gpuProcessConnectionDidClose):
(WebKit::RemoteGPUProxy::abandonGPUProcess):
(WebKit::RemoteGPUProxy::wasCreated):
(WebKit::RemoteGPUProxy::waitUntilInitialized):
(WebKit::RemoteGPUProxy::didClose): Deleted.
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.h:
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createGPUForWebGPU const):

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




More information about the webkit-changes mailing list