[webkit-changes] [WebKit/WebKit] 065a0f: [WebGPU] mapAsync shouldn't be calling getMappedRa...

mwyrzykowski noreply at github.com
Thu May 2 14:52:33 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 065a0ff443f85ce620cad22f7cb7eab4bea62ca0
      https://github.com/WebKit/WebKit/commit/065a0ff443f85ce620cad22f7cb7eab4bea62ca0
  Author: Mike Wyrzykowski <mwyrzykowski at apple.com>
  Date:   2024-05-02 (Thu, 02 May 2024)

  Changed paths:
    M LayoutTests/platform/mac-wk2/TestExpectations
    M Source/WebCore/Modules/WebGPU/GPUBuffer.cpp
    M Source/WebCore/Modules/WebGPU/GPUBuffer.h
    M Source/WebCore/Modules/WebGPU/Implementation/WebGPUBufferImpl.cpp
    M Source/WebCore/Modules/WebGPU/Implementation/WebGPUBufferImpl.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUBuffer.h
    M Source/WebGPU/WebGPU/Buffer.h
    M Source/WebGPU/WebGPU/Buffer.mm
    M Source/WebGPU/WebGPU/WebGPU.h
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteBuffer.cpp
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteBuffer.h
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteBuffer.messages.in
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteBufferProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteBufferProxy.h

  Log Message:
  -----------
  [WebGPU] mapAsync shouldn't be calling getMappedRange on the entire buffer
https://bugs.webkit.org/show_bug.cgi?id=273028
<radar://126800249>

Reviewed by Tadeu Zagallo.

Simplify buffer mapping so we don't pass a copy of the entire buffer from the
GPU process to the web process when it is not needed.

* LayoutTests/platform/mac-wk2/TestExpectations:
Add passing expectations for api,operation,buffers,* and
api,validation,buffer,* tests.

Passing expectations already exist, tests were still marked Skipped.

* Source/WebCore/Modules/WebGPU/GPUBuffer.cpp:
(WebCore::makeArrayBuffer):
(WebCore::GPUBuffer::getMappedRange):
(WebCore::GPUBuffer::internalUnmap):
* Source/WebCore/Modules/WebGPU/GPUBuffer.h:
* Source/WebCore/Modules/WebGPU/Implementation/WebGPUBufferImpl.cpp:
(WebCore::WebGPU::BufferImpl::getBufferContents):
(WebCore::WebGPU::BufferImpl::copy):
* Source/WebCore/Modules/WebGPU/Implementation/WebGPUBufferImpl.h:
* Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUBuffer.h:
* Source/WebGPU/WebGPU/Buffer.h:
* Source/WebGPU/WebGPU/Buffer.mm:
(WebGPU::Buffer::getBufferContents):
(wgpuBufferGetBufferContents):
* Source/WebGPU/WebGPU/WebGPU.h:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteBuffer.cpp:
(WebKit::RemoteBuffer::mapAsync):
(WebKit::RemoteBuffer::getMappedRange):
(WebKit::RemoteBuffer::unmap):
(WebKit::RemoteBuffer::copy):
(WebKit::RemoteBuffer::destroy):
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteBuffer.h:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteBuffer.messages.in:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteBufferProxy.cpp:
(WebKit::WebGPU::RemoteBufferProxy::mapAsync):
(WebKit::WebGPU::RemoteBufferProxy::getMappedRange):
(WebKit::WebGPU::RemoteBufferProxy::getBufferContents):
(WebKit::WebGPU::RemoteBufferProxy::copy):
(WebKit::WebGPU::RemoteBufferProxy::unmap):
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteBufferProxy.h:
Simplify buffer mapping by storing fewer state variables refering to the same
data and remove copies.

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



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list