Title: [286224] trunk/Source
Revision
286224
Author
mmaxfi...@apple.com
Date
2021-11-29 10:21:51 -0800 (Mon, 29 Nov 2021)

Log Message

[WebGPU] IPC class refactorings
https://bugs.webkit.org/show_bug.cgi?id=233546

Reviewed by Dean Jackson.

Source/WebCore/PAL:

Make classes fast allocated.

GPUImpl gets a create() function with no arguments, for ease of callers.

* pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.h:
* pal/graphics/WebGPU/Impl/WebGPUBindGroupImpl.h:
* pal/graphics/WebGPU/Impl/WebGPUBindGroupLayoutImpl.h:
* pal/graphics/WebGPU/Impl/WebGPUBufferImpl.h:
* pal/graphics/WebGPU/Impl/WebGPUCommandBufferImpl.h:
* pal/graphics/WebGPU/Impl/WebGPUCommandEncoderImpl.h:
* pal/graphics/WebGPU/Impl/WebGPUComputePassEncoderImpl.h:
* pal/graphics/WebGPU/Impl/WebGPUComputePipelineImpl.h:
* pal/graphics/WebGPU/Impl/WebGPUConvertToBackingContext.h:
* pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.h:
* pal/graphics/WebGPU/Impl/WebGPUDowncastConvertToBackingContext.h:
* pal/graphics/WebGPU/Impl/WebGPUExternalTextureImpl.h:
* pal/graphics/WebGPU/Impl/WebGPUImpl.cpp:
(PAL::WebGPU::GPUImpl::create):
* pal/graphics/WebGPU/Impl/WebGPUImpl.h:
* pal/graphics/WebGPU/Impl/WebGPUPipelineLayoutImpl.h:
* pal/graphics/WebGPU/Impl/WebGPUQuerySetImpl.h:
* pal/graphics/WebGPU/Impl/WebGPUQueueImpl.h:
* pal/graphics/WebGPU/Impl/WebGPURenderBundleEncoderImpl.h:
* pal/graphics/WebGPU/Impl/WebGPURenderBundleImpl.h:
* pal/graphics/WebGPU/Impl/WebGPURenderPassEncoderImpl.h:
* pal/graphics/WebGPU/Impl/WebGPURenderPipelineImpl.h:
* pal/graphics/WebGPU/Impl/WebGPUSamplerImpl.h:
* pal/graphics/WebGPU/Impl/WebGPUShaderModuleImpl.h:
* pal/graphics/WebGPU/Impl/WebGPUTextureImpl.h:
* pal/graphics/WebGPU/Impl/WebGPUTextureViewImpl.h:

Source/WebKit:

Make classes fast allocated. Also, make the root() function recursive, instead of hardcoding
each class's distance from the root.

RemoteGPUProxy has to be in the WebKit namespace, rather than the WebKit::WebGPU namespace,
because it will be a message receiver, and our code generator doesn't know anything about the
nested namespace.

Also make sure that async functions call their callbacks in every codepath.

No new tests because there is no behavior change.

* GPUProcess/graphics/WebGPU/RemoteAdapter.h:
* GPUProcess/graphics/WebGPU/RemoteBindGroup.h:
* GPUProcess/graphics/WebGPU/RemoteBindGroupLayout.h:
* GPUProcess/graphics/WebGPU/RemoteBuffer.h:
* GPUProcess/graphics/WebGPU/RemoteCommandBuffer.h:
* GPUProcess/graphics/WebGPU/RemoteCommandEncoder.h:
* GPUProcess/graphics/WebGPU/RemoteComputePassEncoder.h:
* GPUProcess/graphics/WebGPU/RemoteComputePipeline.h:
* GPUProcess/graphics/WebGPU/RemoteDevice.h:
* GPUProcess/graphics/WebGPU/RemoteExternalTexture.h:
* GPUProcess/graphics/WebGPU/RemoteGPU.h:
* GPUProcess/graphics/WebGPU/RemotePipelineLayout.h:
* GPUProcess/graphics/WebGPU/RemoteQuerySet.h:
* GPUProcess/graphics/WebGPU/RemoteQueue.h:
* GPUProcess/graphics/WebGPU/RemoteRenderBundle.h:
* GPUProcess/graphics/WebGPU/RemoteRenderBundleEncoder.h:
* GPUProcess/graphics/WebGPU/RemoteRenderPassEncoder.h:
* GPUProcess/graphics/WebGPU/RemoteRenderPipeline.h:
* GPUProcess/graphics/WebGPU/RemoteSampler.h:
* GPUProcess/graphics/WebGPU/RemoteShaderModule.h:
* GPUProcess/graphics/WebGPU/RemoteTexture.h:
* GPUProcess/graphics/WebGPU/RemoteTextureView.h:
* GPUProcess/graphics/WebGPU/WebGPUObjectHeap.h:
* GPUProcess/graphics/WebGPU/WebGPUObjectRegistry.h:
* WebProcess/GPU/graphics/WebGPU/RemoteAdapterProxy.h:
* WebProcess/GPU/graphics/WebGPU/RemoteBindGroupLayoutProxy.h:
* WebProcess/GPU/graphics/WebGPU/RemoteBindGroupProxy.h:
* WebProcess/GPU/graphics/WebGPU/RemoteBufferProxy.h:
* WebProcess/GPU/graphics/WebGPU/RemoteCommandBufferProxy.h:
* WebProcess/GPU/graphics/WebGPU/RemoteCommandEncoderProxy.h:
* WebProcess/GPU/graphics/WebGPU/RemoteComputePassEncoderProxy.h:
* WebProcess/GPU/graphics/WebGPU/RemoteComputePipelineProxy.h:
* WebProcess/GPU/graphics/WebGPU/RemoteDeviceProxy.h:
* WebProcess/GPU/graphics/WebGPU/RemoteExternalTextureProxy.h:
* WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.cpp:
(WebKit::RemoteGPUProxy::requestAdapter):
(WebKit::WebGPU::RemoteGPUProxy::RemoteGPUProxy): Deleted.
(WebKit::WebGPU::RemoteGPUProxy::~RemoteGPUProxy): Deleted.
(WebKit::WebGPU::RemoteGPUProxy::requestAdapter): Deleted.
* WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.h:
* WebProcess/GPU/graphics/WebGPU/RemotePipelineLayoutProxy.h:
* WebProcess/GPU/graphics/WebGPU/RemoteQuerySetProxy.h:
* WebProcess/GPU/graphics/WebGPU/RemoteQueueProxy.h:
* WebProcess/GPU/graphics/WebGPU/RemoteRenderBundleEncoderProxy.h:
* WebProcess/GPU/graphics/WebGPU/RemoteRenderBundleProxy.h:
* WebProcess/GPU/graphics/WebGPU/RemoteRenderPassEncoderProxy.h:
* WebProcess/GPU/graphics/WebGPU/RemoteRenderPipelineProxy.h:
* WebProcess/GPU/graphics/WebGPU/RemoteSamplerProxy.h:
* WebProcess/GPU/graphics/WebGPU/RemoteShaderModuleProxy.h:
* WebProcess/GPU/graphics/WebGPU/RemoteTextureProxy.h:
* WebProcess/GPU/graphics/WebGPU/RemoteTextureViewProxy.h:
* WebProcess/GPU/graphics/WebGPU/WebGPUDowncastConvertToBackingContext.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/PAL/ChangeLog (286223 => 286224)


--- trunk/Source/WebCore/PAL/ChangeLog	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebCore/PAL/ChangeLog	2021-11-29 18:21:51 UTC (rev 286224)
@@ -1,3 +1,41 @@
+2021-11-29  Myles C. Maxfield  <mmaxfi...@apple.com>
+
+        [WebGPU] IPC class refactorings
+        https://bugs.webkit.org/show_bug.cgi?id=233546
+
+        Reviewed by Dean Jackson.
+
+        Make classes fast allocated.
+
+        GPUImpl gets a create() function with no arguments, for ease of callers.
+
+        * pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.h:
+        * pal/graphics/WebGPU/Impl/WebGPUBindGroupImpl.h:
+        * pal/graphics/WebGPU/Impl/WebGPUBindGroupLayoutImpl.h:
+        * pal/graphics/WebGPU/Impl/WebGPUBufferImpl.h:
+        * pal/graphics/WebGPU/Impl/WebGPUCommandBufferImpl.h:
+        * pal/graphics/WebGPU/Impl/WebGPUCommandEncoderImpl.h:
+        * pal/graphics/WebGPU/Impl/WebGPUComputePassEncoderImpl.h:
+        * pal/graphics/WebGPU/Impl/WebGPUComputePipelineImpl.h:
+        * pal/graphics/WebGPU/Impl/WebGPUConvertToBackingContext.h:
+        * pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.h:
+        * pal/graphics/WebGPU/Impl/WebGPUDowncastConvertToBackingContext.h:
+        * pal/graphics/WebGPU/Impl/WebGPUExternalTextureImpl.h:
+        * pal/graphics/WebGPU/Impl/WebGPUImpl.cpp:
+        (PAL::WebGPU::GPUImpl::create):
+        * pal/graphics/WebGPU/Impl/WebGPUImpl.h:
+        * pal/graphics/WebGPU/Impl/WebGPUPipelineLayoutImpl.h:
+        * pal/graphics/WebGPU/Impl/WebGPUQuerySetImpl.h:
+        * pal/graphics/WebGPU/Impl/WebGPUQueueImpl.h:
+        * pal/graphics/WebGPU/Impl/WebGPURenderBundleEncoderImpl.h:
+        * pal/graphics/WebGPU/Impl/WebGPURenderBundleImpl.h:
+        * pal/graphics/WebGPU/Impl/WebGPURenderPassEncoderImpl.h:
+        * pal/graphics/WebGPU/Impl/WebGPURenderPipelineImpl.h:
+        * pal/graphics/WebGPU/Impl/WebGPUSamplerImpl.h:
+        * pal/graphics/WebGPU/Impl/WebGPUShaderModuleImpl.h:
+        * pal/graphics/WebGPU/Impl/WebGPUTextureImpl.h:
+        * pal/graphics/WebGPU/Impl/WebGPUTextureViewImpl.h:
+
 2021-11-25  Kimmo Kinnunen  <kkinnu...@apple.com>
 
         ANGLE Metal: The memory backing IOSurfaces of former client buffer pbuffers is leaked

Modified: trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.h (286223 => 286224)


--- trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -36,6 +36,7 @@
 class ConvertToBackingContext;
 
 class AdapterImpl final : public Adapter {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<AdapterImpl> create(WGPUAdapter adapter, ConvertToBackingContext& convertToBackingContext)
     {

Modified: trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUBindGroupImpl.h (286223 => 286224)


--- trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUBindGroupImpl.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUBindGroupImpl.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -35,6 +35,7 @@
 class ConvertToBackingContext;
 
 class BindGroupImpl final : public BindGroup {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<BindGroupImpl> create(WGPUBindGroup bindGroup, ConvertToBackingContext& convertToBackingContext)
     {

Modified: trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUBindGroupLayoutImpl.h (286223 => 286224)


--- trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUBindGroupLayoutImpl.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUBindGroupLayoutImpl.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -35,6 +35,7 @@
 class ConvertToBackingContext;
 
 class BindGroupLayoutImpl final : public BindGroupLayout {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<BindGroupLayoutImpl> create(WGPUBindGroupLayout bindGroupLayout, ConvertToBackingContext& convertToBackingContext)
     {

Modified: trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUBufferImpl.h (286223 => 286224)


--- trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUBufferImpl.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUBufferImpl.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -36,6 +36,7 @@
 class ConvertToBackingContext;
 
 class BufferImpl final : public Buffer {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<BufferImpl> create(WGPUBuffer buffer, ConvertToBackingContext& convertToBackingContext)
     {

Modified: trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUCommandBufferImpl.h (286223 => 286224)


--- trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUCommandBufferImpl.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUCommandBufferImpl.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -35,6 +35,7 @@
 class ConvertToBackingContext;
 
 class CommandBufferImpl final : public CommandBuffer {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<CommandBufferImpl> create(WGPUCommandBuffer commandBuffer, ConvertToBackingContext& convertToBackingContext)
     {

Modified: trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUCommandEncoderImpl.h (286223 => 286224)


--- trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUCommandEncoderImpl.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUCommandEncoderImpl.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -35,6 +35,7 @@
 class ConvertToBackingContext;
 
 class CommandEncoderImpl final : public CommandEncoder {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<CommandEncoderImpl> create(WGPUCommandEncoder CommandEncoder, ConvertToBackingContext& convertToBackingContext)
     {

Modified: trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUComputePassEncoderImpl.h (286223 => 286224)


--- trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUComputePassEncoderImpl.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUComputePassEncoderImpl.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -35,6 +35,7 @@
 class ConvertToBackingContext;
 
 class ComputePassEncoderImpl final : public ComputePassEncoder {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<ComputePassEncoderImpl> create(WGPUComputePassEncoder computePassEncoder, ConvertToBackingContext& convertToBackingContext)
     {

Modified: trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUComputePipelineImpl.h (286223 => 286224)


--- trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUComputePipelineImpl.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUComputePipelineImpl.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -35,6 +35,7 @@
 class ConvertToBackingContext;
 
 class ComputePipelineImpl final : public ComputePipeline {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<ComputePipelineImpl> create(WGPUComputePipeline computePipeline, ConvertToBackingContext& convertToBackingContext)
     {

Modified: trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUConvertToBackingContext.h (286223 => 286224)


--- trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUConvertToBackingContext.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUConvertToBackingContext.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -93,6 +93,7 @@
 enum class VertexStepMode : uint8_t;
 
 class ConvertToBackingContext : public RefCounted<ConvertToBackingContext> {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     virtual ~ConvertToBackingContext() = default;
 

Modified: trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.h (286223 => 286224)


--- trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -36,6 +36,7 @@
 class ConvertToBackingContext;
 
 class DeviceImpl final : public Device {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<DeviceImpl> create(WGPUDevice device, Ref<SupportedFeatures>&& features, Ref<SupportedLimits>&& limits, ConvertToBackingContext& convertToBackingContext)
     {

Modified: trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUDowncastConvertToBackingContext.h (286223 => 286224)


--- trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUDowncastConvertToBackingContext.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUDowncastConvertToBackingContext.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -32,6 +32,7 @@
 namespace PAL::WebGPU {
 
 class DowncastConvertToBackingContext final : public ConvertToBackingContext {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<DowncastConvertToBackingContext> create()
     {

Modified: trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUExternalTextureImpl.h (286223 => 286224)


--- trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUExternalTextureImpl.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUExternalTextureImpl.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -35,6 +35,7 @@
 class ConvertToBackingContext;
 
 class ExternalTextureImpl final : public ExternalTexture {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<ExternalTextureImpl> create(ConvertToBackingContext& convertToBackingContext)
     {

Modified: trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.cpp (286223 => 286224)


--- trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.cpp	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.cpp	2021-11-29 18:21:51 UTC (rev 286224)
@@ -29,11 +29,29 @@
 #if HAVE(WEBGPU_IMPLEMENTATION)
 
 #include "WebGPUAdapterImpl.h"
-#include "WebGPUConvertToBackingContext.h"
+#include "WebGPUDowncastConvertToBackingContext.h"
 #include <WebGPU/WebGPUExt.h>
 
+#if PLATFORM(COCOA)
+#include <wtf/darwin/WeakLinking.h>
+
+WTF_WEAK_LINK_FORCE_IMPORT(wgpuCreateInstance);
+#endif
+
 namespace PAL::WebGPU {
 
+RefPtr<GPUImpl> GPUImpl::create()
+{
+    WGPUInstanceDescriptor descriptor = { nullptr };
+    if (!&wgpuCreateInstance)
+        return nullptr;
+    auto instance = wgpuCreateInstance(&descriptor);
+    if (!instance)
+        return nullptr;
+    auto convertToBackingContext = DowncastConvertToBackingContext::create();
+    return create(instance, convertToBackingContext);
+}
+
 GPUImpl::GPUImpl(WGPUInstance instance, ConvertToBackingContext& convertToBackingContext)
     : m_backing(instance)
     , m_convertToBackingContext(convertToBackingContext)

Modified: trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.h (286223 => 286224)


--- trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -36,7 +36,10 @@
 class ConvertToBackingContext;
 
 class GPUImpl final : public GPU {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
+    PAL_EXPORT static RefPtr<GPUImpl> create();
+
     static Ref<GPUImpl> create(WGPUInstance instance, ConvertToBackingContext& convertToBackingContext)
     {
         return adoptRef(*new GPUImpl(instance, convertToBackingContext));

Modified: trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUPipelineLayoutImpl.h (286223 => 286224)


--- trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUPipelineLayoutImpl.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUPipelineLayoutImpl.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -35,6 +35,7 @@
 class ConvertToBackingContext;
 
 class PipelineLayoutImpl final : public PipelineLayout {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<PipelineLayoutImpl> create(WGPUPipelineLayout pipelineLayout, ConvertToBackingContext& convertToBackingContext)
     {

Modified: trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUQuerySetImpl.h (286223 => 286224)


--- trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUQuerySetImpl.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUQuerySetImpl.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -35,6 +35,7 @@
 class ConvertToBackingContext;
 
 class QuerySetImpl final : public QuerySet {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<QuerySetImpl> create(WGPUQuerySet querySet, ConvertToBackingContext& convertToBackingContext)
     {

Modified: trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUQueueImpl.h (286223 => 286224)


--- trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUQueueImpl.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUQueueImpl.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -36,6 +36,7 @@
 class ConvertToBackingContext;
 
 class QueueImpl final : public Queue {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<QueueImpl> create(WGPUQueue queue, ConvertToBackingContext& convertToBackingContext)
     {

Modified: trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPURenderBundleEncoderImpl.h (286223 => 286224)


--- trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPURenderBundleEncoderImpl.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPURenderBundleEncoderImpl.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -35,6 +35,7 @@
 class ConvertToBackingContext;
 
 class RenderBundleEncoderImpl final : public RenderBundleEncoder {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RenderBundleEncoderImpl> create(WGPURenderBundleEncoder renderBundleEncoder, ConvertToBackingContext& convertToBackingContext)
     {

Modified: trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPURenderBundleImpl.h (286223 => 286224)


--- trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPURenderBundleImpl.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPURenderBundleImpl.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -35,6 +35,7 @@
 class ConvertToBackingContext;
 
 class RenderBundleImpl final : public RenderBundle {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RenderBundleImpl> create(WGPURenderBundle renderBundle, ConvertToBackingContext& convertToBackingContext)
     {

Modified: trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPURenderPassEncoderImpl.h (286223 => 286224)


--- trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPURenderPassEncoderImpl.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPURenderPassEncoderImpl.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -35,6 +35,7 @@
 class ConvertToBackingContext;
 
 class RenderPassEncoderImpl final : public RenderPassEncoder {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RenderPassEncoderImpl> create(WGPURenderPassEncoder renderPassEncoder, ConvertToBackingContext& convertToBackingContext)
     {

Modified: trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPURenderPipelineImpl.h (286223 => 286224)


--- trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPURenderPipelineImpl.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPURenderPipelineImpl.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -35,6 +35,7 @@
 class ConvertToBackingContext;
 
 class RenderPipelineImpl final : public RenderPipeline {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RenderPipelineImpl> create(WGPURenderPipeline renderPipeline, ConvertToBackingContext& convertToBackingContext)
     {

Modified: trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUSamplerImpl.h (286223 => 286224)


--- trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUSamplerImpl.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUSamplerImpl.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -35,6 +35,7 @@
 class ConvertToBackingContext;
 
 class SamplerImpl final : public Sampler {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<SamplerImpl> create(WGPUSampler sampler, ConvertToBackingContext& convertToBackingContext)
     {

Modified: trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUShaderModuleImpl.h (286223 => 286224)


--- trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUShaderModuleImpl.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUShaderModuleImpl.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -35,6 +35,7 @@
 class ConvertToBackingContext;
 
 class ShaderModuleImpl final : public ShaderModule {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<ShaderModuleImpl> create(WGPUShaderModule shaderModule, ConvertToBackingContext& convertToBackingContext)
     {

Modified: trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUTextureImpl.h (286223 => 286224)


--- trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUTextureImpl.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUTextureImpl.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -38,6 +38,7 @@
 class ConvertToBackingContext;
 
 class TextureImpl final : public Texture {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<TextureImpl> create(WGPUTexture texture, TextureFormat format, TextureDimension dimension, ConvertToBackingContext& convertToBackingContext)
     {

Modified: trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUTextureViewImpl.h (286223 => 286224)


--- trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUTextureViewImpl.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUTextureViewImpl.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -35,6 +35,7 @@
 class ConvertToBackingContext;
 
 class TextureViewImpl final : public TextureView {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<TextureViewImpl> create(WGPUTextureView textureView, ConvertToBackingContext& convertToBackingContext)
     {

Modified: trunk/Source/WebKit/ChangeLog (286223 => 286224)


--- trunk/Source/WebKit/ChangeLog	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/ChangeLog	2021-11-29 18:21:51 UTC (rev 286224)
@@ -1,3 +1,74 @@
+2021-11-29  Myles C. Maxfield  <mmaxfi...@apple.com>
+
+        [WebGPU] IPC class refactorings
+        https://bugs.webkit.org/show_bug.cgi?id=233546
+
+        Reviewed by Dean Jackson.
+
+        Make classes fast allocated. Also, make the root() function recursive, instead of hardcoding
+        each class's distance from the root.
+
+        RemoteGPUProxy has to be in the WebKit namespace, rather than the WebKit::WebGPU namespace,
+        because it will be a message receiver, and our code generator doesn't know anything about the
+        nested namespace.
+
+        Also make sure that async functions call their callbacks in every codepath.
+
+        No new tests because there is no behavior change.
+
+        * GPUProcess/graphics/WebGPU/RemoteAdapter.h:
+        * GPUProcess/graphics/WebGPU/RemoteBindGroup.h:
+        * GPUProcess/graphics/WebGPU/RemoteBindGroupLayout.h:
+        * GPUProcess/graphics/WebGPU/RemoteBuffer.h:
+        * GPUProcess/graphics/WebGPU/RemoteCommandBuffer.h:
+        * GPUProcess/graphics/WebGPU/RemoteCommandEncoder.h:
+        * GPUProcess/graphics/WebGPU/RemoteComputePassEncoder.h:
+        * GPUProcess/graphics/WebGPU/RemoteComputePipeline.h:
+        * GPUProcess/graphics/WebGPU/RemoteDevice.h:
+        * GPUProcess/graphics/WebGPU/RemoteExternalTexture.h:
+        * GPUProcess/graphics/WebGPU/RemoteGPU.h:
+        * GPUProcess/graphics/WebGPU/RemotePipelineLayout.h:
+        * GPUProcess/graphics/WebGPU/RemoteQuerySet.h:
+        * GPUProcess/graphics/WebGPU/RemoteQueue.h:
+        * GPUProcess/graphics/WebGPU/RemoteRenderBundle.h:
+        * GPUProcess/graphics/WebGPU/RemoteRenderBundleEncoder.h:
+        * GPUProcess/graphics/WebGPU/RemoteRenderPassEncoder.h:
+        * GPUProcess/graphics/WebGPU/RemoteRenderPipeline.h:
+        * GPUProcess/graphics/WebGPU/RemoteSampler.h:
+        * GPUProcess/graphics/WebGPU/RemoteShaderModule.h:
+        * GPUProcess/graphics/WebGPU/RemoteTexture.h:
+        * GPUProcess/graphics/WebGPU/RemoteTextureView.h:
+        * GPUProcess/graphics/WebGPU/WebGPUObjectHeap.h:
+        * GPUProcess/graphics/WebGPU/WebGPUObjectRegistry.h:
+        * WebProcess/GPU/graphics/WebGPU/RemoteAdapterProxy.h:
+        * WebProcess/GPU/graphics/WebGPU/RemoteBindGroupLayoutProxy.h:
+        * WebProcess/GPU/graphics/WebGPU/RemoteBindGroupProxy.h:
+        * WebProcess/GPU/graphics/WebGPU/RemoteBufferProxy.h:
+        * WebProcess/GPU/graphics/WebGPU/RemoteCommandBufferProxy.h:
+        * WebProcess/GPU/graphics/WebGPU/RemoteCommandEncoderProxy.h:
+        * WebProcess/GPU/graphics/WebGPU/RemoteComputePassEncoderProxy.h:
+        * WebProcess/GPU/graphics/WebGPU/RemoteComputePipelineProxy.h:
+        * WebProcess/GPU/graphics/WebGPU/RemoteDeviceProxy.h:
+        * WebProcess/GPU/graphics/WebGPU/RemoteExternalTextureProxy.h:
+        * WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.cpp:
+        (WebKit::RemoteGPUProxy::requestAdapter):
+        (WebKit::WebGPU::RemoteGPUProxy::RemoteGPUProxy): Deleted.
+        (WebKit::WebGPU::RemoteGPUProxy::~RemoteGPUProxy): Deleted.
+        (WebKit::WebGPU::RemoteGPUProxy::requestAdapter): Deleted.
+        * WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.h:
+        * WebProcess/GPU/graphics/WebGPU/RemotePipelineLayoutProxy.h:
+        * WebProcess/GPU/graphics/WebGPU/RemoteQuerySetProxy.h:
+        * WebProcess/GPU/graphics/WebGPU/RemoteQueueProxy.h:
+        * WebProcess/GPU/graphics/WebGPU/RemoteRenderBundleEncoderProxy.h:
+        * WebProcess/GPU/graphics/WebGPU/RemoteRenderBundleProxy.h:
+        * WebProcess/GPU/graphics/WebGPU/RemoteRenderPassEncoderProxy.h:
+        * WebProcess/GPU/graphics/WebGPU/RemoteRenderPipelineProxy.h:
+        * WebProcess/GPU/graphics/WebGPU/RemoteSamplerProxy.h:
+        * WebProcess/GPU/graphics/WebGPU/RemoteShaderModuleProxy.h:
+        * WebProcess/GPU/graphics/WebGPU/RemoteTextureProxy.h:
+        * WebProcess/GPU/graphics/WebGPU/RemoteTextureViewProxy.h:
+        * WebProcess/GPU/graphics/WebGPU/WebGPUDowncastConvertToBackingContext.h:
+
 2021-11-29  Brent Fulgham  <bfulg...@apple.com>
 
         Create a new XPC service with specific entitlements to support Captive Portal use cases

Modified: trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteAdapter.cpp (286223 => 286224)


--- trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteAdapter.cpp	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteAdapter.cpp	2021-11-29 18:21:51 UTC (rev 286224)
@@ -63,8 +63,10 @@
     }
 
     m_backing->requestDevice(*convertedDescriptor, [callback = WTFMove(callback), weakObjectHeap = WeakPtr<WebGPU::ObjectHeap>(m_objectHeap), objectRegistry = m_objectRegistry, identifier] (Ref<PAL::WebGPU::Device>&& device) mutable {
-        if (!weakObjectHeap)
+        if (!weakObjectHeap) {
+            callback({ { } }, { });
             return;
+        }
         auto remoteDevice = RemoteDevice::create(device, objectRegistry, *weakObjectHeap, identifier);
         weakObjectHeap->addObject(remoteDevice);
         const auto& features = device->features();

Modified: trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteAdapter.h (286223 => 286224)


--- trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteAdapter.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteAdapter.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -47,6 +47,7 @@
 }
 
 class RemoteAdapter final : public IPC::StreamMessageReceiver {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemoteAdapter> create(PAL::WebGPU::Adapter& adapter, WebGPU::ObjectRegistry& objectRegistry, WebGPU::ObjectHeap& objectHeap, WebGPUIdentifier identifier)
     {

Modified: trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteBindGroup.h (286223 => 286224)


--- trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteBindGroup.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteBindGroup.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -44,6 +44,7 @@
 }
 
 class RemoteBindGroup final : public IPC::StreamMessageReceiver {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemoteBindGroup> create(PAL::WebGPU::BindGroup& bindGroup, WebGPU::ObjectRegistry& objectRegistry, WebGPU::ObjectHeap& objectHeap, WebGPUIdentifier identifier)
     {

Modified: trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteBindGroupLayout.h (286223 => 286224)


--- trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteBindGroupLayout.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteBindGroupLayout.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -44,6 +44,7 @@
 }
 
 class RemoteBindGroupLayout final : public IPC::StreamMessageReceiver {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemoteBindGroupLayout> create(PAL::WebGPU::BindGroupLayout& bindGroupLayout, WebGPU::ObjectRegistry& objectRegistry, WebGPU::ObjectHeap& objectHeap, WebGPUIdentifier identifier)
     {

Modified: trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteBuffer.h (286223 => 286224)


--- trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteBuffer.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteBuffer.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -49,6 +49,7 @@
 }
 
 class RemoteBuffer final : public IPC::StreamMessageReceiver {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemoteBuffer> create(PAL::WebGPU::Buffer& buffer, WebGPU::ObjectRegistry& objectRegistry, WebGPU::ObjectHeap& objectHeap, WebGPUIdentifier identifier)
     {

Modified: trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteCommandBuffer.h (286223 => 286224)


--- trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteCommandBuffer.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteCommandBuffer.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -44,6 +44,7 @@
 }
 
 class RemoteCommandBuffer final : public IPC::StreamMessageReceiver {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemoteCommandBuffer> create(PAL::WebGPU::CommandBuffer& commandBuffer, WebGPU::ObjectRegistry& objectRegistry, WebGPU::ObjectHeap& objectHeap, WebGPUIdentifier identifier)
     {

Modified: trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteCommandEncoder.h (286223 => 286224)


--- trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteCommandEncoder.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteCommandEncoder.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -51,6 +51,7 @@
 }
 
 class RemoteCommandEncoder final : public IPC::StreamMessageReceiver {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemoteCommandEncoder> create(PAL::WebGPU::CommandEncoder& commandEncoder, WebGPU::ObjectRegistry& objectRegistry, WebGPU::ObjectHeap& objectHeap, WebGPUIdentifier identifier)
     {

Modified: trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteComputePassEncoder.h (286223 => 286224)


--- trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteComputePassEncoder.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteComputePassEncoder.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -45,6 +45,7 @@
 }
 
 class RemoteComputePassEncoder final : public IPC::StreamMessageReceiver {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemoteComputePassEncoder> create(PAL::WebGPU::ComputePassEncoder& computePassEncoder, WebGPU::ObjectRegistry& objectRegistry, WebGPU::ObjectHeap& objectHeap, WebGPUIdentifier identifier)
     {

Modified: trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteComputePipeline.h (286223 => 286224)


--- trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteComputePipeline.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteComputePipeline.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -44,6 +44,7 @@
 }
 
 class RemoteComputePipeline final : public IPC::StreamMessageReceiver {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemoteComputePipeline> create(PAL::WebGPU::ComputePipeline& computePipeline, WebGPU::ObjectRegistry& objectRegistry, WebGPU::ObjectHeap& objectHeap, WebGPUIdentifier identifier)
     {

Modified: trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteDevice.cpp (286223 => 286224)


--- trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteDevice.cpp	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteDevice.cpp	2021-11-29 18:21:51 UTC (rev 286224)
@@ -226,8 +226,10 @@
     }
 
     m_backing->createComputePipelineAsync(*convertedDescriptor, [callback = WTFMove(callback), weakObjectHeap = WeakPtr<WebGPU::ObjectHeap>(m_objectHeap), objectRegistry = m_objectRegistry, identifier] (Ref<PAL::WebGPU::ComputePipeline>&& computePipeline) mutable {
-        if (!weakObjectHeap)
+        if (!weakObjectHeap) {
+            callback();
             return;
+        }
         auto remoteComputePipeline = RemoteComputePipeline::create(computePipeline, objectRegistry, *weakObjectHeap, identifier);
         weakObjectHeap->addObject(remoteComputePipeline);
         callback();
@@ -244,8 +246,10 @@
     }
 
     m_backing->createRenderPipelineAsync(*convertedDescriptor, [callback = WTFMove(callback), weakObjectHeap = WeakPtr<WebGPU::ObjectHeap>(m_objectHeap), objectRegistry = m_objectRegistry, identifier] (Ref<PAL::WebGPU::RenderPipeline>&& renderPipeline) mutable {
-        if (!weakObjectHeap)
+        if (!weakObjectHeap) {
+            callback();
             return;
+        }
         auto remoteRenderPipeline = RemoteRenderPipeline::create(renderPipeline, objectRegistry, *weakObjectHeap, identifier);
         weakObjectHeap->addObject(remoteRenderPipeline);
         callback();

Modified: trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteDevice.h (286223 => 286224)


--- trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteDevice.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteDevice.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -60,6 +60,7 @@
 }
 
 class RemoteDevice final : public IPC::StreamMessageReceiver {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemoteDevice> create(PAL::WebGPU::Device& device, WebGPU::ObjectRegistry& objectRegistry, WebGPU::ObjectHeap& objectHeap, WebGPUIdentifier identifier)
     {

Modified: trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteExternalTexture.h (286223 => 286224)


--- trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteExternalTexture.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteExternalTexture.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -44,6 +44,7 @@
 }
 
 class RemoteExternalTexture final : public IPC::StreamMessageReceiver {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemoteExternalTexture> create(PAL::WebGPU::ExternalTexture& externalTexture, WebGPU::ObjectRegistry& objectRegistry, WebGPU::ObjectHeap& objectHeap, WebGPUIdentifier identifier)
     {

Modified: trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.cpp (286223 => 286224)


--- trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.cpp	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.cpp	2021-11-29 18:21:51 UTC (rev 286224)
@@ -61,7 +61,7 @@
 
     m_backing->requestAdapter(*convertedOptions, [callback = WTFMove(callback), weakObjectHeap = WeakPtr<WebGPU::ObjectHeap>(m_objectHeap), objectRegistry = m_objectRegistry, identifier] (RefPtr<PAL::WebGPU::Adapter>&& adapter) mutable {
         if (!weakObjectHeap || !adapter) {
-            // FIXME: Deal with failure here.
+            callback(StringImpl::empty(), { { } }, { }, false);
             return;
         }
         auto remoteAdapter = RemoteAdapter::create(*adapter, objectRegistry, *weakObjectHeap, identifier);

Modified: trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.h (286223 => 286224)


--- trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -47,6 +47,7 @@
 }
 
 class RemoteGPU final : public IPC::StreamMessageReceiver {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemoteGPU> create(PAL::WebGPU::GPU& gpu, WebGPU::ObjectRegistry& objectRegistry, WebGPU::ObjectHeap& objectHeap, WebGPUIdentifier identifier)
     {

Modified: trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemotePipelineLayout.h (286223 => 286224)


--- trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemotePipelineLayout.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemotePipelineLayout.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -44,6 +44,7 @@
 }
 
 class RemotePipelineLayout final : public IPC::StreamMessageReceiver {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemotePipelineLayout> create(PAL::WebGPU::PipelineLayout& pipelineLayout, WebGPU::ObjectRegistry& objectRegistry, WebGPU::ObjectHeap& objectHeap, WebGPUIdentifier identifier)
     {

Modified: trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteQuerySet.h (286223 => 286224)


--- trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteQuerySet.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteQuerySet.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -44,6 +44,7 @@
 }
 
 class RemoteQuerySet final : public IPC::StreamMessageReceiver {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemoteQuerySet> create(PAL::WebGPU::QuerySet& querySet, WebGPU::ObjectRegistry& objectRegistry, WebGPU::ObjectHeap& objectHeap, WebGPUIdentifier identifier)
     {

Modified: trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteQueue.h (286223 => 286224)


--- trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteQueue.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteQueue.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -53,6 +53,7 @@
 }
 
 class RemoteQueue final : public IPC::StreamMessageReceiver {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemoteQueue> create(PAL::WebGPU::Queue& queue, WebGPU::ObjectRegistry& objectRegistry, WebGPU::ObjectHeap& objectHeap, WebGPUIdentifier identifier)
     {

Modified: trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteRenderBundle.h (286223 => 286224)


--- trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteRenderBundle.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteRenderBundle.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -44,6 +44,7 @@
 }
 
 class RemoteRenderBundle final : public IPC::StreamMessageReceiver {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemoteRenderBundle> create(PAL::WebGPU::RenderBundle& renderBundle, WebGPU::ObjectRegistry& objectRegistry, WebGPU::ObjectHeap& objectHeap, WebGPUIdentifier identifier)
     {

Modified: trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteRenderBundleEncoder.h (286223 => 286224)


--- trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteRenderBundleEncoder.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteRenderBundleEncoder.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -47,6 +47,7 @@
 }
 
 class RemoteRenderBundleEncoder final : public IPC::StreamMessageReceiver {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemoteRenderBundleEncoder> create(PAL::WebGPU::RenderBundleEncoder& renderBundleEncoder, WebGPU::ObjectRegistry& objectRegistry, WebGPU::ObjectHeap& objectHeap, WebGPUIdentifier identifier)
     {

Modified: trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteRenderPassEncoder.h (286223 => 286224)


--- trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteRenderPassEncoder.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteRenderPassEncoder.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -47,6 +47,7 @@
 }
 
 class RemoteRenderPassEncoder final : public IPC::StreamMessageReceiver {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemoteRenderPassEncoder> create(PAL::WebGPU::RenderPassEncoder& renderPassEncoder, WebGPU::ObjectRegistry& objectRegistry, WebGPU::ObjectHeap& objectHeap, WebGPUIdentifier identifier)
     {

Modified: trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteRenderPipeline.h (286223 => 286224)


--- trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteRenderPipeline.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteRenderPipeline.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -44,6 +44,7 @@
 }
 
 class RemoteRenderPipeline final : public IPC::StreamMessageReceiver {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemoteRenderPipeline> create(PAL::WebGPU::RenderPipeline& renderPipeline, WebGPU::ObjectRegistry& objectRegistry, WebGPU::ObjectHeap& objectHeap, WebGPUIdentifier identifier)
     {

Modified: trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteSampler.h (286223 => 286224)


--- trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteSampler.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteSampler.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -44,6 +44,7 @@
 }
 
 class RemoteSampler final : public IPC::StreamMessageReceiver {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemoteSampler> create(PAL::WebGPU::Sampler& sampler, WebGPU::ObjectRegistry& objectRegistry, WebGPU::ObjectHeap& objectHeap, WebGPUIdentifier identifier)
     {

Modified: trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteShaderModule.h (286223 => 286224)


--- trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteShaderModule.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteShaderModule.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -47,6 +47,7 @@
 }
 
 class RemoteShaderModule final : public IPC::StreamMessageReceiver {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemoteShaderModule> create(PAL::WebGPU::ShaderModule& shaderModule, WebGPU::ObjectRegistry& objectRegistry, WebGPU::ObjectHeap& objectHeap, WebGPUIdentifier identifier)
     {

Modified: trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteTexture.h (286223 => 286224)


--- trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteTexture.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteTexture.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -45,6 +45,7 @@
 }
 
 class RemoteTexture final : public IPC::StreamMessageReceiver {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemoteTexture> create(PAL::WebGPU::Texture& texture, WebGPU::ObjectRegistry& objectRegistry, WebGPU::ObjectHeap& objectHeap, WebGPUIdentifier identifier)
     {

Modified: trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteTextureView.h (286223 => 286224)


--- trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteTextureView.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteTextureView.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -44,6 +44,7 @@
 }
 
 class RemoteTextureView final : public IPC::StreamMessageReceiver {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemoteTextureView> create(PAL::WebGPU::TextureView& textureView, WebGPU::ObjectRegistry& objectRegistry, WebGPU::ObjectHeap& objectHeap, WebGPUIdentifier identifier)
     {

Modified: trunk/Source/WebKit/GPUProcess/graphics/WebGPU/WebGPUObjectHeap.h (286223 => 286224)


--- trunk/Source/WebKit/GPUProcess/graphics/WebGPU/WebGPUObjectHeap.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/GPUProcess/graphics/WebGPU/WebGPUObjectHeap.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -62,6 +62,7 @@
 namespace WebKit::WebGPU {
 
 class ObjectHeap final : public CanMakeWeakPtr<ObjectHeap> {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     ObjectHeap();
     ~ObjectHeap();

Modified: trunk/Source/WebKit/GPUProcess/graphics/WebGPU/WebGPUObjectRegistry.h (286223 => 286224)


--- trunk/Source/WebKit/GPUProcess/graphics/WebGPU/WebGPUObjectRegistry.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/GPUProcess/graphics/WebGPU/WebGPUObjectRegistry.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -61,6 +61,7 @@
 namespace WebKit::WebGPU {
 
 class ObjectRegistry final : public WebGPU::ConvertFromBackingContext {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     ObjectRegistry();
     ~ObjectRegistry();

Modified: trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteAdapterProxy.h (286223 => 286224)


--- trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteAdapterProxy.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteAdapterProxy.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -32,12 +32,16 @@
 #include <pal/graphics/WebGPU/WebGPUAdapter.h>
 #include <wtf/Deque.h>
 
+namespace WebKit {
+class RemoteGPUProxy;
+}
+
 namespace WebKit::WebGPU {
 
 class ConvertToBackingContext;
-class RemoteGPUProxy;
 
 class RemoteAdapterProxy final : public PAL::WebGPU::Adapter {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemoteAdapterProxy> create(String&& name, PAL::WebGPU::SupportedFeatures& features, PAL::WebGPU::SupportedLimits& limits, bool isFallbackAdapter, RemoteGPUProxy& parent, ConvertToBackingContext& convertToBackingContext, WebGPUIdentifier identifier)
     {
@@ -47,7 +51,7 @@
     virtual ~RemoteAdapterProxy();
 
     RemoteGPUProxy& parent() { return m_parent; }
-    RemoteGPUProxy& root() { return m_parent; }
+    RemoteGPUProxy& root() { return m_parent->root(); }
 
 private:
     friend class DowncastConvertToBackingContext;

Modified: trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteBindGroupLayoutProxy.h (286223 => 286224)


--- trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteBindGroupLayoutProxy.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteBindGroupLayoutProxy.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -36,6 +36,7 @@
 class ConvertToBackingContext;
 
 class RemoteBindGroupLayoutProxy final : public PAL::WebGPU::BindGroupLayout {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemoteBindGroupLayoutProxy> create(RemoteDeviceProxy& parent, ConvertToBackingContext& convertToBackingContext, WebGPUIdentifier identifier)
     {
@@ -45,7 +46,7 @@
     virtual ~RemoteBindGroupLayoutProxy();
 
     RemoteDeviceProxy& parent() { return m_parent; }
-    RemoteGPUProxy& root() { return m_parent->parent().parent(); }
+    RemoteGPUProxy& root() { return m_parent->root(); }
 
 private:
     friend class DowncastConvertToBackingContext;

Modified: trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteBindGroupProxy.h (286223 => 286224)


--- trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteBindGroupProxy.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteBindGroupProxy.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -36,6 +36,7 @@
 class ConvertToBackingContext;
 
 class RemoteBindGroupProxy final : public PAL::WebGPU::BindGroup {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemoteBindGroupProxy> create(RemoteDeviceProxy& parent, ConvertToBackingContext& convertToBackingContext, WebGPUIdentifier identifier)
     {
@@ -45,7 +46,7 @@
     virtual ~RemoteBindGroupProxy();
 
     RemoteDeviceProxy& parent() { return m_parent; }
-    RemoteGPUProxy& root() { return m_parent->parent().parent(); }
+    RemoteGPUProxy& root() { return m_parent->root(); }
 
 private:
     friend class DowncastConvertToBackingContext;

Modified: trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteBufferProxy.h (286223 => 286224)


--- trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteBufferProxy.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteBufferProxy.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -37,6 +37,7 @@
 class ConvertToBackingContext;
 
 class RemoteBufferProxy final : public PAL::WebGPU::Buffer {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemoteBufferProxy> create(RemoteDeviceProxy& parent, ConvertToBackingContext& convertToBackingContext, WebGPUIdentifier identifier)
     {
@@ -46,7 +47,7 @@
     virtual ~RemoteBufferProxy();
 
     RemoteDeviceProxy& parent() { return m_parent; }
-    RemoteGPUProxy& root() { return m_parent->parent().parent(); }
+    RemoteGPUProxy& root() { return m_parent->root(); }
 
 private:
     friend class DowncastConvertToBackingContext;

Modified: trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteCommandBufferProxy.h (286223 => 286224)


--- trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteCommandBufferProxy.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteCommandBufferProxy.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -36,6 +36,7 @@
 class ConvertToBackingContext;
 
 class RemoteCommandBufferProxy final : public PAL::WebGPU::CommandBuffer {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemoteCommandBufferProxy> create(RemoteDeviceProxy& parent, ConvertToBackingContext& convertToBackingContext, WebGPUIdentifier identifier)
     {
@@ -45,7 +46,7 @@
     virtual ~RemoteCommandBufferProxy();
 
     RemoteDeviceProxy& parent() { return m_parent; }
-    RemoteGPUProxy& root() { return m_parent->parent().parent(); }
+    RemoteGPUProxy& root() { return m_parent->root(); }
 
 private:
     friend class DowncastConvertToBackingContext;

Modified: trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteCommandEncoderProxy.h (286223 => 286224)


--- trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteCommandEncoderProxy.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteCommandEncoderProxy.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -36,6 +36,7 @@
 class ConvertToBackingContext;
 
 class RemoteCommandEncoderProxy final : public PAL::WebGPU::CommandEncoder {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemoteCommandEncoderProxy> create(RemoteDeviceProxy& parent, ConvertToBackingContext& convertToBackingContext, WebGPUIdentifier identifier)
     {
@@ -45,7 +46,7 @@
     virtual ~RemoteCommandEncoderProxy();
 
     RemoteDeviceProxy& parent() { return m_parent; }
-    RemoteGPUProxy& root() { return m_parent->parent().parent(); }
+    RemoteGPUProxy& root() { return m_parent->root(); }
 
 private:
     friend class DowncastConvertToBackingContext;

Modified: trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteComputePassEncoderProxy.h (286223 => 286224)


--- trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteComputePassEncoderProxy.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteComputePassEncoderProxy.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -36,6 +36,7 @@
 class ConvertToBackingContext;
 
 class RemoteComputePassEncoderProxy final : public PAL::WebGPU::ComputePassEncoder {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemoteComputePassEncoderProxy> create(RemoteCommandEncoderProxy& parent, ConvertToBackingContext& convertToBackingContext, WebGPUIdentifier identifier)
     {
@@ -45,7 +46,7 @@
     virtual ~RemoteComputePassEncoderProxy();
 
     RemoteCommandEncoderProxy& parent() { return m_parent; }
-    RemoteGPUProxy& root() { return m_parent->parent().parent().parent(); }
+    RemoteGPUProxy& root() { return m_parent->root(); }
 
 private:
     friend class DowncastConvertToBackingContext;

Modified: trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteComputePipelineProxy.h (286223 => 286224)


--- trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteComputePipelineProxy.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteComputePipelineProxy.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -36,6 +36,7 @@
 class ConvertToBackingContext;
 
 class RemoteComputePipelineProxy final : public PAL::WebGPU::ComputePipeline {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemoteComputePipelineProxy> create(RemoteDeviceProxy& parent, ConvertToBackingContext& convertToBackingContext, WebGPUIdentifier identifier)
     {
@@ -45,7 +46,7 @@
     virtual ~RemoteComputePipelineProxy();
 
     RemoteDeviceProxy& parent() { return m_parent; }
-    RemoteGPUProxy& root() { return m_parent->parent().parent(); }
+    RemoteGPUProxy& root() { return m_parent->root(); }
 
 private:
     friend class DowncastConvertToBackingContext;

Modified: trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteDeviceProxy.h (286223 => 286224)


--- trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteDeviceProxy.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteDeviceProxy.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -38,6 +38,7 @@
 class ConvertToBackingContext;
 
 class RemoteDeviceProxy final : public PAL::WebGPU::Device {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemoteDeviceProxy> create(Ref<PAL::WebGPU::SupportedFeatures>&& features, Ref<PAL::WebGPU::SupportedLimits>&& limits, RemoteAdapterProxy& parent, ConvertToBackingContext& convertToBackingContext, WebGPUIdentifier identifier)
     {
@@ -47,7 +48,7 @@
     virtual ~RemoteDeviceProxy();
 
     RemoteAdapterProxy& parent() { return m_parent; }
-    RemoteGPUProxy& root() { return m_parent->parent(); }
+    RemoteGPUProxy& root() { return m_parent->root(); }
 
 private:
     friend class DowncastConvertToBackingContext;

Modified: trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteExternalTextureProxy.h (286223 => 286224)


--- trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteExternalTextureProxy.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteExternalTextureProxy.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -36,6 +36,7 @@
 class ConvertToBackingContext;
 
 class RemoteExternalTextureProxy final : public PAL::WebGPU::ExternalTexture {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemoteExternalTextureProxy> create(RemoteDeviceProxy& parent, ConvertToBackingContext& convertToBackingContext, WebGPUIdentifier identifier)
     {
@@ -45,7 +46,7 @@
     virtual ~RemoteExternalTextureProxy();
 
     RemoteDeviceProxy& parent() { return m_parent; }
-    RemoteGPUProxy& root() { return m_parent->parent().parent(); }
+    RemoteGPUProxy& root() { return m_parent->root(); }
 
 private:
     friend class DowncastConvertToBackingContext;

Modified: trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.cpp (286223 => 286224)


--- trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.cpp	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.cpp	2021-11-29 18:21:51 UTC (rev 286224)
@@ -35,11 +35,11 @@
 #include <pal/graphics/WebGPU/WebGPUSupportedFeatures.h>
 #include <pal/graphics/WebGPU/WebGPUSupportedLimits.h>
 
-namespace WebKit::WebGPU {
+namespace WebKit {
 
 static constexpr size_t defaultStreamSize = 1 << 21;
 
-RemoteGPUProxy::RemoteGPUProxy(GPUProcessConnection& gpuProcessConnection, ConvertToBackingContext& convertToBackingContext, WebGPUIdentifier identifier)
+RemoteGPUProxy::RemoteGPUProxy(GPUProcessConnection& gpuProcessConnection, WebGPU::ConvertToBackingContext& convertToBackingContext, WebGPUIdentifier identifier)
     : m_backing(identifier)
     , m_convertToBackingContext(convertToBackingContext)
     , m_streamConnection(gpuProcessConnection.connection(), defaultStreamSize)
@@ -54,17 +54,21 @@
 {
     auto convertedOptions = m_convertToBackingContext->convertToBacking(options);
     ASSERT(convertedOptions);
-    if (!convertedOptions)
+    if (!convertedOptions) {
+        callback(nullptr);
         return;
+    }
 
     auto identifier = WebGPUIdentifier::generate();
     String name;
-    SupportedFeatures supportedFeatures;
-    SupportedLimits supportedLimits;
+    WebGPU::SupportedFeatures supportedFeatures;
+    WebGPU::SupportedLimits supportedLimits;
     bool isFallbackAdapter;
     auto sendResult = sendSync(Messages::RemoteGPU::RequestAdapter(*convertedOptions, identifier), { name, supportedFeatures, supportedLimits, isFallbackAdapter });
-    if (!sendResult)
+    if (!sendResult) {
+        callback(nullptr);
         return;
+    }
 
     auto resultSupportedFeatures = PAL::WebGPU::SupportedFeatures::create(WTFMove(supportedFeatures.features));
     auto resultSupportedLimits = PAL::WebGPU::SupportedLimits::create(
@@ -95,9 +99,9 @@
         supportedLimits.maxComputeWorkgroupSizeZ,
         supportedLimits.maxComputeWorkgroupsPerDimension
     );
-    callback(RemoteAdapterProxy::create(WTFMove(name), WTFMove(resultSupportedFeatures), WTFMove(resultSupportedLimits), isFallbackAdapter, *this, m_convertToBackingContext, identifier));
+    callback(WebGPU::RemoteAdapterProxy::create(WTFMove(name), WTFMove(resultSupportedFeatures), WTFMove(resultSupportedLimits), isFallbackAdapter, *this, m_convertToBackingContext, identifier));
 }
 
-} // namespace WebKit::WebGPU
+} // namespace WebKit
 
 #endif // ENABLE(GPU_PROCESS)

Modified: trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.h (286223 => 286224)


--- trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -27,6 +27,7 @@
 
 #if ENABLE(GPU_PROCESS)
 
+#include "GPUProcessConnection.h"
 #include "StreamClientConnection.h"
 #include "WebGPUIdentifier.h"
 #include <pal/graphics/WebGPU/WebGPU.h>
@@ -36,13 +37,17 @@
 class GPUProcessConnection;
 }
 
-namespace WebKit::WebGPU {
+namespace WebKit {
 
+namespace WebGPU {
 class ConvertToBackingContext;
+class DowncastConvertToBackingContext;
+}
 
 class RemoteGPUProxy final : public PAL::WebGPU::GPU {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
-    static Ref<RemoteGPUProxy> create(GPUProcessConnection& gpuProcessConnection, ConvertToBackingContext& convertToBackingContext, WebGPUIdentifier identifier)
+    static Ref<RemoteGPUProxy> create(GPUProcessConnection& gpuProcessConnection, WebGPU::ConvertToBackingContext& convertToBackingContext, WebGPUIdentifier identifier)
     {
         return adoptRef(*new RemoteGPUProxy(gpuProcessConnection, convertToBackingContext, identifier));
     }
@@ -54,9 +59,9 @@
     IPC::StreamClientConnection& streamClientConnection() { return m_streamConnection; }
 
 private:
-    friend class DowncastConvertToBackingContext;
+    friend class WebGPU::DowncastConvertToBackingContext;
 
-    RemoteGPUProxy(GPUProcessConnection&, ConvertToBackingContext&, WebGPUIdentifier);
+    RemoteGPUProxy(GPUProcessConnection&, WebGPU::ConvertToBackingContext&, WebGPUIdentifier);
 
     RemoteGPUProxy(const RemoteGPUProxy&) = delete;
     RemoteGPUProxy(RemoteGPUProxy&&) = delete;
@@ -82,10 +87,10 @@
     Deque<WTF::Function<void(RefPtr<PAL::WebGPU::Adapter>&&)>> m_callbacks;
 
     WebGPUIdentifier m_backing;
-    Ref<ConvertToBackingContext> m_convertToBackingContext;
+    Ref<WebGPU::ConvertToBackingContext> m_convertToBackingContext;
     IPC::StreamClientConnection m_streamConnection;
 };
 
-} // namespace WebKit::WebGPU
+} // namespace WebKit
 
 #endif // ENABLE(GPU_PROCESS)

Modified: trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemotePipelineLayoutProxy.h (286223 => 286224)


--- trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemotePipelineLayoutProxy.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemotePipelineLayoutProxy.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -36,6 +36,7 @@
 class ConvertToBackingContext;
 
 class RemotePipelineLayoutProxy final : public PAL::WebGPU::PipelineLayout {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemotePipelineLayoutProxy> create(RemoteDeviceProxy& parent, ConvertToBackingContext& convertToBackingContext, WebGPUIdentifier identifier)
     {
@@ -45,7 +46,7 @@
     virtual ~RemotePipelineLayoutProxy();
 
     RemoteDeviceProxy& parent() { return m_parent; }
-    RemoteGPUProxy& root() { return m_parent->parent().parent(); }
+    RemoteGPUProxy& root() { return m_parent->root(); }
 
 private:
     friend class DowncastConvertToBackingContext;

Modified: trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteQuerySetProxy.h (286223 => 286224)


--- trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteQuerySetProxy.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteQuerySetProxy.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -36,6 +36,7 @@
 class ConvertToBackingContext;
 
 class RemoteQuerySetProxy final : public PAL::WebGPU::QuerySet {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemoteQuerySetProxy> create(RemoteDeviceProxy& parent, ConvertToBackingContext& convertToBackingContext, WebGPUIdentifier identifier)
     {
@@ -45,7 +46,7 @@
     virtual ~RemoteQuerySetProxy();
 
     RemoteDeviceProxy& parent() { return m_parent; }
-    RemoteGPUProxy& root() { return m_parent->parent().parent(); }
+    RemoteGPUProxy& root() { return m_parent->root(); }
 
 private:
     friend class DowncastConvertToBackingContext;

Modified: trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteQueueProxy.h (286223 => 286224)


--- trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteQueueProxy.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteQueueProxy.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -37,6 +37,7 @@
 class ConvertToBackingContext;
 
 class RemoteQueueProxy final : public PAL::WebGPU::Queue {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemoteQueueProxy> create(RemoteDeviceProxy& parent, ConvertToBackingContext& convertToBackingContext, WebGPUIdentifier identifier)
     {
@@ -46,7 +47,7 @@
     virtual ~RemoteQueueProxy();
 
     RemoteDeviceProxy& parent() { return m_parent; }
-    RemoteGPUProxy& root() { return m_parent->parent().parent(); }
+    RemoteGPUProxy& root() { return m_parent->root(); }
 
 private:
     friend class DowncastConvertToBackingContext;

Modified: trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteRenderBundleEncoderProxy.h (286223 => 286224)


--- trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteRenderBundleEncoderProxy.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteRenderBundleEncoderProxy.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -36,6 +36,7 @@
 class ConvertToBackingContext;
 
 class RemoteRenderBundleEncoderProxy final : public PAL::WebGPU::RenderBundleEncoder {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemoteRenderBundleEncoderProxy> create(RemoteDeviceProxy& parent, ConvertToBackingContext& convertToBackingContext, WebGPUIdentifier identifier)
     {
@@ -45,7 +46,7 @@
     virtual ~RemoteRenderBundleEncoderProxy();
 
     RemoteDeviceProxy& parent() { return m_parent; }
-    RemoteGPUProxy& root() { return m_parent->parent().parent(); }
+    RemoteGPUProxy& root() { return m_parent->root(); }
 
 private:
     friend class DowncastConvertToBackingContext;

Modified: trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteRenderBundleProxy.h (286223 => 286224)


--- trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteRenderBundleProxy.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteRenderBundleProxy.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -36,6 +36,7 @@
 class ConvertToBackingContext;
 
 class RemoteRenderBundleProxy final : public PAL::WebGPU::RenderBundle {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemoteRenderBundleProxy> create(RemoteDeviceProxy& parent, ConvertToBackingContext& convertToBackingContext, WebGPUIdentifier identifier)
     {
@@ -45,7 +46,7 @@
     virtual ~RemoteRenderBundleProxy();
 
     RemoteDeviceProxy& parent() { return m_parent; }
-    RemoteGPUProxy& root() { return m_parent->parent().parent(); }
+    RemoteGPUProxy& root() { return m_parent->root(); }
 
 private:
     friend class DowncastConvertToBackingContext;

Modified: trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteRenderPassEncoderProxy.h (286223 => 286224)


--- trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteRenderPassEncoderProxy.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteRenderPassEncoderProxy.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -36,6 +36,7 @@
 class ConvertToBackingContext;
 
 class RemoteRenderPassEncoderProxy final : public PAL::WebGPU::RenderPassEncoder {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemoteRenderPassEncoderProxy> create(RemoteCommandEncoderProxy& parent, ConvertToBackingContext& convertToBackingContext, WebGPUIdentifier identifier)
     {
@@ -45,7 +46,7 @@
     virtual ~RemoteRenderPassEncoderProxy();
 
     RemoteCommandEncoderProxy& parent() { return m_parent; }
-    RemoteGPUProxy& root() { return m_parent->parent().parent().parent(); }
+    RemoteGPUProxy& root() { return m_parent->root(); }
 
 private:
     friend class DowncastConvertToBackingContext;

Modified: trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteRenderPipelineProxy.h (286223 => 286224)


--- trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteRenderPipelineProxy.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteRenderPipelineProxy.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -36,6 +36,7 @@
 class ConvertToBackingContext;
 
 class RemoteRenderPipelineProxy final : public PAL::WebGPU::RenderPipeline {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemoteRenderPipelineProxy> create(RemoteDeviceProxy& parent, ConvertToBackingContext& convertToBackingContext, WebGPUIdentifier identifier)
     {
@@ -45,7 +46,7 @@
     virtual ~RemoteRenderPipelineProxy();
 
     RemoteDeviceProxy& parent() { return m_parent; }
-    RemoteGPUProxy& root() { return m_parent->parent().parent(); }
+    RemoteGPUProxy& root() { return m_parent->root(); }
 
 private:
     friend class DowncastConvertToBackingContext;

Modified: trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteSamplerProxy.h (286223 => 286224)


--- trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteSamplerProxy.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteSamplerProxy.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -36,6 +36,7 @@
 class ConvertToBackingContext;
 
 class RemoteSamplerProxy final : public PAL::WebGPU::Sampler {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemoteSamplerProxy> create(RemoteDeviceProxy& parent, ConvertToBackingContext& convertToBackingContext, WebGPUIdentifier identifier)
     {
@@ -45,7 +46,7 @@
     virtual ~RemoteSamplerProxy();
 
     RemoteDeviceProxy& parent() { return m_parent; }
-    RemoteGPUProxy& root() { return m_parent->parent().parent(); }
+    RemoteGPUProxy& root() { return m_parent->root(); }
 
 private:
     friend class DowncastConvertToBackingContext;

Modified: trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteShaderModuleProxy.h (286223 => 286224)


--- trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteShaderModuleProxy.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteShaderModuleProxy.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -36,6 +36,7 @@
 class ConvertToBackingContext;
 
 class RemoteShaderModuleProxy final : public PAL::WebGPU::ShaderModule {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemoteShaderModuleProxy> create(RemoteDeviceProxy& parent, ConvertToBackingContext& convertToBackingContext, WebGPUIdentifier identifier)
     {
@@ -45,7 +46,7 @@
     virtual ~RemoteShaderModuleProxy();
 
     RemoteDeviceProxy& parent() { return m_parent; }
-    RemoteGPUProxy& root() { return m_parent->parent().parent(); }
+    RemoteGPUProxy& root() { return m_parent->root(); }
 
 private:
     friend class DowncastConvertToBackingContext;

Modified: trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteTextureProxy.h (286223 => 286224)


--- trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteTextureProxy.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteTextureProxy.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -40,6 +40,7 @@
 class ConvertToBackingContext;
 
 class RemoteTextureProxy final : public PAL::WebGPU::Texture {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemoteTextureProxy> create(RemoteDeviceProxy& parent, ConvertToBackingContext& convertToBackingContext, WebGPUIdentifier identifier)
     {
@@ -49,7 +50,7 @@
     virtual ~RemoteTextureProxy();
 
     RemoteDeviceProxy& parent() { return m_parent; }
-    RemoteGPUProxy& root() { return m_parent->parent().parent(); }
+    RemoteGPUProxy& root() { return m_parent->root(); }
 
 private:
     friend class DowncastConvertToBackingContext;

Modified: trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteTextureViewProxy.h (286223 => 286224)


--- trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteTextureViewProxy.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteTextureViewProxy.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -36,6 +36,7 @@
 class ConvertToBackingContext;
 
 class RemoteTextureViewProxy final : public PAL::WebGPU::TextureView {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<RemoteTextureViewProxy> create(RemoteTextureProxy& parent, ConvertToBackingContext& convertToBackingContext, WebGPUIdentifier identifier)
     {
@@ -45,7 +46,7 @@
     virtual ~RemoteTextureViewProxy();
 
     RemoteTextureProxy& parent() { return m_parent; }
-    RemoteGPUProxy& root() { return m_parent->parent().parent().parent(); }
+    RemoteGPUProxy& root() { return m_parent->root(); }
 
 private:
     friend class DowncastConvertToBackingContext;

Modified: trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/WebGPUDowncastConvertToBackingContext.h (286223 => 286224)


--- trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/WebGPUDowncastConvertToBackingContext.h	2021-11-29 18:17:28 UTC (rev 286223)
+++ trunk/Source/WebKit/WebProcess/GPU/graphics/WebGPU/WebGPUDowncastConvertToBackingContext.h	2021-11-29 18:21:51 UTC (rev 286224)
@@ -32,7 +32,13 @@
 namespace WebKit::WebGPU {
 
 class DowncastConvertToBackingContext final : public ConvertToBackingContext {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
+    static Ref<DowncastConvertToBackingContext> create()
+    {
+        return adoptRef(*new DowncastConvertToBackingContext());
+    }
+
     virtual ~DowncastConvertToBackingContext() = default;
 
     WebGPUIdentifier convertToBacking(const PAL::WebGPU::Adapter&) final;
@@ -57,6 +63,9 @@
     WebGPUIdentifier convertToBacking(const PAL::WebGPU::ShaderModule&) final;
     WebGPUIdentifier convertToBacking(const PAL::WebGPU::Texture&) final;
     WebGPUIdentifier convertToBacking(const PAL::WebGPU::TextureView&) final;
+
+private:
+    DowncastConvertToBackingContext() = default;
 };
 
 } // namespace WebKit::WebGPU
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to