[webkit-changes] [WebKit/WebKit] 1f4abb: [WebGPU] Implement resource deallocation

mwyrzykowski noreply at github.com
Wed Apr 12 09:53:32 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 1f4abbc8a050116912276fa6eb492a2f1c97e1c8
      https://github.com/WebKit/WebKit/commit/1f4abbc8a050116912276fa6eb492a2f1c97e1c8
  Author: Mike Wyrzykowski <mwyrzykowski at apple.com>
  Date:   2023-04-12 (Wed, 12 Apr 2023)

  Changed paths:
    M Source/WebGPU/WebGPU/RenderPipeline.mm
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteAdapter.cpp
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteAdapter.h
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteAdapter.messages.in
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteBindGroup.cpp
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteBindGroup.h
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteBindGroup.messages.in
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteBindGroupLayout.cpp
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteBindGroupLayout.h
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteBindGroupLayout.messages.in
    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/GPUProcess/graphics/WebGPU/RemoteCommandBuffer.cpp
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteCommandBuffer.h
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteCommandBuffer.messages.in
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteCommandEncoder.cpp
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteCommandEncoder.h
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteCommandEncoder.messages.in
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteCompositorIntegration.cpp
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteCompositorIntegration.h
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteCompositorIntegration.messages.in
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteComputePassEncoder.cpp
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteComputePassEncoder.h
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteComputePassEncoder.messages.in
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteComputePipeline.cpp
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteComputePipeline.h
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteComputePipeline.messages.in
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteDevice.cpp
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteDevice.h
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteDevice.messages.in
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteExternalTexture.cpp
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteExternalTexture.h
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteExternalTexture.messages.in
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemotePipelineLayout.cpp
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemotePipelineLayout.h
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemotePipelineLayout.messages.in
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteQuerySet.cpp
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteQuerySet.h
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteQuerySet.messages.in
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteQueue.cpp
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteQueue.h
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteQueue.messages.in
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteRenderBundle.cpp
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteRenderBundle.h
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteRenderBundle.messages.in
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteRenderBundleEncoder.cpp
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteRenderBundleEncoder.h
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteRenderBundleEncoder.messages.in
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteRenderPassEncoder.cpp
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteRenderPassEncoder.h
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteRenderPassEncoder.messages.in
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteRenderPipeline.cpp
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteRenderPipeline.h
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteRenderPipeline.messages.in
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteSampler.cpp
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteSampler.h
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteSampler.messages.in
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteShaderModule.cpp
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteShaderModule.h
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteShaderModule.messages.in
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteTexture.cpp
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteTexture.h
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteTexture.messages.in
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteTextureView.cpp
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteTextureView.h
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteTextureView.messages.in
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteAdapterProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteBindGroupLayoutProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteBindGroupProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteBufferProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteCommandBufferProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteCommandEncoderProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteCompositorIntegrationProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteComputePassEncoderProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteComputePipelineProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteDeviceProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteExternalTextureProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemotePipelineLayoutProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteQuerySetProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteQueueProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteQueueProxy.h
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteRenderBundleEncoderProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteRenderBundleProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteRenderPassEncoderProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteRenderPipelineProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteSamplerProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteShaderModuleProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteTextureProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteTextureViewProxy.cpp

  Log Message:
  -----------
  [WebGPU] Implement resource deallocation
https://bugs.webkit.org/show_bug.cgi?id=250865
<radar://103963935>

Reviewed by Myles C. Maxfield.

When the proxy objects are destroyed they need to tell
the GPU process to destroy the corresponding objects.

Address regression in 261998 at main due to not holding a Ref to
the RemoteAdapterProxy inside RemoteQueueProxy.

* Source/WebGPU/WebGPU/RenderPipeline.mm:
(WebGPU::RenderPipeline::getBindGroupLayout):
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteAdapter.cpp:
(WebKit::RemoteAdapter::destruct):
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteAdapter.h:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteAdapter.messages.in:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteBindGroup.cpp:
(WebKit::RemoteBindGroup::destruct):
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteBindGroup.h:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteBindGroup.messages.in:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteBindGroupLayout.cpp:
(WebKit::RemoteBindGroupLayout::destruct):
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteBindGroupLayout.h:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteBindGroupLayout.messages.in:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteBuffer.cpp:
(WebKit::RemoteBuffer::destruct):
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteBuffer.h:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteBuffer.messages.in:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteCommandBuffer.cpp:
(WebKit::RemoteCommandBuffer::destruct):
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteCommandBuffer.h:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteCommandBuffer.messages.in:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteCommandEncoder.cpp:
(WebKit::RemoteCommandEncoder::destruct):
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteCommandEncoder.h:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteCommandEncoder.messages.in:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteCompositorIntegration.cpp:
(WebKit::RemoteCompositorIntegration::destruct):
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteCompositorIntegration.h:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteCompositorIntegration.messages.in:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteComputePassEncoder.cpp:
(WebKit::RemoteComputePassEncoder::destruct):
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteComputePassEncoder.h:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteComputePassEncoder.messages.in:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteComputePipeline.cpp:
(WebKit::RemoteComputePipeline::destruct):
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteComputePipeline.h:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteComputePipeline.messages.in:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteDevice.cpp:
(WebKit::RemoteDevice::destruct):
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteDevice.h:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteDevice.messages.in:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteExternalTexture.cpp:
(WebKit::RemoteExternalTexture::destruct):
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteExternalTexture.h:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteExternalTexture.messages.in:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemotePipelineLayout.cpp:
(WebKit::RemotePipelineLayout::destruct):
* Source/WebKit/GPUProcess/graphics/WebGPU/RemotePipelineLayout.h:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemotePipelineLayout.messages.in:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteQuerySet.cpp:
(WebKit::RemoteQuerySet::destruct):
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteQuerySet.h:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteQuerySet.messages.in:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteQueue.cpp:
(WebKit::RemoteQueue::destruct):
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteQueue.h:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteQueue.messages.in:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteRenderBundle.cpp:
(WebKit::RemoteRenderBundle::destruct):
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteRenderBundle.h:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteRenderBundle.messages.in:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteRenderBundleEncoder.cpp:
(WebKit::RemoteRenderBundleEncoder::destruct):
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteRenderBundleEncoder.h:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteRenderBundleEncoder.messages.in:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteRenderPassEncoder.cpp:
(WebKit::RemoteRenderPassEncoder::destruct):
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteRenderPassEncoder.h:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteRenderPassEncoder.messages.in:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteRenderPipeline.cpp:
(WebKit::RemoteRenderPipeline::destruct):
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteRenderPipeline.h:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteRenderPipeline.messages.in:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteSampler.cpp:
(WebKit::RemoteSampler::destruct):
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteSampler.h:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteSampler.messages.in:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteShaderModule.cpp:
(WebKit::RemoteShaderModule::destruct):
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteShaderModule.h:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteShaderModule.messages.in:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteTexture.cpp:
(WebKit::RemoteTexture::destruct):
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteTexture.h:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteTexture.messages.in:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteTextureView.cpp:
(WebKit::RemoteTextureView::destruct):
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteTextureView.h:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteTextureView.messages.in:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteAdapterProxy.cpp:
(WebKit::WebGPU::RemoteAdapterProxy::~RemoteAdapterProxy):
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteBindGroupLayoutProxy.cpp:
(WebKit::WebGPU::RemoteBindGroupLayoutProxy::~RemoteBindGroupLayoutProxy):
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteBindGroupProxy.cpp:
(WebKit::WebGPU::RemoteBindGroupProxy::~RemoteBindGroupProxy):
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteBufferProxy.cpp:
(WebKit::WebGPU::RemoteBufferProxy::~RemoteBufferProxy):
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteCommandBufferProxy.cpp:
(WebKit::WebGPU::RemoteCommandBufferProxy::~RemoteCommandBufferProxy):
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteCommandEncoderProxy.cpp:
(WebKit::WebGPU::RemoteCommandEncoderProxy::~RemoteCommandEncoderProxy):
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteCompositorIntegrationProxy.cpp:
(WebKit::WebGPU::RemoteCompositorIntegrationProxy::~RemoteCompositorIntegrationProxy):
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteComputePassEncoderProxy.cpp:
(WebKit::WebGPU::RemoteComputePassEncoderProxy::~RemoteComputePassEncoderProxy):
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteComputePipelineProxy.cpp:
(WebKit::WebGPU::RemoteComputePipelineProxy::~RemoteComputePipelineProxy):
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteDeviceProxy.cpp:
(WebKit::WebGPU::RemoteDeviceProxy::RemoteDeviceProxy):
(WebKit::WebGPU::RemoteDeviceProxy::~RemoteDeviceProxy):
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteExternalTextureProxy.cpp:
(WebKit::WebGPU::RemoteExternalTextureProxy::~RemoteExternalTextureProxy):
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemotePipelineLayoutProxy.cpp:
(WebKit::WebGPU::RemotePipelineLayoutProxy::~RemotePipelineLayoutProxy):
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteQuerySetProxy.cpp:
(WebKit::WebGPU::RemoteQuerySetProxy::~RemoteQuerySetProxy):
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteQueueProxy.cpp:
(WebKit::WebGPU::RemoteQueueProxy::RemoteQueueProxy):
(WebKit::WebGPU::RemoteQueueProxy::~RemoteQueueProxy):
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteQueueProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteRenderBundleEncoderProxy.cpp:
(WebKit::WebGPU::RemoteRenderBundleEncoderProxy::~RemoteRenderBundleEncoderProxy):
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteRenderBundleProxy.cpp:
(WebKit::WebGPU::RemoteRenderBundleProxy::~RemoteRenderBundleProxy):
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteRenderPassEncoderProxy.cpp:
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::~RemoteRenderPassEncoderProxy):
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteRenderPipelineProxy.cpp:
(WebKit::WebGPU::RemoteRenderPipelineProxy::~RemoteRenderPipelineProxy):
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteSamplerProxy.cpp:
(WebKit::WebGPU::RemoteSamplerProxy::~RemoteSamplerProxy):
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteShaderModuleProxy.cpp:
(WebKit::WebGPU::RemoteShaderModuleProxy::~RemoteShaderModuleProxy):
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteTextureProxy.cpp:
(WebKit::WebGPU::RemoteTextureProxy::~RemoteTextureProxy):
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteTextureViewProxy.cpp:
(WebKit::WebGPU::RemoteTextureViewProxy::~RemoteTextureViewProxy):

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




More information about the webkit-changes mailing list