Diff
Modified: trunk/Source/WebGPU/ChangeLog (290255 => 290256)
--- trunk/Source/WebGPU/ChangeLog 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/ChangeLog 2022-02-21 19:32:30 UTC (rev 290256)
@@ -1,5 +1,118 @@
2022-02-21 Myles C. Maxfield <[email protected]>
+ [WebGPU] Tracer bullet part 5: Give Metal objects to WebGPU objects
+ https://bugs.webkit.org/show_bug.cgi?id=236898
+
+ Reviewed by Dean Jackson.
+
+ Each WebGPU object gets its own backing Metal object.
+
+ * WebGPU/Adapter.h:
+ (WebGPU::Adapter::create):
+ * WebGPU/Adapter.mm:
+ (WebGPU::Adapter::Adapter):
+ * WebGPU/BindGroup.h:
+ (WebGPU::BindGroup::create):
+ * WebGPU/BindGroup.mm:
+ (WebGPU::Device::createBindGroup):
+ (WebGPU::BindGroup::BindGroup):
+ * WebGPU/BindGroupLayout.h:
+ (WebGPU::BindGroupLayout::create):
+ * WebGPU/BindGroupLayout.mm:
+ (WebGPU::Device::createBindGroupLayout):
+ (WebGPU::BindGroupLayout::BindGroupLayout):
+ * WebGPU/Buffer.h:
+ (WebGPU::Buffer::create):
+ * WebGPU/Buffer.mm:
+ (WebGPU::Device::createBuffer):
+ (WebGPU::Buffer::Buffer):
+ * WebGPU/CommandBuffer.h:
+ (WebGPU::CommandBuffer::create):
+ * WebGPU/CommandBuffer.mm:
+ (WebGPU::CommandBuffer::CommandBuffer):
+ * WebGPU/CommandEncoder.h:
+ (WebGPU::CommandEncoder::create):
+ * WebGPU/CommandEncoder.mm:
+ (WebGPU::Device::createCommandEncoder):
+ (WebGPU::CommandEncoder::CommandEncoder):
+ (WebGPU::CommandEncoder::beginComputePass):
+ (WebGPU::CommandEncoder::beginRenderPass):
+ (WebGPU::CommandEncoder::finish):
+ * WebGPU/ComputePassEncoder.h:
+ (WebGPU::ComputePassEncoder::create):
+ * WebGPU/ComputePassEncoder.mm:
+ (WebGPU::ComputePassEncoder::ComputePassEncoder):
+ * WebGPU/ComputePipeline.h:
+ (WebGPU::ComputePipeline::create):
+ * WebGPU/ComputePipeline.mm:
+ (WebGPU::Device::createComputePipeline):
+ (WebGPU::ComputePipeline::ComputePipeline):
+ (WebGPU::ComputePipeline::getBindGroupLayout):
+ * WebGPU/Device.h:
+ (WebGPU::Device::create): Deleted.
+ * WebGPU/Device.mm:
+ (WebGPU::Device::create):
+ (WebGPU::Device::Device):
+ (WebGPU::Device::getQueue):
+ * WebGPU/Instance.h:
+ * WebGPU/Instance.mm:
+ (WebGPU::Instance::requestAdapter):
+ (wgpuInstanceRequestAdapter):
+ * WebGPU/QuerySet.h:
+ (WebGPU::QuerySet::create):
+ * WebGPU/QuerySet.mm:
+ (WebGPU::Device::createQuerySet):
+ (WebGPU::QuerySet::QuerySet):
+ * WebGPU/Queue.h:
+ (WebGPU::Queue::create):
+ * WebGPU/Queue.mm:
+ (WebGPU::Queue::Queue):
+ * WebGPU/RenderBundle.h:
+ (WebGPU::RenderBundle::create):
+ * WebGPU/RenderBundle.mm:
+ (WebGPU::RenderBundle::RenderBundle):
+ * WebGPU/RenderBundleEncoder.h:
+ (WebGPU::RenderBundleEncoder::create):
+ * WebGPU/RenderBundleEncoder.mm:
+ (WebGPU::Device::createRenderBundleEncoder):
+ (WebGPU::RenderBundleEncoder::RenderBundleEncoder):
+ (WebGPU::RenderBundleEncoder::finish):
+ * WebGPU/RenderPassEncoder.h:
+ (WebGPU::RenderPassEncoder::create):
+ * WebGPU/RenderPassEncoder.mm:
+ (WebGPU::RenderPassEncoder::RenderPassEncoder):
+ * WebGPU/RenderPipeline.h:
+ (WebGPU::RenderPipeline::create):
+ * WebGPU/RenderPipeline.mm:
+ (WebGPU::Device::createRenderPipeline):
+ (WebGPU::RenderPipeline::RenderPipeline):
+ (WebGPU::RenderPipeline::getBindGroupLayout):
+ * WebGPU/Sampler.h:
+ (WebGPU::Sampler::create):
+ * WebGPU/Sampler.mm:
+ (WebGPU::Device::createSampler):
+ (WebGPU::Sampler::Sampler):
+ * WebGPU/ShaderModule.h:
+ (WebGPU::ShaderModule::create):
+ * WebGPU/ShaderModule.mm:
+ (WebGPU::Device::createShaderModule):
+ (WebGPU::ShaderModule::ShaderModule):
+ * WebGPU/SwapChain.mm:
+ (WebGPU::SwapChain::getCurrentTextureView):
+ * WebGPU/Texture.h:
+ (WebGPU::Texture::create):
+ * WebGPU/Texture.mm:
+ (WebGPU::Device::createTexture):
+ (WebGPU::Texture::Texture):
+ (WebGPU::Texture::createView):
+ * WebGPU/TextureView.h:
+ (WebGPU::TextureView::create):
+ * WebGPU/TextureView.mm:
+ (WebGPU::TextureView::TextureView):
+ * WebGPU/config.h:
+
+2022-02-21 Myles C. Maxfield <[email protected]>
+
[WebGPU] Tracer bullet part 4: Move Device's construction methods to the files of the things they create
https://bugs.webkit.org/show_bug.cgi?id=236891
Modified: trunk/Source/WebGPU/WebGPU/Adapter.h (290255 => 290256)
--- trunk/Source/WebGPU/WebGPU/Adapter.h 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/WebGPU/Adapter.h 2022-02-21 19:32:30 UTC (rev 290256)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021 Apple Inc. All rights reserved.
+ * Copyright (c) 2021-2022 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -39,9 +39,9 @@
class Adapter : public RefCounted<Adapter> {
WTF_MAKE_FAST_ALLOCATED;
public:
- static Ref<Adapter> create()
+ static Ref<Adapter> create(id <MTLDevice> device)
{
- return adoptRef(*new Adapter());
+ return adoptRef(*new Adapter(device));
}
~Adapter();
@@ -53,7 +53,9 @@
void requestDevice(const WGPUDeviceDescriptor*, WTF::Function<void(WGPURequestDeviceStatus, RefPtr<Device>&&, const char*)>&& callback);
private:
- Adapter();
+ Adapter(id <MTLDevice>);
+
+ id <MTLDevice> m_device { nil };
};
} // namespace WebGPU
Modified: trunk/Source/WebGPU/WebGPU/Adapter.mm (290255 => 290256)
--- trunk/Source/WebGPU/WebGPU/Adapter.mm 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/WebGPU/Adapter.mm 2022-02-21 19:32:30 UTC (rev 290256)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021 Apple Inc. All rights reserved.
+ * Copyright (c) 2021-2022 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -32,7 +32,11 @@
namespace WebGPU {
-Adapter::Adapter() = default;
+Adapter::Adapter(id <MTLDevice> device)
+ : m_device(device)
+{
+ UNUSED_VARIABLE(m_device);
+}
Adapter::~Adapter() = default;
Modified: trunk/Source/WebGPU/WebGPU/BindGroup.h (290255 => 290256)
--- trunk/Source/WebGPU/WebGPU/BindGroup.h 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/WebGPU/BindGroup.h 2022-02-21 19:32:30 UTC (rev 290256)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021 Apple Inc. All rights reserved.
+ * Copyright (c) 2021-2022 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -35,9 +35,9 @@
class BindGroup : public RefCounted<BindGroup> {
WTF_MAKE_FAST_ALLOCATED;
public:
- static Ref<BindGroup> create()
+ static Ref<BindGroup> create(id <MTLBuffer> vertexArgumentBuffer, id <MTLBuffer> fragmentArgumentBuffer, id <MTLBuffer> computeArgumentBuffer)
{
- return adoptRef(*new BindGroup());
+ return adoptRef(*new BindGroup(vertexArgumentBuffer, fragmentArgumentBuffer, computeArgumentBuffer));
}
~BindGroup();
@@ -45,7 +45,11 @@
void setLabel(const char*);
private:
- BindGroup();
+ BindGroup(id <MTLBuffer> vertexArgumentBuffer, id <MTLBuffer> fragmentArgumentBuffer, id <MTLBuffer> computeArgumentBuffer);
+
+ id <MTLBuffer> m_vertexArgumentBuffer { nil };
+ id <MTLBuffer> m_fragmentArgumentBuffer { nil };
+ id <MTLBuffer> m_computeArgumentBuffer { nil };
};
} // namespace WebGPU
Modified: trunk/Source/WebGPU/WebGPU/BindGroup.mm (290255 => 290256)
--- trunk/Source/WebGPU/WebGPU/BindGroup.mm 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/WebGPU/BindGroup.mm 2022-02-21 19:32:30 UTC (rev 290256)
@@ -34,10 +34,18 @@
RefPtr<BindGroup> Device::createBindGroup(const WGPUBindGroupDescriptor* descriptor)
{
UNUSED_PARAM(descriptor);
- return BindGroup::create();
+ return BindGroup::create(nil, nil, nil);
}
-BindGroup::BindGroup() = default;
+BindGroup::BindGroup(id <MTLBuffer> vertexArgumentBuffer, id <MTLBuffer> fragmentArgumentBuffer, id <MTLBuffer> computeArgumentBuffer)
+ : m_vertexArgumentBuffer(vertexArgumentBuffer)
+ , m_fragmentArgumentBuffer(fragmentArgumentBuffer)
+ , m_computeArgumentBuffer(computeArgumentBuffer)
+{
+ UNUSED_VARIABLE(m_vertexArgumentBuffer);
+ UNUSED_VARIABLE(m_fragmentArgumentBuffer);
+ UNUSED_VARIABLE(m_computeArgumentBuffer);
+}
BindGroup::~BindGroup() = default;
Modified: trunk/Source/WebGPU/WebGPU/BindGroupLayout.h (290255 => 290256)
--- trunk/Source/WebGPU/WebGPU/BindGroupLayout.h 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/WebGPU/BindGroupLayout.h 2022-02-21 19:32:30 UTC (rev 290256)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021 Apple Inc. All rights reserved.
+ * Copyright (c) 2021-2022 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -35,9 +35,9 @@
class BindGroupLayout : public RefCounted<BindGroupLayout> {
WTF_MAKE_FAST_ALLOCATED;
public:
- static Ref<BindGroupLayout> create()
+ static Ref<BindGroupLayout> create(id <MTLArgumentEncoder> vertexArgumentEncoder, id <MTLArgumentEncoder> fragmentArgumentEncoder, id <MTLArgumentEncoder> computeArgumentEncoder)
{
- return adoptRef(*new BindGroupLayout());
+ return adoptRef(*new BindGroupLayout(vertexArgumentEncoder, fragmentArgumentEncoder, computeArgumentEncoder));
}
~BindGroupLayout();
@@ -45,7 +45,11 @@
void setLabel(const char*);
private:
- BindGroupLayout();
+ BindGroupLayout(id <MTLArgumentEncoder> vertexArgumentEncoder, id <MTLArgumentEncoder> fragmentArgumentEncoder, id <MTLArgumentEncoder> computeArgumentEncoder);
+
+ id <MTLArgumentEncoder> m_vertexArgumentEncoder { nil };
+ id <MTLArgumentEncoder> m_fragmentArgumentEncoder { nil };
+ id <MTLArgumentEncoder> m_computeArgumentEncoder { nil };
};
} // namespace WebGPU
Modified: trunk/Source/WebGPU/WebGPU/BindGroupLayout.mm (290255 => 290256)
--- trunk/Source/WebGPU/WebGPU/BindGroupLayout.mm 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/WebGPU/BindGroupLayout.mm 2022-02-21 19:32:30 UTC (rev 290256)
@@ -34,10 +34,18 @@
RefPtr<BindGroupLayout> Device::createBindGroupLayout(const WGPUBindGroupLayoutDescriptor* descriptor)
{
UNUSED_PARAM(descriptor);
- return BindGroupLayout::create();
+ return BindGroupLayout::create(nil, nil, nil);
}
-BindGroupLayout::BindGroupLayout() = default;
+BindGroupLayout::BindGroupLayout(id <MTLArgumentEncoder> vertexArgumentEncoder, id <MTLArgumentEncoder> fragmentArgumentEncoder, id <MTLArgumentEncoder> computeArgumentEncoder)
+ : m_vertexArgumentEncoder(vertexArgumentEncoder)
+ , m_fragmentArgumentEncoder(fragmentArgumentEncoder)
+ , m_computeArgumentEncoder(computeArgumentEncoder)
+{
+ UNUSED_VARIABLE(m_vertexArgumentEncoder);
+ UNUSED_VARIABLE(m_fragmentArgumentEncoder);
+ UNUSED_VARIABLE(m_computeArgumentEncoder);
+}
BindGroupLayout::~BindGroupLayout() = default;
Modified: trunk/Source/WebGPU/WebGPU/Buffer.h (290255 => 290256)
--- trunk/Source/WebGPU/WebGPU/Buffer.h 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/WebGPU/Buffer.h 2022-02-21 19:32:30 UTC (rev 290256)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021 Apple Inc. All rights reserved.
+ * Copyright (c) 2021-2022 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -36,9 +36,9 @@
class Buffer : public RefCounted<Buffer> {
WTF_MAKE_FAST_ALLOCATED;
public:
- static Ref<Buffer> create()
+ static Ref<Buffer> create(id <MTLBuffer> buffer)
{
- return adoptRef(*new Buffer());
+ return adoptRef(*new Buffer(buffer));
}
~Buffer();
@@ -51,7 +51,9 @@
void setLabel(const char*);
private:
- Buffer();
+ Buffer(id <MTLBuffer>);
+
+ id <MTLBuffer> m_buffer { nil };
};
} // namespace WebGPU
Modified: trunk/Source/WebGPU/WebGPU/Buffer.mm (290255 => 290256)
--- trunk/Source/WebGPU/WebGPU/Buffer.mm 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/WebGPU/Buffer.mm 2022-02-21 19:32:30 UTC (rev 290256)
@@ -34,10 +34,14 @@
RefPtr<Buffer> Device::createBuffer(const WGPUBufferDescriptor* descriptor)
{
UNUSED_PARAM(descriptor);
- return Buffer::create();
+ return Buffer::create(nil);
}
-Buffer::Buffer() = default;
+Buffer::Buffer(id <MTLBuffer> buffer)
+ : m_buffer(buffer)
+{
+ UNUSED_VARIABLE(m_buffer);
+}
Buffer::~Buffer() = default;
Modified: trunk/Source/WebGPU/WebGPU/CommandBuffer.h (290255 => 290256)
--- trunk/Source/WebGPU/WebGPU/CommandBuffer.h 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/WebGPU/CommandBuffer.h 2022-02-21 19:32:30 UTC (rev 290256)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021 Apple Inc. All rights reserved.
+ * Copyright (c) 2021-2022 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -35,9 +35,9 @@
class CommandBuffer : public RefCounted<CommandBuffer> {
WTF_MAKE_FAST_ALLOCATED;
public:
- static Ref<CommandBuffer> create()
+ static Ref<CommandBuffer> create(id <MTLCommandBuffer> commandBuffer)
{
- return adoptRef(*new CommandBuffer());
+ return adoptRef(*new CommandBuffer(commandBuffer));
}
~CommandBuffer();
@@ -45,7 +45,9 @@
void setLabel(const char*);
private:
- CommandBuffer();
+ CommandBuffer(id <MTLCommandBuffer>);
+
+ id <MTLCommandBuffer> m_commandBuffer { nil };
};
} // namespace WebGPU
Modified: trunk/Source/WebGPU/WebGPU/CommandBuffer.mm (290255 => 290256)
--- trunk/Source/WebGPU/WebGPU/CommandBuffer.mm 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/WebGPU/CommandBuffer.mm 2022-02-21 19:32:30 UTC (rev 290256)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021 Apple Inc. All rights reserved.
+ * Copyright (c) 2021-2022 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -30,7 +30,11 @@
namespace WebGPU {
-CommandBuffer::CommandBuffer() = default;
+CommandBuffer::CommandBuffer(id <MTLCommandBuffer> commandBuffer)
+ : m_commandBuffer(commandBuffer)
+{
+ UNUSED_VARIABLE(m_commandBuffer);
+}
CommandBuffer::~CommandBuffer() = default;
Modified: trunk/Source/WebGPU/WebGPU/CommandEncoder.h (290255 => 290256)
--- trunk/Source/WebGPU/WebGPU/CommandEncoder.h 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/WebGPU/CommandEncoder.h 2022-02-21 19:32:30 UTC (rev 290256)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021 Apple Inc. All rights reserved.
+ * Copyright (c) 2021-2022 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -42,9 +42,9 @@
class CommandEncoder : public RefCounted<CommandEncoder> {
WTF_MAKE_FAST_ALLOCATED;
public:
- static Ref<CommandEncoder> create()
+ static Ref<CommandEncoder> create(id <MTLCommandBuffer> commandBuffer)
{
- return adoptRef(*new CommandEncoder());
+ return adoptRef(*new CommandEncoder(commandBuffer));
}
~CommandEncoder();
@@ -65,7 +65,9 @@
void setLabel(const char*);
private:
- CommandEncoder();
+ CommandEncoder(id <MTLCommandBuffer>);
+
+ id <MTLCommandBuffer> m_commandBuffer { nil };
};
} // namespace WebGPU
Modified: trunk/Source/WebGPU/WebGPU/CommandEncoder.mm (290255 => 290256)
--- trunk/Source/WebGPU/WebGPU/CommandEncoder.mm 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/WebGPU/CommandEncoder.mm 2022-02-21 19:32:30 UTC (rev 290256)
@@ -39,10 +39,14 @@
RefPtr<CommandEncoder> Device::createCommandEncoder(const WGPUCommandEncoderDescriptor* descriptor)
{
UNUSED_PARAM(descriptor);
- return CommandEncoder::create();
+ return CommandEncoder::create(nil);
}
-CommandEncoder::CommandEncoder() = default;
+CommandEncoder::CommandEncoder(id <MTLCommandBuffer> commandBuffer)
+ : m_commandBuffer(commandBuffer)
+{
+ UNUSED_VARIABLE(m_commandBuffer);
+}
CommandEncoder::~CommandEncoder() = default;
@@ -49,13 +53,13 @@
RefPtr<ComputePassEncoder> CommandEncoder::beginComputePass(const WGPUComputePassDescriptor* descriptor)
{
UNUSED_PARAM(descriptor);
- return ComputePassEncoder::create();
+ return ComputePassEncoder::create(nil);
}
RefPtr<RenderPassEncoder> CommandEncoder::beginRenderPass(const WGPURenderPassDescriptor* descriptor)
{
UNUSED_PARAM(descriptor);
- return RenderPassEncoder::create();
+ return RenderPassEncoder::create(nil);
}
void CommandEncoder::copyBufferToBuffer(const Buffer& source, uint64_t sourceOffset, const Buffer& destination, uint64_t destinationOffset, uint64_t size)
@@ -98,7 +102,7 @@
RefPtr<CommandBuffer> CommandEncoder::finish(const WGPUCommandBufferDescriptor* descriptor)
{
UNUSED_PARAM(descriptor);
- return CommandBuffer::create();
+ return CommandBuffer::create(nil);
}
void CommandEncoder::insertDebugMarker(const char* markerLabel)
Modified: trunk/Source/WebGPU/WebGPU/ComputePassEncoder.h (290255 => 290256)
--- trunk/Source/WebGPU/WebGPU/ComputePassEncoder.h 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/WebGPU/ComputePassEncoder.h 2022-02-21 19:32:30 UTC (rev 290256)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021 Apple Inc. All rights reserved.
+ * Copyright (c) 2021-2022 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -40,9 +40,9 @@
class ComputePassEncoder : public RefCounted<ComputePassEncoder> {
WTF_MAKE_FAST_ALLOCATED;
public:
- static Ref<ComputePassEncoder> create()
+ static Ref<ComputePassEncoder> create(id <MTLComputeCommandEncoder> computeCommandEncoder)
{
- return adoptRef(*new ComputePassEncoder());
+ return adoptRef(*new ComputePassEncoder(computeCommandEncoder));
}
~ComputePassEncoder();
@@ -60,7 +60,9 @@
void setLabel(const char*);
private:
- ComputePassEncoder();
+ ComputePassEncoder(id <MTLComputeCommandEncoder>);
+
+ id <MTLComputeCommandEncoder> m_computeCommandEncoder { nil };
};
} // namespace WebGPU
Modified: trunk/Source/WebGPU/WebGPU/ComputePassEncoder.mm (290255 => 290256)
--- trunk/Source/WebGPU/WebGPU/ComputePassEncoder.mm 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/WebGPU/ComputePassEncoder.mm 2022-02-21 19:32:30 UTC (rev 290256)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021 Apple Inc. All rights reserved.
+ * Copyright (c) 2021-2022 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -34,7 +34,11 @@
namespace WebGPU {
-ComputePassEncoder::ComputePassEncoder() = default;
+ComputePassEncoder::ComputePassEncoder(id <MTLComputeCommandEncoder> computeCommandEncoder)
+ : m_computeCommandEncoder(computeCommandEncoder)
+{
+ UNUSED_VARIABLE(m_computeCommandEncoder);
+}
ComputePassEncoder::~ComputePassEncoder() = default;
Modified: trunk/Source/WebGPU/WebGPU/ComputePipeline.h (290255 => 290256)
--- trunk/Source/WebGPU/WebGPU/ComputePipeline.h 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/WebGPU/ComputePipeline.h 2022-02-21 19:32:30 UTC (rev 290256)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021 Apple Inc. All rights reserved.
+ * Copyright (c) 2021-2022 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -37,9 +37,9 @@
class ComputePipeline : public RefCounted<ComputePipeline> {
WTF_MAKE_FAST_ALLOCATED;
public:
- static Ref<ComputePipeline> create()
+ static Ref<ComputePipeline> create(id <MTLComputePipelineState> computePipelineState)
{
- return adoptRef(*new ComputePipeline());
+ return adoptRef(*new ComputePipeline(computePipelineState));
}
~ComputePipeline();
@@ -48,7 +48,9 @@
void setLabel(const char*);
private:
- ComputePipeline();
+ ComputePipeline(id <MTLComputePipelineState>);
+
+ id <MTLComputePipelineState> m_computePipelineState { nil };
};
} // namespace WebGPU
Modified: trunk/Source/WebGPU/WebGPU/ComputePipeline.mm (290255 => 290256)
--- trunk/Source/WebGPU/WebGPU/ComputePipeline.mm 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/WebGPU/ComputePipeline.mm 2022-02-21 19:32:30 UTC (rev 290256)
@@ -36,7 +36,7 @@
RefPtr<ComputePipeline> Device::createComputePipeline(const WGPUComputePipelineDescriptor* descriptor)
{
UNUSED_PARAM(descriptor);
- return ComputePipeline::create();
+ return ComputePipeline::create(nil);
}
void Device::createComputePipelineAsync(const WGPUComputePipelineDescriptor* descriptor, WTF::Function<void(WGPUCreatePipelineAsyncStatus, RefPtr<ComputePipeline>&&, const char* message)>&& callback)
@@ -45,7 +45,11 @@
UNUSED_PARAM(callback);
}
-ComputePipeline::ComputePipeline() = default;
+ComputePipeline::ComputePipeline(id <MTLComputePipelineState> computePipelineState)
+ : m_computePipelineState(computePipelineState)
+{
+ UNUSED_VARIABLE(m_computePipelineState);
+}
ComputePipeline::~ComputePipeline() = default;
@@ -52,7 +56,7 @@
Ref<BindGroupLayout> ComputePipeline::getBindGroupLayout(uint32_t groupIndex)
{
UNUSED_PARAM(groupIndex);
- return BindGroupLayout::create();
+ return BindGroupLayout::create(nil, nil, nil);
}
void ComputePipeline::setLabel(const char* label)
Modified: trunk/Source/WebGPU/WebGPU/Device.h (290255 => 290256)
--- trunk/Source/WebGPU/WebGPU/Device.h 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/WebGPU/Device.h 2022-02-21 19:32:30 UTC (rev 290256)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021 Apple Inc. All rights reserved.
+ * Copyright (c) 2021-2022 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -53,10 +53,7 @@
class Device : public RefCounted<Device> {
WTF_MAKE_FAST_ALLOCATED;
public:
- static Ref<Device> create()
- {
- return adoptRef(*new Device());
- }
+ static RefPtr<Device> create(id <MTLDevice>);
~Device();
@@ -87,7 +84,9 @@
void setLabel(const char*);
private:
- Device();
+ Device(id <MTLDevice>);
+
+ id <MTLDevice> m_device { nil };
};
} // namespace WebGPU
Modified: trunk/Source/WebGPU/WebGPU/Device.mm (290255 => 290256)
--- trunk/Source/WebGPU/WebGPU/Device.mm 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/WebGPU/Device.mm 2022-02-21 19:32:30 UTC (rev 290256)
@@ -46,8 +46,17 @@
namespace WebGPU {
-Device::Device() = default;
+RefPtr<Device> Device::create(id <MTLDevice> device)
+{
+ return adoptRef(*new Device(device));
+}
+Device::Device(id <MTLDevice> device)
+ : m_device(device)
+{
+ UNUSED_VARIABLE(m_device);
+}
+
Device::~Device() = default;
void Device::destroy()
@@ -68,7 +77,7 @@
RefPtr<Queue> Device::getQueue()
{
- return Queue::create();
+ return Queue::create(nil);
}
bool Device::hasFeature(WGPUFeatureName feature)
Modified: trunk/Source/WebGPU/WebGPU/Instance.h (290255 => 290256)
--- trunk/Source/WebGPU/WebGPU/Instance.h 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/WebGPU/Instance.h 2022-02-21 19:32:30 UTC (rev 290256)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021 Apple Inc. All rights reserved.
+ * Copyright (c) 2021-2022 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -49,7 +49,7 @@
RefPtr<Surface> createSurface(const WGPUSurfaceDescriptor*);
void processEvents();
- void requestAdapter(const WGPURequestAdapterOptions*, WTF::Function<void(WGPURequestAdapterStatus, Ref<Adapter>&&, const char*)>&& callback);
+ void requestAdapter(const WGPURequestAdapterOptions*, WTF::Function<void(WGPURequestAdapterStatus, RefPtr<Adapter>&&, const char*)>&& callback);
private:
Instance();
Modified: trunk/Source/WebGPU/WebGPU/Instance.mm (290255 => 290256)
--- trunk/Source/WebGPU/WebGPU/Instance.mm 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/WebGPU/Instance.mm 2022-02-21 19:32:30 UTC (rev 290256)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021 Apple Inc. All rights reserved.
+ * Copyright (c) 2021-2022 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -48,11 +48,11 @@
{
}
-void Instance::requestAdapter(const WGPURequestAdapterOptions* options, WTF::Function<void(WGPURequestAdapterStatus, Ref<Adapter>&&, const char*)>&& callback)
+void Instance::requestAdapter(const WGPURequestAdapterOptions* options, WTF::Function<void(WGPURequestAdapterStatus, RefPtr<Adapter>&&, const char*)>&& callback)
{
UNUSED_PARAM(options);
UNUSED_PARAM(callback);
- callback(WGPURequestAdapterStatus_Unavailable, Adapter::create(), "Adapter");
+ callback(WGPURequestAdapterStatus_Unavailable, Adapter::create(nil), "Adapter");
}
} // namespace WebGPU
@@ -311,8 +311,8 @@
void wgpuInstanceRequestAdapter(WGPUInstance instance, const WGPURequestAdapterOptions* options, WGPURequestAdapterCallback callback, void* userdata)
{
- instance->instance->requestAdapter(options, [callback, userdata] (WGPURequestAdapterStatus status, Ref<WebGPU::Adapter>&& adapter, const char* message) {
- callback(status, new WGPUAdapterImpl { WTFMove(adapter) }, message, userdata);
+ instance->instance->requestAdapter(options, [callback, userdata] (WGPURequestAdapterStatus status, RefPtr<WebGPU::Adapter>&& adapter, const char* message) {
+ callback(status, adapter ? new WGPUAdapterImpl { adapter.releaseNonNull() } : nullptr, message, userdata);
});
}
Modified: trunk/Source/WebGPU/WebGPU/QuerySet.h (290255 => 290256)
--- trunk/Source/WebGPU/WebGPU/QuerySet.h 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/WebGPU/QuerySet.h 2022-02-21 19:32:30 UTC (rev 290256)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021 Apple Inc. All rights reserved.
+ * Copyright (c) 2021-2022 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -35,9 +35,9 @@
class QuerySet : public RefCounted<QuerySet> {
WTF_MAKE_FAST_ALLOCATED;
public:
- static Ref<QuerySet> create()
+ static Ref<QuerySet> create(id <MTLCounterSampleBuffer> counterSampleBuffer)
{
- return adoptRef(*new QuerySet());
+ return adoptRef(*new QuerySet(counterSampleBuffer));
}
~QuerySet();
@@ -46,7 +46,9 @@
void setLabel(const char*);
private:
- QuerySet();
+ QuerySet(id <MTLCounterSampleBuffer>);
+
+ id <MTLCounterSampleBuffer> m_counterSampleBuffer { nil };
};
} // namespace WebGPU
Modified: trunk/Source/WebGPU/WebGPU/QuerySet.mm (290255 => 290256)
--- trunk/Source/WebGPU/WebGPU/QuerySet.mm 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/WebGPU/QuerySet.mm 2022-02-21 19:32:30 UTC (rev 290256)
@@ -34,10 +34,14 @@
RefPtr<QuerySet> Device::createQuerySet(const WGPUQuerySetDescriptor* descriptor)
{
UNUSED_PARAM(descriptor);
- return QuerySet::create();
+ return QuerySet::create(nil);
}
-QuerySet::QuerySet() = default;
+QuerySet::QuerySet(id <MTLCounterSampleBuffer> counterSampleBuffer)
+ : m_counterSampleBuffer(counterSampleBuffer)
+{
+ UNUSED_VARIABLE(m_counterSampleBuffer);
+}
QuerySet::~QuerySet() = default;
Modified: trunk/Source/WebGPU/WebGPU/Queue.h (290255 => 290256)
--- trunk/Source/WebGPU/WebGPU/Queue.h 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/WebGPU/Queue.h 2022-02-21 19:32:30 UTC (rev 290256)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021 Apple Inc. All rights reserved.
+ * Copyright (c) 2021-2022 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -40,9 +40,9 @@
class Queue : public RefCounted<Queue> {
WTF_MAKE_FAST_ALLOCATED;
public:
- static Ref<Queue> create()
+ static Ref<Queue> create(id <MTLCommandQueue> commandQueue)
{
- return adoptRef(*new Queue());
+ return adoptRef(*new Queue(commandQueue));
}
~Queue();
@@ -54,7 +54,9 @@
void setLabel(const char*);
private:
- Queue();
+ Queue(id <MTLCommandQueue>);
+
+ id <MTLCommandQueue> m_commandQueue { nil };
};
} // namespace WebGPU
Modified: trunk/Source/WebGPU/WebGPU/Queue.mm (290255 => 290256)
--- trunk/Source/WebGPU/WebGPU/Queue.mm 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/WebGPU/Queue.mm 2022-02-21 19:32:30 UTC (rev 290256)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021 Apple Inc. All rights reserved.
+ * Copyright (c) 2021-2022 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -32,7 +32,11 @@
namespace WebGPU {
-Queue::Queue() = default;
+Queue::Queue(id <MTLCommandQueue> commandQueue)
+ : m_commandQueue(commandQueue)
+{
+ UNUSED_VARIABLE(m_commandQueue);
+}
Queue::~Queue() = default;
Modified: trunk/Source/WebGPU/WebGPU/RenderBundle.h (290255 => 290256)
--- trunk/Source/WebGPU/WebGPU/RenderBundle.h 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/WebGPU/RenderBundle.h 2022-02-21 19:32:30 UTC (rev 290256)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021 Apple Inc. All rights reserved.
+ * Copyright (c) 2021-2022 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -35,9 +35,9 @@
class RenderBundle : public RefCounted<RenderBundle> {
WTF_MAKE_FAST_ALLOCATED;
public:
- static Ref<RenderBundle> create()
+ static Ref<RenderBundle> create(id <MTLIndirectCommandBuffer> indirectCommandBuffer)
{
- return adoptRef(*new RenderBundle());
+ return adoptRef(*new RenderBundle(indirectCommandBuffer));
}
~RenderBundle();
@@ -45,7 +45,9 @@
void setLabel(const char*);
private:
- RenderBundle();
+ RenderBundle(id <MTLIndirectCommandBuffer>);
+
+ id <MTLIndirectCommandBuffer> m_indirectCommandBuffer { nil };
};
} // namespace WebGPU
Modified: trunk/Source/WebGPU/WebGPU/RenderBundle.mm (290255 => 290256)
--- trunk/Source/WebGPU/WebGPU/RenderBundle.mm 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/WebGPU/RenderBundle.mm 2022-02-21 19:32:30 UTC (rev 290256)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021 Apple Inc. All rights reserved.
+ * Copyright (c) 2021-2022 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -30,7 +30,11 @@
namespace WebGPU {
-RenderBundle::RenderBundle() = default;
+RenderBundle::RenderBundle(id <MTLIndirectCommandBuffer> indirectCommandBuffer)
+ : m_indirectCommandBuffer(indirectCommandBuffer)
+{
+ UNUSED_VARIABLE(m_indirectCommandBuffer);
+}
RenderBundle::~RenderBundle() = default;
Modified: trunk/Source/WebGPU/WebGPU/RenderBundleEncoder.h (290255 => 290256)
--- trunk/Source/WebGPU/WebGPU/RenderBundleEncoder.h 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/WebGPU/RenderBundleEncoder.h 2022-02-21 19:32:30 UTC (rev 290256)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021 Apple Inc. All rights reserved.
+ * Copyright (c) 2021-2022 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -41,9 +41,9 @@
class RenderBundleEncoder : public RefCounted<RenderBundleEncoder> {
WTF_MAKE_FAST_ALLOCATED;
public:
- static Ref<RenderBundleEncoder> create()
+ static Ref<RenderBundleEncoder> create(id <MTLIndirectCommandBuffer> indirectCommandBuffer)
{
- return adoptRef(*new RenderBundleEncoder());
+ return adoptRef(*new RenderBundleEncoder(indirectCommandBuffer));
}
~RenderBundleEncoder();
@@ -63,7 +63,9 @@
void setLabel(const char*);
private:
- RenderBundleEncoder();
+ RenderBundleEncoder(id <MTLIndirectCommandBuffer>);
+
+ id <MTLIndirectCommandBuffer> m_indirectCommandBuffer { nil };
};
} // namespace WebGPU
Modified: trunk/Source/WebGPU/WebGPU/RenderBundleEncoder.mm (290255 => 290256)
--- trunk/Source/WebGPU/WebGPU/RenderBundleEncoder.mm 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/WebGPU/RenderBundleEncoder.mm 2022-02-21 19:32:30 UTC (rev 290256)
@@ -38,10 +38,14 @@
RefPtr<RenderBundleEncoder> Device::createRenderBundleEncoder(const WGPURenderBundleEncoderDescriptor* descriptor)
{
UNUSED_PARAM(descriptor);
- return RenderBundleEncoder::create();
+ return RenderBundleEncoder::create(nil);
}
-RenderBundleEncoder::RenderBundleEncoder() = default;
+RenderBundleEncoder::RenderBundleEncoder(id <MTLIndirectCommandBuffer> indirectCommandBuffer)
+ : m_indirectCommandBuffer(indirectCommandBuffer)
+{
+ UNUSED_VARIABLE(m_indirectCommandBuffer);
+}
RenderBundleEncoder::~RenderBundleEncoder() = default;
@@ -77,7 +81,7 @@
RefPtr<RenderBundle> RenderBundleEncoder::finish(const WGPURenderBundleDescriptor* descriptor)
{
UNUSED_PARAM(descriptor);
- return RenderBundle::create();
+ return RenderBundle::create(nil);
}
void RenderBundleEncoder::insertDebugMarker(const char* markerLabel)
Modified: trunk/Source/WebGPU/WebGPU/RenderPassEncoder.h (290255 => 290256)
--- trunk/Source/WebGPU/WebGPU/RenderPassEncoder.h 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/WebGPU/RenderPassEncoder.h 2022-02-21 19:32:30 UTC (rev 290256)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021 Apple Inc. All rights reserved.
+ * Copyright (c) 2021-2022 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -43,9 +43,9 @@
class RenderPassEncoder : public RefCounted<RenderPassEncoder> {
WTF_MAKE_FAST_ALLOCATED;
public:
- static Ref<RenderPassEncoder> create()
+ static Ref<RenderPassEncoder> create(id <MTLRenderCommandEncoder> renderCommandEncoder)
{
- return adoptRef(*new RenderPassEncoder());
+ return adoptRef(*new RenderPassEncoder(renderCommandEncoder));
}
~RenderPassEncoder();
@@ -74,7 +74,9 @@
void setLabel(const char*);
private:
- RenderPassEncoder();
+ RenderPassEncoder(id <MTLRenderCommandEncoder>);
+
+ id <MTLRenderCommandEncoder> m_renderCommandEncoder { nil };
};
} // namespace WebGPU
Modified: trunk/Source/WebGPU/WebGPU/RenderPassEncoder.mm (290255 => 290256)
--- trunk/Source/WebGPU/WebGPU/RenderPassEncoder.mm 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/WebGPU/RenderPassEncoder.mm 2022-02-21 19:32:30 UTC (rev 290256)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021 Apple Inc. All rights reserved.
+ * Copyright (c) 2021-2022 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -35,7 +35,11 @@
namespace WebGPU {
-RenderPassEncoder::RenderPassEncoder() = default;
+RenderPassEncoder::RenderPassEncoder(id <MTLRenderCommandEncoder> renderCommandEncoder)
+ : m_renderCommandEncoder(renderCommandEncoder)
+{
+ UNUSED_VARIABLE(m_renderCommandEncoder);
+}
RenderPassEncoder::~RenderPassEncoder() = default;
Modified: trunk/Source/WebGPU/WebGPU/RenderPipeline.h (290255 => 290256)
--- trunk/Source/WebGPU/WebGPU/RenderPipeline.h 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/WebGPU/RenderPipeline.h 2022-02-21 19:32:30 UTC (rev 290256)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021 Apple Inc. All rights reserved.
+ * Copyright (c) 2021-2022 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -37,9 +37,9 @@
class RenderPipeline : public RefCounted<RenderPipeline> {
WTF_MAKE_FAST_ALLOCATED;
public:
- static Ref<RenderPipeline> create()
+ static Ref<RenderPipeline> create(id <MTLRenderPipelineState> renderPipelineState)
{
- return adoptRef(*new RenderPipeline());
+ return adoptRef(*new RenderPipeline(renderPipelineState));
}
~RenderPipeline();
@@ -48,7 +48,9 @@
void setLabel(const char*);
private:
- RenderPipeline();
+ RenderPipeline(id <MTLRenderPipelineState>);
+
+ id <MTLRenderPipelineState> m_renderPipelineState { nil };
};
} // namespace WebGPU
Modified: trunk/Source/WebGPU/WebGPU/RenderPipeline.mm (290255 => 290256)
--- trunk/Source/WebGPU/WebGPU/RenderPipeline.mm 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/WebGPU/RenderPipeline.mm 2022-02-21 19:32:30 UTC (rev 290256)
@@ -35,7 +35,7 @@
RefPtr<RenderPipeline> Device::createRenderPipeline(const WGPURenderPipelineDescriptor* descriptor)
{
UNUSED_PARAM(descriptor);
- return RenderPipeline::create();
+ return RenderPipeline::create(nil);
}
void Device::createRenderPipelineAsync(const WGPURenderPipelineDescriptor* descriptor, WTF::Function<void(WGPUCreatePipelineAsyncStatus, RefPtr<RenderPipeline>&&, const char* message)>&& callback)
@@ -44,7 +44,11 @@
UNUSED_PARAM(callback);
}
-RenderPipeline::RenderPipeline() = default;
+RenderPipeline::RenderPipeline(id <MTLRenderPipelineState> renderPipelineState)
+ : m_renderPipelineState(renderPipelineState)
+{
+ UNUSED_VARIABLE(m_renderPipelineState);
+}
RenderPipeline::~RenderPipeline() = default;
@@ -51,7 +55,7 @@
Ref<BindGroupLayout> RenderPipeline::getBindGroupLayout(uint32_t groupIndex)
{
UNUSED_PARAM(groupIndex);
- return BindGroupLayout::create();
+ return BindGroupLayout::create(nil, nil, nil);
}
void RenderPipeline::setLabel(const char* label)
Modified: trunk/Source/WebGPU/WebGPU/Sampler.h (290255 => 290256)
--- trunk/Source/WebGPU/WebGPU/Sampler.h 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/WebGPU/Sampler.h 2022-02-21 19:32:30 UTC (rev 290256)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021 Apple Inc. All rights reserved.
+ * Copyright (c) 2021-2022 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -35,9 +35,9 @@
class Sampler : public RefCounted<Sampler> {
WTF_MAKE_FAST_ALLOCATED;
public:
- static Ref<Sampler> create()
+ static Ref<Sampler> create(id <MTLSamplerState> samplerState)
{
- return adoptRef(*new Sampler());
+ return adoptRef(*new Sampler(samplerState));
}
~Sampler();
@@ -45,7 +45,9 @@
void setLabel(const char*);
private:
- Sampler();
+ Sampler(id <MTLSamplerState>);
+
+ id <MTLSamplerState> m_samplerState { nil };
};
} // namespace WebGPU
Modified: trunk/Source/WebGPU/WebGPU/Sampler.mm (290255 => 290256)
--- trunk/Source/WebGPU/WebGPU/Sampler.mm 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/WebGPU/Sampler.mm 2022-02-21 19:32:30 UTC (rev 290256)
@@ -34,10 +34,14 @@
RefPtr<Sampler> Device::createSampler(const WGPUSamplerDescriptor* descriptor)
{
UNUSED_PARAM(descriptor);
- return Sampler::create();
+ return Sampler::create(nil);
}
-Sampler::Sampler() = default;
+Sampler::Sampler(id <MTLSamplerState> samplerState)
+ : m_samplerState(samplerState)
+{
+ UNUSED_VARIABLE(m_samplerState);
+}
Sampler::~Sampler() = default;
Modified: trunk/Source/WebGPU/WebGPU/ShaderModule.h (290255 => 290256)
--- trunk/Source/WebGPU/WebGPU/ShaderModule.h 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/WebGPU/ShaderModule.h 2022-02-21 19:32:30 UTC (rev 290256)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021 Apple Inc. All rights reserved.
+ * Copyright (c) 2021-2022 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -35,9 +35,9 @@
class ShaderModule : public RefCounted<ShaderModule> {
WTF_MAKE_FAST_ALLOCATED;
public:
- static Ref<ShaderModule> create()
+ static Ref<ShaderModule> create(id <MTLLibrary> library)
{
- return adoptRef(*new ShaderModule());
+ return adoptRef(*new ShaderModule(library));
}
~ShaderModule();
@@ -46,7 +46,9 @@
void setLabel(const char*);
private:
- ShaderModule();
+ ShaderModule(id <MTLLibrary>);
+
+ id <MTLLibrary> m_library { nil };
};
} // namespace WebGPU
Modified: trunk/Source/WebGPU/WebGPU/ShaderModule.mm (290255 => 290256)
--- trunk/Source/WebGPU/WebGPU/ShaderModule.mm 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/WebGPU/ShaderModule.mm 2022-02-21 19:32:30 UTC (rev 290256)
@@ -34,10 +34,14 @@
RefPtr<ShaderModule> Device::createShaderModule(const WGPUShaderModuleDescriptor* descriptor)
{
UNUSED_PARAM(descriptor);
- return ShaderModule::create();
+ return ShaderModule::create(nil);
}
-ShaderModule::ShaderModule() = default;
+ShaderModule::ShaderModule(id <MTLLibrary> library)
+ : m_library(library)
+{
+ UNUSED_VARIABLE(m_library);
+}
ShaderModule::~ShaderModule() = default;
Modified: trunk/Source/WebGPU/WebGPU/SwapChain.mm (290255 => 290256)
--- trunk/Source/WebGPU/WebGPU/SwapChain.mm 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/WebGPU/SwapChain.mm 2022-02-21 19:32:30 UTC (rev 290256)
@@ -45,7 +45,7 @@
Ref<TextureView> SwapChain::getCurrentTextureView()
{
- return TextureView::create();
+ return TextureView::create(nil);
}
void SwapChain::present()
Modified: trunk/Source/WebGPU/WebGPU/Texture.h (290255 => 290256)
--- trunk/Source/WebGPU/WebGPU/Texture.h 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/WebGPU/Texture.h 2022-02-21 19:32:30 UTC (rev 290256)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021 Apple Inc. All rights reserved.
+ * Copyright (c) 2021-2022 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -38,9 +38,9 @@
class Texture : public RefCounted<Texture> {
WTF_MAKE_FAST_ALLOCATED;
public:
- static Ref<Texture> create()
+ static Ref<Texture> create(id <MTLTexture> texture)
{
- return adoptRef(*new Texture());
+ return adoptRef(*new Texture(texture));
}
~Texture();
@@ -50,7 +50,9 @@
void setLabel(const char*);
private:
- Texture();
+ Texture(id <MTLTexture>);
+
+ id <MTLTexture> m_texture { nil };
};
} // namespace WebGPU
Modified: trunk/Source/WebGPU/WebGPU/Texture.mm (290255 => 290256)
--- trunk/Source/WebGPU/WebGPU/Texture.mm 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/WebGPU/Texture.mm 2022-02-21 19:32:30 UTC (rev 290256)
@@ -35,10 +35,14 @@
RefPtr<Texture> Device::createTexture(const WGPUTextureDescriptor* descriptor)
{
UNUSED_PARAM(descriptor);
- return Texture::create();
+ return Texture::create(nil);
}
-Texture::Texture() = default;
+Texture::Texture(id <MTLTexture> texture)
+ : m_texture(texture)
+{
+ UNUSED_VARIABLE(m_texture);
+}
Texture::~Texture() = default;
@@ -45,7 +49,7 @@
RefPtr<TextureView> Texture::createView(const WGPUTextureViewDescriptor* descriptor)
{
UNUSED_PARAM(descriptor);
- return TextureView::create();
+ return TextureView::create(nil);
}
void Texture::destroy()
Modified: trunk/Source/WebGPU/WebGPU/TextureView.h (290255 => 290256)
--- trunk/Source/WebGPU/WebGPU/TextureView.h 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/WebGPU/TextureView.h 2022-02-21 19:32:30 UTC (rev 290256)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021 Apple Inc. All rights reserved.
+ * Copyright (c) 2021-2022 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -35,9 +35,9 @@
class TextureView : public RefCounted<TextureView> {
WTF_MAKE_FAST_ALLOCATED;
public:
- static Ref<TextureView> create()
+ static Ref<TextureView> create(id <MTLTexture> texture)
{
- return adoptRef(*new TextureView());
+ return adoptRef(*new TextureView(texture));
}
~TextureView();
@@ -45,7 +45,9 @@
void setLabel(const char*);
private:
- TextureView();
+ TextureView(id <MTLTexture>);
+
+ id <MTLTexture> m_texture { nil };
};
} // namespace WebGPU
Modified: trunk/Source/WebGPU/WebGPU/TextureView.mm (290255 => 290256)
--- trunk/Source/WebGPU/WebGPU/TextureView.mm 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/WebGPU/TextureView.mm 2022-02-21 19:32:30 UTC (rev 290256)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021 Apple Inc. All rights reserved.
+ * Copyright (c) 2021-2022 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -30,7 +30,11 @@
namespace WebGPU {
-TextureView::TextureView() = default;
+TextureView::TextureView(id <MTLTexture> texture)
+ : m_texture(texture)
+{
+ UNUSED_VARIABLE(m_texture);
+}
TextureView::~TextureView() = default;
Modified: trunk/Source/WebGPU/WebGPU/config.h (290255 => 290256)
--- trunk/Source/WebGPU/WebGPU/config.h 2022-02-21 19:23:34 UTC (rev 290255)
+++ trunk/Source/WebGPU/WebGPU/config.h 2022-02-21 19:32:30 UTC (rev 290256)
@@ -25,6 +25,8 @@
#include "ExportMacros.h"
+#include <Metal/Metal.h>
+
#include <wtf/Assertions.h>
#include <wtf/DisallowCType.h>