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