[webkit-changes] [WebKit/WebKit] 6f7dff: [WebGPU] Smart pointer adoption in WebGPUObjectHeap

mwyrzykowski noreply at github.com
Sun Aug 25 15:08:03 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 6f7dff2d0c2e09e7a75f54face529d1f6576aa9d
      https://github.com/WebKit/WebKit/commit/6f7dff2d0c2e09e7a75f54face529d1f6576aa9d
  Author: Mike Wyrzykowski <mwyrzykowski at apple.com>
  Date:   2024-08-25 (Sun, 25 Aug 2024)

  Changed paths:
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUAdapter.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUBindGroup.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUCommandBuffer.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUCommandEncoder.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUComputePassEncoder.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUComputePipeline.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUExternalTexture.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUPresentationContext.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUQueue.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPURenderBundle.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPURenderBundleEncoder.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPURenderPassEncoder.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPURenderPipeline.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUSampler.h
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteBindGroup.cpp
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteDevice.cpp
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteQueue.cpp
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteRenderBundleEncoder.cpp
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteRenderPassEncoder.cpp
    M Source/WebKit/GPUProcess/graphics/WebGPU/WebGPUObjectHeap.cpp
    M Source/WebKit/GPUProcess/graphics/WebGPU/WebGPUObjectHeap.h
    M Source/WebKit/Shared/WebGPU/WebGPUBindGroupDescriptor.cpp
    M Source/WebKit/Shared/WebGPU/WebGPUBindGroupEntry.cpp
    M Source/WebKit/Shared/WebGPU/WebGPUBufferBinding.cpp
    M Source/WebKit/Shared/WebGPU/WebGPUCanvasConfiguration.cpp
    M Source/WebKit/Shared/WebGPU/WebGPUComputePassTimestampWrites.cpp
    M Source/WebKit/Shared/WebGPU/WebGPUConvertFromBackingContext.h
    M Source/WebKit/Shared/WebGPU/WebGPUImageCopyBuffer.cpp
    M Source/WebKit/Shared/WebGPU/WebGPUImageCopyTexture.cpp
    M Source/WebKit/Shared/WebGPU/WebGPUPipelineDescriptorBase.cpp
    M Source/WebKit/Shared/WebGPU/WebGPUPipelineLayoutDescriptor.cpp
    M Source/WebKit/Shared/WebGPU/WebGPUPresentationContextDescriptor.cpp
    M Source/WebKit/Shared/WebGPU/WebGPUProgrammableStage.cpp
    M Source/WebKit/Shared/WebGPU/WebGPURenderPassColorAttachment.cpp
    M Source/WebKit/Shared/WebGPU/WebGPURenderPassDepthStencilAttachment.cpp
    M Source/WebKit/Shared/WebGPU/WebGPURenderPassDescriptor.cpp
    M Source/WebKit/Shared/WebGPU/WebGPURenderPassTimestampWrites.cpp
    M Source/WebKit/Shared/WebGPU/WebGPUShaderModuleCompilationHint.cpp

  Log Message:
  -----------
  [WebGPU] Smart pointer adoption in WebGPUObjectHeap
https://bugs.webkit.org/show_bug.cgi?id=278466
rdar://132090218

Reviewed by Dan Glastonbury.

We have seen an issue or two where an object returned from the
WebGPUObjectHeap is passed to a lambda or completion handler
and its lifetime expires during that period.

To avoid these issues, return WeakPtr from the ObjectHeap so the caller
is aware and does not assume the returned value is a RefPtr or WeakPtr.

* Source/WebKit/GPUProcess/graphics/WebGPU/WebGPUObjectHeap.cpp:
(WebKit::WebGPU::ObjectHeap::convertAdapterFromBacking):
(WebKit::WebGPU::ObjectHeap::convertBindGroupFromBacking):
(WebKit::WebGPU::ObjectHeap::convertBindGroupLayoutFromBacking):
(WebKit::WebGPU::ObjectHeap::convertBufferFromBacking):
(WebKit::WebGPU::ObjectHeap::convertCommandBufferFromBacking):
(WebKit::WebGPU::ObjectHeap::convertCommandEncoderFromBacking):
(WebKit::WebGPU::ObjectHeap::convertCompositorIntegrationFromBacking):
(WebKit::WebGPU::ObjectHeap::convertComputePassEncoderFromBacking):
(WebKit::WebGPU::ObjectHeap::convertComputePipelineFromBacking):
(WebKit::WebGPU::ObjectHeap::convertDeviceFromBacking):
(WebKit::WebGPU::ObjectHeap::convertExternalTextureFromBacking):
(WebKit::WebGPU::ObjectHeap::convertPipelineLayoutFromBacking):
(WebKit::WebGPU::ObjectHeap::convertPresentationContextFromBacking):
(WebKit::WebGPU::ObjectHeap::convertQuerySetFromBacking):
(WebKit::WebGPU::ObjectHeap::convertQueueFromBacking):
(WebKit::WebGPU::ObjectHeap::convertRenderBundleEncoderFromBacking):
(WebKit::WebGPU::ObjectHeap::convertRenderBundleFromBacking):
(WebKit::WebGPU::ObjectHeap::convertRenderPassEncoderFromBacking):
(WebKit::WebGPU::ObjectHeap::convertRenderPipelineFromBacking):
(WebKit::WebGPU::ObjectHeap::convertSamplerFromBacking):
(WebKit::WebGPU::ObjectHeap::convertShaderModuleFromBacking):
(WebKit::WebGPU::ObjectHeap::convertTextureFromBacking):
(WebKit::WebGPU::ObjectHeap::convertTextureViewFromBacking):
(WebKit::WebGPU::ObjectHeap::convertXRBindingFromBacking):
(WebKit::WebGPU::ObjectHeap::convertXRSubImageFromBacking):
(WebKit::WebGPU::ObjectHeap::convertXRProjectionLayerFromBacking):
(WebKit::WebGPU::ObjectHeap::createXRViewFromBacking):
* Source/WebKit/GPUProcess/graphics/WebGPU/WebGPUObjectHeap.h:
* Source/WebKit/Shared/WebGPU/WebGPUBufferBinding.cpp:
(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):
* Source/WebKit/Shared/WebGPU/WebGPUCanvasConfiguration.cpp:
(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):
* Source/WebKit/Shared/WebGPU/WebGPUConvertFromBackingContext.h:

Canonical link: https://commits.webkit.org/282716@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