Diff
Modified: trunk/Source/WebGPU/ChangeLog (290876 => 290877)
--- trunk/Source/WebGPU/ChangeLog 2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/ChangeLog 2022-03-07 06:43:16 UTC (rev 290877)
@@ -1,3 +1,113 @@
+2022-03-06 Myles C. Maxfield <[email protected]>
+
+ [WebGPU] Use C++ references instead of pointers where applicable
+ https://bugs.webkit.org/show_bug.cgi?id=237508
+
+ Reviewed by Tim Horton.
+
+ The header we're implementing uses pointers because it's a C header.
+ Our internal implementation can use references instead.
+
+ * WebGPU/Adapter.h:
+ * WebGPU/Adapter.mm:
+ (WebGPU::Adapter::getLimits):
+ (WebGPU::Adapter::getProperties):
+ (WebGPU::Adapter::requestDevice):
+ (wgpuAdapterGetLimits):
+ (wgpuAdapterGetProperties):
+ (wgpuAdapterRequestDevice):
+ (wgpuAdapterRequestDeviceWithBlock):
+ * WebGPU/BindGroup.mm:
+ (WebGPU::Device::createBindGroup):
+ * WebGPU/BindGroupLayout.mm:
+ (WebGPU::Device::createBindGroupLayout):
+ * WebGPU/Buffer.mm:
+ (WebGPU::Device::createBuffer):
+ * WebGPU/CommandEncoder.h:
+ * WebGPU/CommandEncoder.mm:
+ (WebGPU::Device::createCommandEncoder):
+ (WebGPU::CommandEncoder::beginComputePass):
+ (WebGPU::CommandEncoder::beginRenderPass):
+ (WebGPU::CommandEncoder::copyBufferToTexture):
+ (WebGPU::CommandEncoder::copyTextureToBuffer):
+ (WebGPU::CommandEncoder::copyTextureToTexture):
+ (WebGPU::CommandEncoder::finish):
+ (wgpuCommandEncoderBeginComputePass):
+ (wgpuCommandEncoderBeginRenderPass):
+ (wgpuCommandEncoderCopyBufferToTexture):
+ (wgpuCommandEncoderCopyTextureToBuffer):
+ (wgpuCommandEncoderCopyTextureToTexture):
+ (wgpuCommandEncoderFinish):
+ * WebGPU/ComputePipeline.mm:
+ (WebGPU::Device::createComputePipeline):
+ (WebGPU::Device::createComputePipelineAsync):
+ * WebGPU/Device.h:
+ * WebGPU/Device.mm:
+ (WebGPU::Device::getLimits):
+ (wgpuDeviceCreateBindGroup):
+ (wgpuDeviceCreateBindGroupLayout):
+ (wgpuDeviceCreateBuffer):
+ (wgpuDeviceCreateCommandEncoder):
+ (wgpuDeviceCreateComputePipeline):
+ (wgpuDeviceCreateComputePipelineAsync):
+ (wgpuDeviceCreateComputePipelineAsyncWithBlock):
+ (wgpuDeviceCreatePipelineLayout):
+ (wgpuDeviceCreateQuerySet):
+ (wgpuDeviceCreateRenderBundleEncoder):
+ (wgpuDeviceCreateRenderPipeline):
+ (wgpuDeviceCreateRenderPipelineAsync):
+ (wgpuDeviceCreateRenderPipelineAsyncWithBlock):
+ (wgpuDeviceCreateSampler):
+ (wgpuDeviceCreateShaderModule):
+ (wgpuDeviceCreateSwapChain):
+ (wgpuDeviceCreateTexture):
+ (wgpuDeviceGetLimits):
+ * WebGPU/Instance.h:
+ * WebGPU/Instance.mm:
+ (WebGPU::Instance::create):
+ (WebGPU::Instance::createSurface):
+ (WebGPU::Instance::requestAdapter):
+ (wgpuCreateInstance):
+ (wgpuInstanceCreateSurface):
+ (wgpuInstanceRequestAdapter):
+ (wgpuInstanceRequestAdapterWithBlock):
+ * WebGPU/PipelineLayout.mm:
+ (WebGPU::Device::createPipelineLayout):
+ * WebGPU/QuerySet.mm:
+ (WebGPU::Device::createQuerySet):
+ * WebGPU/Queue.h:
+ * WebGPU/Queue.mm:
+ (WebGPU::Queue::writeTexture):
+ (wgpuQueueWriteTexture):
+ * WebGPU/RenderBundleEncoder.h:
+ * WebGPU/RenderBundleEncoder.mm:
+ (WebGPU::Device::createRenderBundleEncoder):
+ (WebGPU::RenderBundleEncoder::finish):
+ (wgpuRenderBundleEncoderFinish):
+ * WebGPU/RenderPassEncoder.h:
+ * WebGPU/RenderPassEncoder.mm:
+ (WebGPU::RenderPassEncoder::setBlendConstant):
+ (wgpuRenderPassEncoderSetBlendConstant):
+ * WebGPU/RenderPipeline.mm:
+ (WebGPU::Device::createRenderPipeline):
+ (WebGPU::Device::createRenderPipelineAsync):
+ * WebGPU/Sampler.mm:
+ (WebGPU::Device::createSampler):
+ * WebGPU/ShaderModule.h:
+ * WebGPU/ShaderModule.mm:
+ (WebGPU::findShaderModuleParameters):
+ (WebGPU::Device::createShaderModule):
+ (WebGPU::ShaderModule::getCompilationInfo):
+ (wgpuShaderModuleGetCompilationInfo):
+ (wgpuShaderModuleGetCompilationInfoWithBlock):
+ * WebGPU/SwapChain.mm:
+ (WebGPU::Device::createSwapChain):
+ * WebGPU/Texture.h:
+ * WebGPU/Texture.mm:
+ (WebGPU::Device::createTexture):
+ (WebGPU::Texture::createView):
+ (wgpuTextureCreateView):
+
2022-03-03 Michael Saboff <[email protected]>
Copy WebKit frameworks and XPC processes to Secondary Path
Modified: trunk/Source/WebGPU/WebGPU/Adapter.h (290876 => 290877)
--- trunk/Source/WebGPU/WebGPU/Adapter.h 2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/Adapter.h 2022-03-07 06:43:16 UTC (rev 290877)
@@ -46,10 +46,10 @@
~Adapter();
size_t enumerateFeatures(WGPUFeatureName* features);
- bool getLimits(WGPUSupportedLimits*);
- void getProperties(WGPUAdapterProperties*);
+ bool getLimits(WGPUSupportedLimits&);
+ void getProperties(WGPUAdapterProperties&);
bool hasFeature(WGPUFeatureName);
- void requestDevice(const WGPUDeviceDescriptor*, WTF::Function<void(WGPURequestDeviceStatus, RefPtr<Device>&&, const char*)>&& callback);
+ void requestDevice(const WGPUDeviceDescriptor&, WTF::Function<void(WGPURequestDeviceStatus, RefPtr<Device>&&, const char*)>&& callback);
private:
Adapter(id<MTLDevice>);
Modified: trunk/Source/WebGPU/WebGPU/Adapter.mm (290876 => 290877)
--- trunk/Source/WebGPU/WebGPU/Adapter.mm 2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/Adapter.mm 2022-03-07 06:43:16 UTC (rev 290877)
@@ -44,25 +44,25 @@
return 0;
}
-bool Adapter::getLimits(WGPUSupportedLimits* limits)
+bool Adapter::getLimits(WGPUSupportedLimits& limits)
{
- if (limits->nextInChain != nullptr)
+ if (limits.nextInChain != nullptr)
return false;
// FIXME: Implement this.
- limits->limits = { };
+ limits.limits = { };
return true;
}
-void Adapter::getProperties(WGPUAdapterProperties* properties)
+void Adapter::getProperties(WGPUAdapterProperties& properties)
{
// FIXME: What should the vendorID and deviceID be?
- properties->vendorID = 0;
- properties->deviceID = 0;
- properties->name = m_device.name.UTF8String;
- properties->driverDescription = "";
- properties->adapterType = m_device.hasUnifiedMemory ? WGPUAdapterType_IntegratedGPU : WGPUAdapterType_DiscreteGPU;
- properties->backendType = WGPUBackendType_Metal;
+ properties.vendorID = 0;
+ properties.deviceID = 0;
+ properties.name = m_device.name.UTF8String;
+ properties.driverDescription = "";
+ properties.adapterType = m_device.hasUnifiedMemory ? WGPUAdapterType_IntegratedGPU : WGPUAdapterType_DiscreteGPU;
+ properties.backendType = WGPUBackendType_Metal;
}
bool Adapter::hasFeature(WGPUFeatureName)
@@ -103,19 +103,19 @@
&& !requiredLimits.limits.maxComputeWorkgroupsPerDimension;
}
-void Adapter::requestDevice(const WGPUDeviceDescriptor* descriptor, WTF::Function<void(WGPURequestDeviceStatus, RefPtr<Device>&&, const char*)>&& callback)
+void Adapter::requestDevice(const WGPUDeviceDescriptor& descriptor, WTF::Function<void(WGPURequestDeviceStatus, RefPtr<Device>&&, const char*)>&& callback)
{
- if (descriptor->nextInChain) {
+ if (descriptor.nextInChain) {
callback(WGPURequestDeviceStatus_Error, nullptr, "Unknown descriptor type");
return;
}
- if (descriptor->requiredFeaturesCount) {
+ if (descriptor.requiredFeaturesCount) {
callback(WGPURequestDeviceStatus_Error, nullptr, "Device does not support requested features");
return;
}
- if (descriptor->requiredLimits && !deviceMeetsRequiredLimits(m_device, *descriptor->requiredLimits)) {
+ if (descriptor.requiredLimits && !deviceMeetsRequiredLimits(m_device, *descriptor.requiredLimits)) {
callback(WGPURequestDeviceStatus_Error, nullptr, "Device does not support requested limits");
return;
}
@@ -139,12 +139,12 @@
bool wgpuAdapterGetLimits(WGPUAdapter adapter, WGPUSupportedLimits* limits)
{
- return adapter->adapter->getLimits(limits);
+ return adapter->adapter->getLimits(*limits);
}
void wgpuAdapterGetProperties(WGPUAdapter adapter, WGPUAdapterProperties* properties)
{
- adapter->adapter->getProperties(properties);
+ adapter->adapter->getProperties(*properties);
}
bool wgpuAdapterHasFeature(WGPUAdapter adapter, WGPUFeatureName feature)
@@ -154,7 +154,7 @@
void wgpuAdapterRequestDevice(WGPUAdapter adapter, const WGPUDeviceDescriptor* descriptor, WGPURequestDeviceCallback callback, void* userdata)
{
- adapter->adapter->requestDevice(descriptor, [callback, userdata] (WGPURequestDeviceStatus status, RefPtr<WebGPU::Device>&& device, const char* message) {
+ adapter->adapter->requestDevice(*descriptor, [callback, userdata] (WGPURequestDeviceStatus status, RefPtr<WebGPU::Device>&& device, const char* message) {
callback(status, device ? new WGPUDeviceImpl { device.releaseNonNull() } : nullptr, message, userdata);
});
}
@@ -161,7 +161,7 @@
void wgpuAdapterRequestDeviceWithBlock(WGPUAdapter adapter, WGPUDeviceDescriptor const * descriptor, WGPURequestDeviceBlockCallback callback)
{
- adapter->adapter->requestDevice(descriptor, [callback] (WGPURequestDeviceStatus status, RefPtr<WebGPU::Device>&& device, const char* message) {
+ adapter->adapter->requestDevice(*descriptor, [callback] (WGPURequestDeviceStatus status, RefPtr<WebGPU::Device>&& device, const char* message) {
callback(status, device ? new WGPUDeviceImpl { device.releaseNonNull() } : nullptr, message);
});
}
Modified: trunk/Source/WebGPU/WebGPU/BindGroup.mm (290876 => 290877)
--- trunk/Source/WebGPU/WebGPU/BindGroup.mm 2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/BindGroup.mm 2022-03-07 06:43:16 UTC (rev 290877)
@@ -49,12 +49,12 @@
return entry.textureView;
}
-RefPtr<BindGroup> Device::createBindGroup(const WGPUBindGroupDescriptor* descriptor)
+RefPtr<BindGroup> Device::createBindGroup(const WGPUBindGroupDescriptor& descriptor)
{
- if (descriptor->nextInChain)
+ if (descriptor.nextInChain)
return nullptr;
- const BindGroupLayout& bindGroupLayout = descriptor->layout->bindGroupLayout;
+ const BindGroupLayout& bindGroupLayout = descriptor.layout->bindGroupLayout;
// FIXME: Don't allocate 3 new buffers for every bind group.
// In fact, don't even allocate a single new buffer for every bind group.
@@ -64,7 +64,7 @@
if (!vertexArgumentBuffer || !fragmentArgumentBuffer || !computeArgumentBuffer)
return nullptr;
- auto label = [NSString stringWithCString:descriptor->label encoding:NSUTF8StringEncoding];
+ auto label = [NSString stringWithCString:descriptor.label encoding:NSUTF8StringEncoding];
vertexArgumentBuffer.label = label;
fragmentArgumentBuffer.label = label;
computeArgumentBuffer.label = label;
@@ -76,8 +76,8 @@
[fragmentArgumentEncoder setArgumentBuffer:fragmentArgumentBuffer offset:0];
[computeArgumentEncoder setArgumentBuffer:computeArgumentBuffer offset:0];
- for (uint32_t i = 0; i < descriptor->entryCount; ++i) {
- const WGPUBindGroupEntry& entry = descriptor->entries[i];
+ for (uint32_t i = 0; i < descriptor.entryCount; ++i) {
+ const WGPUBindGroupEntry& entry = descriptor.entries[i];
if (entry.nextInChain)
return nullptr;
Modified: trunk/Source/WebGPU/WebGPU/BindGroupLayout.mm (290876 => 290877)
--- trunk/Source/WebGPU/WebGPU/BindGroupLayout.mm 2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/BindGroupLayout.mm 2022-03-07 06:43:16 UTC (rev 290877)
@@ -112,19 +112,19 @@
return descriptor;
}
-RefPtr<BindGroupLayout> Device::createBindGroupLayout(const WGPUBindGroupLayoutDescriptor* descriptor)
+RefPtr<BindGroupLayout> Device::createBindGroupLayout(const WGPUBindGroupLayoutDescriptor& descriptor)
{
- if (descriptor->nextInChain)
+ if (descriptor.nextInChain)
return nullptr;
- NSMutableArray<MTLArgumentDescriptor *> *vertexArguments = [NSMutableArray arrayWithCapacity:descriptor->entryCount];
- NSMutableArray<MTLArgumentDescriptor *> *fragmentArguments = [NSMutableArray arrayWithCapacity:descriptor->entryCount];
- NSMutableArray<MTLArgumentDescriptor *> *computeArguments = [NSMutableArray arrayWithCapacity:descriptor->entryCount];
+ NSMutableArray<MTLArgumentDescriptor *> *vertexArguments = [NSMutableArray arrayWithCapacity:descriptor.entryCount];
+ NSMutableArray<MTLArgumentDescriptor *> *fragmentArguments = [NSMutableArray arrayWithCapacity:descriptor.entryCount];
+ NSMutableArray<MTLArgumentDescriptor *> *computeArguments = [NSMutableArray arrayWithCapacity:descriptor.entryCount];
if (!vertexArguments || !fragmentArguments || !computeArguments)
return nullptr;
- for (uint32_t i = 0; i < descriptor->entryCount; ++i) {
- const WGPUBindGroupLayoutEntry& entry = descriptor->entries[i];
+ for (uint32_t i = 0; i < descriptor.entryCount; ++i) {
+ const WGPUBindGroupLayoutEntry& entry = descriptor.entries[i];
if (entry.nextInChain)
return nullptr;
@@ -205,7 +205,7 @@
if (!vertexArgumentEncoder || !fragmentArgumentEncoder || !computeArgumentEncoder)
return nullptr;
- auto label = [NSString stringWithCString:descriptor->label encoding:NSUTF8StringEncoding];
+ auto label = [NSString stringWithCString:descriptor.label encoding:NSUTF8StringEncoding];
vertexArgumentEncoder.label = label;
fragmentArgumentEncoder.label = label;
computeArgumentEncoder.label = label;
Modified: trunk/Source/WebGPU/WebGPU/Buffer.mm (290876 => 290877)
--- trunk/Source/WebGPU/WebGPU/Buffer.mm 2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/Buffer.mm 2022-03-07 06:43:16 UTC (rev 290877)
@@ -30,7 +30,7 @@
namespace WebGPU {
-RefPtr<Buffer> Device::createBuffer(const WGPUBufferDescriptor* descriptor)
+RefPtr<Buffer> Device::createBuffer(const WGPUBufferDescriptor& descriptor)
{
UNUSED_PARAM(descriptor);
return Buffer::create(nil);
Modified: trunk/Source/WebGPU/WebGPU/CommandEncoder.h (290876 => 290877)
--- trunk/Source/WebGPU/WebGPU/CommandEncoder.h 2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/CommandEncoder.h 2022-03-07 06:43:16 UTC (rev 290877)
@@ -48,14 +48,14 @@
~CommandEncoder();
- RefPtr<ComputePassEncoder> beginComputePass(const WGPUComputePassDescriptor*);
- RefPtr<RenderPassEncoder> beginRenderPass(const WGPURenderPassDescriptor*);
+ RefPtr<ComputePassEncoder> beginComputePass(const WGPUComputePassDescriptor&);
+ RefPtr<RenderPassEncoder> beginRenderPass(const WGPURenderPassDescriptor&);
void copyBufferToBuffer(const Buffer& source, uint64_t sourceOffset, const Buffer& destination, uint64_t destinationOffset, uint64_t size);
- void copyBufferToTexture(const WGPUImageCopyBuffer* source, const WGPUImageCopyTexture* destination, const WGPUExtent3D* copySize);
- void copyTextureToBuffer(const WGPUImageCopyTexture* source, const WGPUImageCopyBuffer* destination, const WGPUExtent3D* copySize);
- void copyTextureToTexture(const WGPUImageCopyTexture* source, const WGPUImageCopyTexture* destination, const WGPUExtent3D* copySize);
+ void copyBufferToTexture(const WGPUImageCopyBuffer& source, const WGPUImageCopyTexture& destination, const WGPUExtent3D& copySize);
+ void copyTextureToBuffer(const WGPUImageCopyTexture& source, const WGPUImageCopyBuffer& destination, const WGPUExtent3D& copySize);
+ void copyTextureToTexture(const WGPUImageCopyTexture& source, const WGPUImageCopyTexture& destination, const WGPUExtent3D& copySize);
void clearBuffer(const Buffer&, uint64_t offset, uint64_t size);
- RefPtr<CommandBuffer> finish(const WGPUCommandBufferDescriptor*);
+ RefPtr<CommandBuffer> finish(const WGPUCommandBufferDescriptor&);
void insertDebugMarker(const char* markerLabel);
void popDebugGroup();
void pushDebugGroup(const char* groupLabel);
Modified: trunk/Source/WebGPU/WebGPU/CommandEncoder.mm (290876 => 290877)
--- trunk/Source/WebGPU/WebGPU/CommandEncoder.mm 2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/CommandEncoder.mm 2022-03-07 06:43:16 UTC (rev 290877)
@@ -35,7 +35,7 @@
namespace WebGPU {
-RefPtr<CommandEncoder> Device::createCommandEncoder(const WGPUCommandEncoderDescriptor* descriptor)
+RefPtr<CommandEncoder> Device::createCommandEncoder(const WGPUCommandEncoderDescriptor& descriptor)
{
UNUSED_PARAM(descriptor);
return CommandEncoder::create(nil);
@@ -48,13 +48,13 @@
CommandEncoder::~CommandEncoder() = default;
-RefPtr<ComputePassEncoder> CommandEncoder::beginComputePass(const WGPUComputePassDescriptor* descriptor)
+RefPtr<ComputePassEncoder> CommandEncoder::beginComputePass(const WGPUComputePassDescriptor& descriptor)
{
UNUSED_PARAM(descriptor);
return ComputePassEncoder::create(nil);
}
-RefPtr<RenderPassEncoder> CommandEncoder::beginRenderPass(const WGPURenderPassDescriptor* descriptor)
+RefPtr<RenderPassEncoder> CommandEncoder::beginRenderPass(const WGPURenderPassDescriptor& descriptor)
{
UNUSED_PARAM(descriptor);
return RenderPassEncoder::create(nil);
@@ -69,7 +69,7 @@
UNUSED_PARAM(size);
}
-void CommandEncoder::copyBufferToTexture(const WGPUImageCopyBuffer* source, const WGPUImageCopyTexture* destination, const WGPUExtent3D* copySize)
+void CommandEncoder::copyBufferToTexture(const WGPUImageCopyBuffer& source, const WGPUImageCopyTexture& destination, const WGPUExtent3D& copySize)
{
UNUSED_PARAM(source);
UNUSED_PARAM(destination);
@@ -76,7 +76,7 @@
UNUSED_PARAM(copySize);
}
-void CommandEncoder::copyTextureToBuffer(const WGPUImageCopyTexture* source, const WGPUImageCopyBuffer* destination, const WGPUExtent3D* copySize)
+void CommandEncoder::copyTextureToBuffer(const WGPUImageCopyTexture& source, const WGPUImageCopyBuffer& destination, const WGPUExtent3D& copySize)
{
UNUSED_PARAM(source);
UNUSED_PARAM(destination);
@@ -83,7 +83,7 @@
UNUSED_PARAM(copySize);
}
-void CommandEncoder::copyTextureToTexture(const WGPUImageCopyTexture* source, const WGPUImageCopyTexture* destination, const WGPUExtent3D* copySize)
+void CommandEncoder::copyTextureToTexture(const WGPUImageCopyTexture& source, const WGPUImageCopyTexture& destination, const WGPUExtent3D& copySize)
{
UNUSED_PARAM(source);
UNUSED_PARAM(destination);
@@ -97,7 +97,7 @@
UNUSED_PARAM(size);
}
-RefPtr<CommandBuffer> CommandEncoder::finish(const WGPUCommandBufferDescriptor* descriptor)
+RefPtr<CommandBuffer> CommandEncoder::finish(const WGPUCommandBufferDescriptor& descriptor)
{
UNUSED_PARAM(descriptor);
return CommandBuffer::create(nil);
@@ -146,13 +146,13 @@
WGPUComputePassEncoder wgpuCommandEncoderBeginComputePass(WGPUCommandEncoder commandEncoder, const WGPUComputePassDescriptor* descriptor)
{
- auto result = commandEncoder->commandEncoder->beginComputePass(descriptor);
+ auto result = commandEncoder->commandEncoder->beginComputePass(*descriptor);
return result ? new WGPUComputePassEncoderImpl { result.releaseNonNull() } : nullptr;
}
WGPURenderPassEncoder wgpuCommandEncoderBeginRenderPass(WGPUCommandEncoder commandEncoder, const WGPURenderPassDescriptor* descriptor)
{
- auto result = commandEncoder->commandEncoder->beginRenderPass(descriptor);
+ auto result = commandEncoder->commandEncoder->beginRenderPass(*descriptor);
return result ? new WGPURenderPassEncoderImpl { result.releaseNonNull() } : nullptr;
}
@@ -163,17 +163,17 @@
void wgpuCommandEncoderCopyBufferToTexture(WGPUCommandEncoder commandEncoder, const WGPUImageCopyBuffer* source, const WGPUImageCopyTexture* destination, const WGPUExtent3D* copySize)
{
- commandEncoder->commandEncoder->copyBufferToTexture(source, destination, copySize);
+ commandEncoder->commandEncoder->copyBufferToTexture(*source, *destination, *copySize);
}
void wgpuCommandEncoderCopyTextureToBuffer(WGPUCommandEncoder commandEncoder, const WGPUImageCopyTexture* source, const WGPUImageCopyBuffer* destination, const WGPUExtent3D* copySize)
{
- commandEncoder->commandEncoder->copyTextureToBuffer(source, destination, copySize);
+ commandEncoder->commandEncoder->copyTextureToBuffer(*source, *destination, *copySize);
}
void wgpuCommandEncoderCopyTextureToTexture(WGPUCommandEncoder commandEncoder, const WGPUImageCopyTexture* source, const WGPUImageCopyTexture* destination, const WGPUExtent3D* copySize)
{
- commandEncoder->commandEncoder->copyTextureToTexture(source, destination, copySize);
+ commandEncoder->commandEncoder->copyTextureToTexture(*source, *destination, *copySize);
}
void wgpuCommandEncoderClearBuffer(WGPUCommandEncoder commandEncoder, WGPUBuffer buffer, uint64_t offset, uint64_t size)
@@ -183,7 +183,7 @@
WGPUCommandBuffer wgpuCommandEncoderFinish(WGPUCommandEncoder commandEncoder, const WGPUCommandBufferDescriptor* descriptor)
{
- auto result = commandEncoder->commandEncoder->finish(descriptor);
+ auto result = commandEncoder->commandEncoder->finish(*descriptor);
return result ? new WGPUCommandBufferImpl { result.releaseNonNull() } : nullptr;
}
Modified: trunk/Source/WebGPU/WebGPU/ComputePipeline.mm (290876 => 290877)
--- trunk/Source/WebGPU/WebGPU/ComputePipeline.mm 2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/ComputePipeline.mm 2022-03-07 06:43:16 UTC (rev 290877)
@@ -143,16 +143,16 @@
return computePipelineState;
}
-RefPtr<ComputePipeline> Device::createComputePipeline(const WGPUComputePipelineDescriptor* descriptor)
+RefPtr<ComputePipeline> Device::createComputePipeline(const WGPUComputePipelineDescriptor& descriptor)
{
- if (descriptor->nextInChain || descriptor->compute.nextInChain)
+ if (descriptor.nextInChain || descriptor.compute.nextInChain)
return nullptr;
- const ShaderModule& shaderModule = descriptor->compute.module->shaderModule;
- const PipelineLayout& pipelineLayout = descriptor->layout->pipelineLayout;
- auto label = [NSString stringWithCString:descriptor->label encoding:NSUTF8StringEncoding];
+ const ShaderModule& shaderModule = descriptor.compute.module->shaderModule;
+ const PipelineLayout& pipelineLayout = descriptor.layout->pipelineLayout;
+ auto label = [NSString stringWithCString:descriptor.label encoding:NSUTF8StringEncoding];
- auto libraryCreationResult = createLibrary(m_device, shaderModule, pipelineLayout, descriptor->compute.entryPoint, label);
+ auto libraryCreationResult = createLibrary(m_device, shaderModule, pipelineLayout, descriptor.compute.entryPoint, label);
if (!libraryCreationResult)
return nullptr;
@@ -163,7 +163,7 @@
return nullptr;
const auto& computeInformation = std::get<WGSL::Reflection::Compute>(entryPointInformation.typedEntryPoint);
- auto function = createFunction(library, entryPointInformation, descriptor->compute, label);
+ auto function = createFunction(library, entryPointInformation, descriptor.compute, label);
auto computePipelineState = createComputePipelineState(m_device, function, pipelineLayout, computeInformation, label);
@@ -170,7 +170,7 @@
return ComputePipeline::create(computePipelineState);
}
-void Device::createComputePipelineAsync(const WGPUComputePipelineDescriptor* descriptor, WTF::Function<void(WGPUCreatePipelineAsyncStatus, RefPtr<ComputePipeline>&&, const char* message)>&& callback)
+void Device::createComputePipelineAsync(const WGPUComputePipelineDescriptor& descriptor, WTF::Function<void(WGPUCreatePipelineAsyncStatus, RefPtr<ComputePipeline>&&, const char* message)>&& callback)
{
// FIXME: Implement this
UNUSED_PARAM(descriptor);
Modified: trunk/Source/WebGPU/WebGPU/Device.h (290876 => 290877)
--- trunk/Source/WebGPU/WebGPU/Device.h 2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/Device.h 2022-03-07 06:43:16 UTC (rev 290877)
@@ -56,24 +56,24 @@
~Device();
- RefPtr<BindGroup> createBindGroup(const WGPUBindGroupDescriptor*);
- RefPtr<BindGroupLayout> createBindGroupLayout(const WGPUBindGroupLayoutDescriptor*);
- RefPtr<Buffer> createBuffer(const WGPUBufferDescriptor*);
- RefPtr<CommandEncoder> createCommandEncoder(const WGPUCommandEncoderDescriptor*);
- RefPtr<ComputePipeline> createComputePipeline(const WGPUComputePipelineDescriptor*);
- void createComputePipelineAsync(const WGPUComputePipelineDescriptor*, WTF::Function<void(WGPUCreatePipelineAsyncStatus, RefPtr<ComputePipeline>&&, const char* message)>&& callback);
- RefPtr<PipelineLayout> createPipelineLayout(const WGPUPipelineLayoutDescriptor*);
- RefPtr<QuerySet> createQuerySet(const WGPUQuerySetDescriptor*);
- RefPtr<RenderBundleEncoder> createRenderBundleEncoder(const WGPURenderBundleEncoderDescriptor*);
- RefPtr<RenderPipeline> createRenderPipeline(const WGPURenderPipelineDescriptor*);
- void createRenderPipelineAsync(const WGPURenderPipelineDescriptor*, WTF::Function<void(WGPUCreatePipelineAsyncStatus, RefPtr<RenderPipeline>&&, const char* message)>&& callback);
- RefPtr<Sampler> createSampler(const WGPUSamplerDescriptor*);
- RefPtr<ShaderModule> createShaderModule(const WGPUShaderModuleDescriptor*);
- RefPtr<SwapChain> createSwapChain(const Surface&, const WGPUSwapChainDescriptor*);
- RefPtr<Texture> createTexture(const WGPUTextureDescriptor*);
+ RefPtr<BindGroup> createBindGroup(const WGPUBindGroupDescriptor&);
+ RefPtr<BindGroupLayout> createBindGroupLayout(const WGPUBindGroupLayoutDescriptor&);
+ RefPtr<Buffer> createBuffer(const WGPUBufferDescriptor&);
+ RefPtr<CommandEncoder> createCommandEncoder(const WGPUCommandEncoderDescriptor&);
+ RefPtr<ComputePipeline> createComputePipeline(const WGPUComputePipelineDescriptor&);
+ void createComputePipelineAsync(const WGPUComputePipelineDescriptor&, WTF::Function<void(WGPUCreatePipelineAsyncStatus, RefPtr<ComputePipeline>&&, const char* message)>&& callback);
+ RefPtr<PipelineLayout> createPipelineLayout(const WGPUPipelineLayoutDescriptor&);
+ RefPtr<QuerySet> createQuerySet(const WGPUQuerySetDescriptor&);
+ RefPtr<RenderBundleEncoder> createRenderBundleEncoder(const WGPURenderBundleEncoderDescriptor&);
+ RefPtr<RenderPipeline> createRenderPipeline(const WGPURenderPipelineDescriptor&);
+ void createRenderPipelineAsync(const WGPURenderPipelineDescriptor&, WTF::Function<void(WGPUCreatePipelineAsyncStatus, RefPtr<RenderPipeline>&&, const char* message)>&& callback);
+ RefPtr<Sampler> createSampler(const WGPUSamplerDescriptor&);
+ RefPtr<ShaderModule> createShaderModule(const WGPUShaderModuleDescriptor&);
+ RefPtr<SwapChain> createSwapChain(const Surface&, const WGPUSwapChainDescriptor&);
+ RefPtr<Texture> createTexture(const WGPUTextureDescriptor&);
void destroy();
size_t enumerateFeatures(WGPUFeatureName* features);
- bool getLimits(WGPUSupportedLimits*);
+ bool getLimits(WGPUSupportedLimits&);
RefPtr<Queue> getQueue();
bool hasFeature(WGPUFeatureName);
bool popErrorScope(WTF::Function<void(WGPUErrorType, const char*)>&& callback);
Modified: trunk/Source/WebGPU/WebGPU/Device.mm (290876 => 290877)
--- trunk/Source/WebGPU/WebGPU/Device.mm 2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/Device.mm 2022-03-07 06:43:16 UTC (rev 290877)
@@ -74,13 +74,13 @@
return 0;
}
-bool Device::getLimits(WGPUSupportedLimits* limits)
+bool Device::getLimits(WGPUSupportedLimits& limits)
{
- if (limits->nextInChain != nullptr)
+ if (limits.nextInChain != nullptr)
return false;
// FIXME: Implement this.
- limits->limits = { };
+ limits.limits = { };
return true;
}
@@ -134,37 +134,37 @@
WGPUBindGroup wgpuDeviceCreateBindGroup(WGPUDevice device, const WGPUBindGroupDescriptor* descriptor)
{
- auto result = device->device->createBindGroup(descriptor);
+ auto result = device->device->createBindGroup(*descriptor);
return result ? new WGPUBindGroupImpl { result.releaseNonNull() } : nullptr;
}
WGPUBindGroupLayout wgpuDeviceCreateBindGroupLayout(WGPUDevice device, const WGPUBindGroupLayoutDescriptor* descriptor)
{
- auto result = device->device->createBindGroupLayout(descriptor);
+ auto result = device->device->createBindGroupLayout(*descriptor);
return result ? new WGPUBindGroupLayoutImpl { result.releaseNonNull() } : nullptr;
}
WGPUBuffer wgpuDeviceCreateBuffer(WGPUDevice device, const WGPUBufferDescriptor* descriptor)
{
- auto result = device->device->createBuffer(descriptor);
+ auto result = device->device->createBuffer(*descriptor);
return result ? new WGPUBufferImpl { result.releaseNonNull() } : nullptr;
}
WGPUCommandEncoder wgpuDeviceCreateCommandEncoder(WGPUDevice device, const WGPUCommandEncoderDescriptor* descriptor)
{
- auto result = device->device->createCommandEncoder(descriptor);
+ auto result = device->device->createCommandEncoder(*descriptor);
return result ? new WGPUCommandEncoderImpl { result.releaseNonNull() } : nullptr;
}
WGPUComputePipeline wgpuDeviceCreateComputePipeline(WGPUDevice device, const WGPUComputePipelineDescriptor* descriptor)
{
- auto result = device->device->createComputePipeline(descriptor);
+ auto result = device->device->createComputePipeline(*descriptor);
return result ? new WGPUComputePipelineImpl { result.releaseNonNull() } : nullptr;
}
void wgpuDeviceCreateComputePipelineAsync(WGPUDevice device, const WGPUComputePipelineDescriptor* descriptor, WGPUCreateComputePipelineAsyncCallback callback, void* userdata)
{
- device->device->createComputePipelineAsync(descriptor, [callback, userdata] (WGPUCreatePipelineAsyncStatus status, RefPtr<WebGPU::ComputePipeline>&& pipeline, const char* message) {
+ device->device->createComputePipelineAsync(*descriptor, [callback, userdata] (WGPUCreatePipelineAsyncStatus status, RefPtr<WebGPU::ComputePipeline>&& pipeline, const char* message) {
callback(status, pipeline ? new WGPUComputePipelineImpl { pipeline.releaseNonNull() } : nullptr, message, userdata);
});
}
@@ -171,7 +171,7 @@
void wgpuDeviceCreateComputePipelineAsyncWithBlock(WGPUDevice device, WGPUComputePipelineDescriptor const * descriptor, WGPUCreateComputePipelineAsyncBlockCallback callback)
{
- device->device->createComputePipelineAsync(descriptor, [callback] (WGPUCreatePipelineAsyncStatus status, RefPtr<WebGPU::ComputePipeline>&& pipeline, const char* message) {
+ device->device->createComputePipelineAsync(*descriptor, [callback] (WGPUCreatePipelineAsyncStatus status, RefPtr<WebGPU::ComputePipeline>&& pipeline, const char* message) {
callback(status, pipeline ? new WGPUComputePipelineImpl { pipeline.releaseNonNull() } : nullptr, message);
});
}
@@ -178,31 +178,31 @@
WGPUPipelineLayout wgpuDeviceCreatePipelineLayout(WGPUDevice device, const WGPUPipelineLayoutDescriptor* descriptor)
{
- auto result = device->device->createPipelineLayout(descriptor);
+ auto result = device->device->createPipelineLayout(*descriptor);
return result ? new WGPUPipelineLayoutImpl { result.releaseNonNull() } : nullptr;
}
WGPUQuerySet wgpuDeviceCreateQuerySet(WGPUDevice device, const WGPUQuerySetDescriptor* descriptor)
{
- auto result = device->device->createQuerySet(descriptor);
+ auto result = device->device->createQuerySet(*descriptor);
return result ? new WGPUQuerySetImpl { result.releaseNonNull() } : nullptr;
}
WGPURenderBundleEncoder wgpuDeviceCreateRenderBundleEncoder(WGPUDevice device, const WGPURenderBundleEncoderDescriptor* descriptor)
{
- auto result = device->device->createRenderBundleEncoder(descriptor);
+ auto result = device->device->createRenderBundleEncoder(*descriptor);
return result ? new WGPURenderBundleEncoderImpl { result.releaseNonNull() } : nullptr;
}
WGPURenderPipeline wgpuDeviceCreateRenderPipeline(WGPUDevice device, const WGPURenderPipelineDescriptor* descriptor)
{
- auto result = device->device->createRenderPipeline(descriptor);
+ auto result = device->device->createRenderPipeline(*descriptor);
return result ? new WGPURenderPipelineImpl { result.releaseNonNull() } : nullptr;
}
void wgpuDeviceCreateRenderPipelineAsync(WGPUDevice device, const WGPURenderPipelineDescriptor* descriptor, WGPUCreateRenderPipelineAsyncCallback callback, void* userdata)
{
- device->device->createRenderPipelineAsync(descriptor, [callback, userdata] (WGPUCreatePipelineAsyncStatus status, RefPtr<WebGPU::RenderPipeline>&& pipeline, const char* message) {
+ device->device->createRenderPipelineAsync(*descriptor, [callback, userdata] (WGPUCreatePipelineAsyncStatus status, RefPtr<WebGPU::RenderPipeline>&& pipeline, const char* message) {
callback(status, pipeline ? new WGPURenderPipelineImpl { pipeline.releaseNonNull() } : nullptr, message, userdata);
});
}
@@ -209,7 +209,7 @@
void wgpuDeviceCreateRenderPipelineAsyncWithBlock(WGPUDevice device, WGPURenderPipelineDescriptor const * descriptor, WGPUCreateRenderPipelineAsyncBlockCallback callback)
{
- device->device->createRenderPipelineAsync(descriptor, [callback] (WGPUCreatePipelineAsyncStatus status, RefPtr<WebGPU::RenderPipeline>&& pipeline, const char* message) {
+ device->device->createRenderPipelineAsync(*descriptor, [callback] (WGPUCreatePipelineAsyncStatus status, RefPtr<WebGPU::RenderPipeline>&& pipeline, const char* message) {
callback(status, pipeline ? new WGPURenderPipelineImpl { pipeline.releaseNonNull() } : nullptr, message);
});
}
@@ -216,25 +216,25 @@
WGPUSampler wgpuDeviceCreateSampler(WGPUDevice device, const WGPUSamplerDescriptor* descriptor)
{
- auto result = device->device->createSampler(descriptor);
+ auto result = device->device->createSampler(*descriptor);
return result ? new WGPUSamplerImpl { result.releaseNonNull() } : nullptr;
}
WGPUShaderModule wgpuDeviceCreateShaderModule(WGPUDevice device, const WGPUShaderModuleDescriptor* descriptor)
{
- auto result = device->device->createShaderModule(descriptor);
+ auto result = device->device->createShaderModule(*descriptor);
return result ? new WGPUShaderModuleImpl { result.releaseNonNull() } : nullptr;
}
WGPUSwapChain wgpuDeviceCreateSwapChain(WGPUDevice device, WGPUSurface surface, const WGPUSwapChainDescriptor* descriptor)
{
- auto result = device->device->createSwapChain(surface->surface, descriptor);
+ auto result = device->device->createSwapChain(surface->surface, *descriptor);
return result ? new WGPUSwapChainImpl { result.releaseNonNull() } : nullptr;
}
WGPUTexture wgpuDeviceCreateTexture(WGPUDevice device, const WGPUTextureDescriptor* descriptor)
{
- auto result = device->device->createTexture(descriptor);
+ auto result = device->device->createTexture(*descriptor);
return result ? new WGPUTextureImpl { result.releaseNonNull() } : nullptr;
}
@@ -250,7 +250,7 @@
bool wgpuDeviceGetLimits(WGPUDevice device, WGPUSupportedLimits* limits)
{
- return device->device->getLimits(limits);
+ return device->device->getLimits(*limits);
}
WGPUQueue wgpuDeviceGetQueue(WGPUDevice device)
Modified: trunk/Source/WebGPU/WebGPU/Instance.h (290876 => 290877)
--- trunk/Source/WebGPU/WebGPU/Instance.h 2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/Instance.h 2022-03-07 06:43:16 UTC (rev 290877)
@@ -40,13 +40,13 @@
class Instance : public RefCounted<Instance> {
WTF_MAKE_FAST_ALLOCATED;
public:
- static RefPtr<Instance> create(const WGPUInstanceDescriptor*);
+ static RefPtr<Instance> create(const WGPUInstanceDescriptor&);
~Instance();
- RefPtr<Surface> createSurface(const WGPUSurfaceDescriptor*);
+ RefPtr<Surface> createSurface(const WGPUSurfaceDescriptor&);
void processEvents();
- void requestAdapter(const WGPURequestAdapterOptions*, WTF::Function<void(WGPURequestAdapterStatus, RefPtr<Adapter>&&, const char*)>&& callback);
+ void requestAdapter(const WGPURequestAdapterOptions&, WTF::Function<void(WGPURequestAdapterStatus, RefPtr<Adapter>&&, const char*)>&& callback);
NSRunLoop *runLoop() const { return m_runLoop; }
Modified: trunk/Source/WebGPU/WebGPU/Instance.mm (290876 => 290877)
--- trunk/Source/WebGPU/WebGPU/Instance.mm 2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/Instance.mm 2022-03-07 06:43:16 UTC (rev 290877)
@@ -35,9 +35,9 @@
static constexpr NSString *runLoopMode = @"kCFRunLoopWebGPUMode";
-RefPtr<Instance> Instance::create(const WGPUInstanceDescriptor* descriptor)
+RefPtr<Instance> Instance::create(const WGPUInstanceDescriptor& descriptor)
{
- if (descriptor->nextInChain)
+ if (descriptor.nextInChain)
return nullptr;
NSRunLoop *runLoop = NSRunLoop.currentRunLoop;
@@ -54,7 +54,7 @@
Instance::~Instance() = default;
-RefPtr<Surface> Instance::createSurface(const WGPUSurfaceDescriptor* descriptor)
+RefPtr<Surface> Instance::createSurface(const WGPUSurfaceDescriptor& descriptor)
{
// FIXME: Implement this.
UNUSED_PARAM(descriptor);
@@ -110,7 +110,7 @@
}
}
-void Instance::requestAdapter(const WGPURequestAdapterOptions* options, WTF::Function<void(WGPURequestAdapterStatus, RefPtr<Adapter>&&, const char*)>&& callback)
+void Instance::requestAdapter(const WGPURequestAdapterOptions& options, WTF::Function<void(WGPURequestAdapterStatus, RefPtr<Adapter>&&, const char*)>&& callback)
{
#if PLATFORM(MAC) || PLATFORM(MACCATALYST)
NSArray<id<MTLDevice>> *devices = MTLCopyAllDevices();
@@ -120,16 +120,16 @@
[devices addObject:device];
#endif
- // FIXME: Deal with options->compatibleSurface.
+ // FIXME: Deal with options.compatibleSurface.
- auto sortedDevices = WebGPU::sortedDevices(devices, options->powerPreference);
+ auto sortedDevices = WebGPU::sortedDevices(devices, options.powerPreference);
- if (options->nextInChain) {
+ if (options.nextInChain) {
callback(WGPURequestAdapterStatus_Error, nullptr, "Unknown descriptor type");
return;
}
- if (options->forceFallbackAdapter) {
+ if (options.forceFallbackAdapter) {
callback(WGPURequestAdapterStatus_Unavailable, nullptr, "No adapters present");
return;
}
@@ -161,7 +161,7 @@
WGPUInstance wgpuCreateInstance(const WGPUInstanceDescriptor* descriptor)
{
- auto result = WebGPU::Instance::create(descriptor);
+ auto result = WebGPU::Instance::create(*descriptor);
return result ? new WGPUInstanceImpl { result.releaseNonNull() } : nullptr;
}
@@ -416,7 +416,7 @@
WGPUSurface wgpuInstanceCreateSurface(WGPUInstance instance, const WGPUSurfaceDescriptor* descriptor)
{
- auto result = instance->instance->createSurface(descriptor);
+ auto result = instance->instance->createSurface(*descriptor);
return result ? new WGPUSurfaceImpl { result.releaseNonNull() } : nullptr;
}
@@ -427,7 +427,7 @@
void wgpuInstanceRequestAdapter(WGPUInstance instance, const WGPURequestAdapterOptions* options, WGPURequestAdapterCallback callback, void* userdata)
{
- instance->instance->requestAdapter(options, [callback, userdata] (WGPURequestAdapterStatus status, RefPtr<WebGPU::Adapter>&& adapter, const char* message) {
+ 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);
});
}
@@ -434,7 +434,7 @@
void wgpuInstanceRequestAdapterWithBlock(WGPUInstance instance, WGPURequestAdapterOptions const * options, WGPURequestAdapterBlockCallback callback)
{
- instance->instance->requestAdapter(options, [callback] (WGPURequestAdapterStatus status, RefPtr<WebGPU::Adapter>&& adapter, const char* message) {
+ instance->instance->requestAdapter(*options, [callback] (WGPURequestAdapterStatus status, RefPtr<WebGPU::Adapter>&& adapter, const char* message) {
callback(status, adapter ? new WGPUAdapterImpl { adapter.releaseNonNull() } : nullptr, message);
});
}
Modified: trunk/Source/WebGPU/WebGPU/PipelineLayout.mm (290876 => 290877)
--- trunk/Source/WebGPU/WebGPU/PipelineLayout.mm 2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/PipelineLayout.mm 2022-03-07 06:43:16 UTC (rev 290877)
@@ -31,15 +31,15 @@
namespace WebGPU {
-RefPtr<PipelineLayout> Device::createPipelineLayout(const WGPUPipelineLayoutDescriptor* descriptor)
+RefPtr<PipelineLayout> Device::createPipelineLayout(const WGPUPipelineLayoutDescriptor& descriptor)
{
- if (descriptor->nextInChain)
+ if (descriptor.nextInChain)
return nullptr;
Vector<Ref<BindGroupLayout>> bindGroupLayouts;
- bindGroupLayouts.reserveInitialCapacity(descriptor->bindGroupLayoutCount);
- for (uint32_t i = 0; i < descriptor->bindGroupLayoutCount; ++i) {
- const auto* bindGroupLayout = descriptor->bindGroupLayouts[i];
+ bindGroupLayouts.reserveInitialCapacity(descriptor.bindGroupLayoutCount);
+ for (uint32_t i = 0; i < descriptor.bindGroupLayoutCount; ++i) {
+ const auto* bindGroupLayout = descriptor.bindGroupLayouts[i];
bindGroupLayouts.uncheckedAppend(bindGroupLayout->bindGroupLayout);
}
return PipelineLayout::create(WTFMove(bindGroupLayouts));
Modified: trunk/Source/WebGPU/WebGPU/QuerySet.mm (290876 => 290877)
--- trunk/Source/WebGPU/WebGPU/QuerySet.mm 2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/QuerySet.mm 2022-03-07 06:43:16 UTC (rev 290877)
@@ -30,7 +30,7 @@
namespace WebGPU {
-RefPtr<QuerySet> Device::createQuerySet(const WGPUQuerySetDescriptor* descriptor)
+RefPtr<QuerySet> Device::createQuerySet(const WGPUQuerySetDescriptor& descriptor)
{
UNUSED_PARAM(descriptor);
return QuerySet::create(nil);
Modified: trunk/Source/WebGPU/WebGPU/Queue.h (290876 => 290877)
--- trunk/Source/WebGPU/WebGPU/Queue.h 2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/Queue.h 2022-03-07 06:43:16 UTC (rev 290877)
@@ -49,7 +49,7 @@
void onSubmittedWorkDone(uint64_t signalValue, WTF::Function<void(WGPUQueueWorkDoneStatus)>&& callback);
void submit(Vector<std::reference_wrapper<const CommandBuffer>>&& commands);
void writeBuffer(const Buffer&, uint64_t bufferOffset, const void* data, size_t);
- void writeTexture(const WGPUImageCopyTexture* destination, const void* data, size_t dataSize, const WGPUTextureDataLayout*, const WGPUExtent3D* writeSize);
+ void writeTexture(const WGPUImageCopyTexture& destination, const void* data, size_t dataSize, const WGPUTextureDataLayout&, const WGPUExtent3D& writeSize);
void setLabel(const char*);
private:
Modified: trunk/Source/WebGPU/WebGPU/Queue.mm (290876 => 290877)
--- trunk/Source/WebGPU/WebGPU/Queue.mm 2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/Queue.mm 2022-03-07 06:43:16 UTC (rev 290877)
@@ -57,7 +57,7 @@
UNUSED_PARAM(size);
}
-void Queue::writeTexture(const WGPUImageCopyTexture* destination, const void* data, size_t dataSize, const WGPUTextureDataLayout* dataLayout, const WGPUExtent3D* writeSize)
+void Queue::writeTexture(const WGPUImageCopyTexture& destination, const void* data, size_t dataSize, const WGPUTextureDataLayout& dataLayout, const WGPUExtent3D& writeSize)
{
UNUSED_PARAM(destination);
UNUSED_PARAM(data);
@@ -107,7 +107,7 @@
void wgpuQueueWriteTexture(WGPUQueue queue, const WGPUImageCopyTexture* destination, const void* data, size_t dataSize, const WGPUTextureDataLayout* dataLayout, const WGPUExtent3D* writeSize)
{
- queue->queue->writeTexture(destination, data, dataSize, dataLayout, writeSize);
+ queue->queue->writeTexture(*destination, data, dataSize, *dataLayout, *writeSize);
}
void wgpuQueueSetLabel(WGPUQueue queue, const char* label)
Modified: trunk/Source/WebGPU/WebGPU/RenderBundleEncoder.h (290876 => 290877)
--- trunk/Source/WebGPU/WebGPU/RenderBundleEncoder.h 2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/RenderBundleEncoder.h 2022-03-07 06:43:16 UTC (rev 290877)
@@ -51,7 +51,7 @@
void drawIndexed(uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t baseVertex, uint32_t firstInstance);
void drawIndexedIndirect(const Buffer& indirectBuffer, uint64_t indirectOffset);
void drawIndirect(const Buffer& indirectBuffer, uint64_t indirectOffset);
- RefPtr<RenderBundle> finish(const WGPURenderBundleDescriptor*);
+ RefPtr<RenderBundle> finish(const WGPURenderBundleDescriptor&);
void insertDebugMarker(const char* markerLabel);
void popDebugGroup();
void pushDebugGroup(const char* groupLabel);
Modified: trunk/Source/WebGPU/WebGPU/RenderBundleEncoder.mm (290876 => 290877)
--- trunk/Source/WebGPU/WebGPU/RenderBundleEncoder.mm 2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/RenderBundleEncoder.mm 2022-03-07 06:43:16 UTC (rev 290877)
@@ -34,7 +34,7 @@
namespace WebGPU {
-RefPtr<RenderBundleEncoder> Device::createRenderBundleEncoder(const WGPURenderBundleEncoderDescriptor* descriptor)
+RefPtr<RenderBundleEncoder> Device::createRenderBundleEncoder(const WGPURenderBundleEncoderDescriptor& descriptor)
{
UNUSED_PARAM(descriptor);
return RenderBundleEncoder::create(nil);
@@ -76,7 +76,7 @@
UNUSED_PARAM(indirectOffset);
}
-RefPtr<RenderBundle> RenderBundleEncoder::finish(const WGPURenderBundleDescriptor* descriptor)
+RefPtr<RenderBundle> RenderBundleEncoder::finish(const WGPURenderBundleDescriptor& descriptor)
{
UNUSED_PARAM(descriptor);
return RenderBundle::create(nil);
@@ -160,7 +160,7 @@
WGPURenderBundle wgpuRenderBundleEncoderFinish(WGPURenderBundleEncoder renderBundleEncoder, const WGPURenderBundleDescriptor* descriptor)
{
- auto result = renderBundleEncoder->renderBundleEncoder->finish(descriptor);
+ auto result = renderBundleEncoder->renderBundleEncoder->finish(*descriptor);
return result ? new WGPURenderBundleImpl { result.releaseNonNull() } : nullptr;
}
Modified: trunk/Source/WebGPU/WebGPU/RenderPassEncoder.h (290876 => 290877)
--- trunk/Source/WebGPU/WebGPU/RenderPassEncoder.h 2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/RenderPassEncoder.h 2022-03-07 06:43:16 UTC (rev 290877)
@@ -63,7 +63,7 @@
void popDebugGroup();
void pushDebugGroup(const char* groupLabel);
void setBindGroup(uint32_t groupIndex, const BindGroup&, uint32_t dynamicOffsetCount, const uint32_t* dynamicOffsets);
- void setBlendConstant(const WGPUColor*);
+ void setBlendConstant(const WGPUColor&);
void setIndexBuffer(const Buffer&, WGPUIndexFormat, uint64_t offset, uint64_t size);
void setPipeline(const RenderPipeline&);
void setScissorRect(uint32_t x, uint32_t y, uint32_t width, uint32_t height);
Modified: trunk/Source/WebGPU/WebGPU/RenderPassEncoder.mm (290876 => 290877)
--- trunk/Source/WebGPU/WebGPU/RenderPassEncoder.mm 2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/RenderPassEncoder.mm 2022-03-07 06:43:16 UTC (rev 290877)
@@ -124,7 +124,7 @@
UNUSED_PARAM(dynamicOffsets);
}
-void RenderPassEncoder::setBlendConstant(const WGPUColor* color)
+void RenderPassEncoder::setBlendConstant(const WGPUColor& color)
{
UNUSED_PARAM(color);
}
@@ -260,7 +260,7 @@
void wgpuRenderPassEncoderSetBlendConstant(WGPURenderPassEncoder renderPassEncoder, const WGPUColor* color)
{
- renderPassEncoder->renderPassEncoder->setBlendConstant(color);
+ renderPassEncoder->renderPassEncoder->setBlendConstant(*color);
}
void wgpuRenderPassEncoderSetIndexBuffer(WGPURenderPassEncoder renderPassEncoder, WGPUBuffer buffer, WGPUIndexFormat format, uint64_t offset, uint64_t size)
Modified: trunk/Source/WebGPU/WebGPU/RenderPipeline.mm (290876 => 290877)
--- trunk/Source/WebGPU/WebGPU/RenderPipeline.mm 2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/RenderPipeline.mm 2022-03-07 06:43:16 UTC (rev 290877)
@@ -31,13 +31,13 @@
namespace WebGPU {
-RefPtr<RenderPipeline> Device::createRenderPipeline(const WGPURenderPipelineDescriptor* descriptor)
+RefPtr<RenderPipeline> Device::createRenderPipeline(const WGPURenderPipelineDescriptor& descriptor)
{
UNUSED_PARAM(descriptor);
return RenderPipeline::create(nil);
}
-void Device::createRenderPipelineAsync(const WGPURenderPipelineDescriptor* descriptor, WTF::Function<void(WGPUCreatePipelineAsyncStatus, RefPtr<RenderPipeline>&&, const char* message)>&& callback)
+void Device::createRenderPipelineAsync(const WGPURenderPipelineDescriptor& descriptor, WTF::Function<void(WGPUCreatePipelineAsyncStatus, RefPtr<RenderPipeline>&&, const char* message)>&& callback)
{
UNUSED_PARAM(descriptor);
UNUSED_PARAM(callback);
Modified: trunk/Source/WebGPU/WebGPU/Sampler.mm (290876 => 290877)
--- trunk/Source/WebGPU/WebGPU/Sampler.mm 2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/Sampler.mm 2022-03-07 06:43:16 UTC (rev 290877)
@@ -30,7 +30,7 @@
namespace WebGPU {
-RefPtr<Sampler> Device::createSampler(const WGPUSamplerDescriptor* descriptor)
+RefPtr<Sampler> Device::createSampler(const WGPUSamplerDescriptor& descriptor)
{
UNUSED_PARAM(descriptor);
return Sampler::create(nil);
Modified: trunk/Source/WebGPU/WebGPU/ShaderModule.h (290876 => 290877)
--- trunk/Source/WebGPU/WebGPU/ShaderModule.h 2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/ShaderModule.h 2022-03-07 06:43:16 UTC (rev 290877)
@@ -46,7 +46,7 @@
~ShaderModule();
- void getCompilationInfo(WTF::Function<void(WGPUCompilationInfoRequestStatus, const WGPUCompilationInfo*)>&& callback);
+ void getCompilationInfo(WTF::Function<void(WGPUCompilationInfoRequestStatus, const WGPUCompilationInfo&)>&& callback);
void setLabel(const char*);
static WGSL::PipelineLayout convertPipelineLayout(const PipelineLayout&);
Modified: trunk/Source/WebGPU/WebGPU/ShaderModule.mm (290876 => 290877)
--- trunk/Source/WebGPU/WebGPU/ShaderModule.mm 2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/ShaderModule.mm 2022-03-07 06:43:16 UTC (rev 290877)
@@ -36,12 +36,12 @@
const WGPUShaderModuleDescriptorHints* hints;
};
-static std::optional<ShaderModuleParameters> findShaderModuleParameters(const WGPUShaderModuleDescriptor* descriptor)
+static std::optional<ShaderModuleParameters> findShaderModuleParameters(const WGPUShaderModuleDescriptor& descriptor)
{
const WGPUShaderModuleWGSLDescriptor* wgsl = nullptr;
const WGPUShaderModuleDescriptorHints* hints = nullptr;
- for (const WGPUChainedStruct* ptr = descriptor->nextInChain; ptr; ptr = ptr->next) {
+ for (const WGPUChainedStruct* ptr = descriptor.nextInChain; ptr; ptr = ptr->next) {
auto type = ptr->sType;
switch (static_cast<int>(type)) {
@@ -98,9 +98,9 @@
return ShaderModule::create(WTFMove(checkResult), WTFMove(hints), WTFMove(prepareResult.entryPoints), library);
}
-RefPtr<ShaderModule> Device::createShaderModule(const WGPUShaderModuleDescriptor* descriptor)
+RefPtr<ShaderModule> Device::createShaderModule(const WGPUShaderModuleDescriptor& descriptor)
{
- if (!descriptor->nextInChain)
+ if (!descriptor.nextInChain)
return nullptr;
auto shaderModuleParameters = findShaderModuleParameters(descriptor);
@@ -110,7 +110,7 @@
auto checkResult = WGSL::staticCheck(String(shaderModuleParameters->wgsl.code), std::nullopt);
if (std::holds_alternative<WGSL::SuccessfulCheck>(checkResult) && shaderModuleParameters->hints && shaderModuleParameters->hints->hintsCount) {
- if (auto result = earlyCompileShaderModule(m_device, WTFMove(checkResult), *shaderModuleParameters->hints, [NSString stringWithCString:descriptor->label encoding:NSUTF8StringEncoding]))
+ if (auto result = earlyCompileShaderModule(m_device, WTFMove(checkResult), *shaderModuleParameters->hints, [NSString stringWithCString:descriptor.label encoding:NSUTF8StringEncoding]))
return result;
}
@@ -182,7 +182,7 @@
return { WTFMove(flattenedCompilationMessages), WTFMove(flattenedMessages) };
}
-void ShaderModule::getCompilationInfo(WTF::Function<void(WGPUCompilationInfoRequestStatus, const WGPUCompilationInfo*)>&& callback)
+void ShaderModule::getCompilationInfo(WTF::Function<void(WGPUCompilationInfoRequestStatus, const WGPUCompilationInfo&)>&& callback)
{
WTF::switchOn(m_checkResult, [&] (const WGSL::SuccessfulCheck& successfulCheck) {
auto compilationMessageData(convertMessages({ successfulCheck.warnings, WGPUCompilationMessageType_Warning }));
@@ -191,7 +191,7 @@
static_cast<uint32_t>(compilationMessageData.compilationMessages.size()),
compilationMessageData.compilationMessages.data(),
};
- callback(WGPUCompilationInfoRequestStatus_Success, &compilationInfo);
+ callback(WGPUCompilationInfoRequestStatus_Success, compilationInfo);
}, [&] (const WGSL::FailedCheck& failedCheck) {
auto compilationMessageData(convertMessages(
{ failedCheck.errors, WGPUCompilationMessageType_Error },
@@ -201,7 +201,7 @@
static_cast<uint32_t>(compilationMessageData.compilationMessages.size()),
compilationMessageData.compilationMessages.data(),
};
- callback(WGPUCompilationInfoRequestStatus_Error, &compilationInfo);
+ callback(WGPUCompilationInfoRequestStatus_Error, compilationInfo);
});
}
@@ -252,15 +252,15 @@
void wgpuShaderModuleGetCompilationInfo(WGPUShaderModule shaderModule, WGPUCompilationInfoCallback callback, void * userdata)
{
- shaderModule->shaderModule->getCompilationInfo([callback, userdata] (WGPUCompilationInfoRequestStatus status, const WGPUCompilationInfo* compilationInfo) {
- callback(status, compilationInfo, userdata);
+ shaderModule->shaderModule->getCompilationInfo([callback, userdata] (WGPUCompilationInfoRequestStatus status, const WGPUCompilationInfo& compilationInfo) {
+ callback(status, &compilationInfo, userdata);
});
}
void wgpuShaderModuleGetCompilationInfoWithBlock(WGPUShaderModule shaderModule, WGPUCompilationInfoBlockCallback callback)
{
- shaderModule->shaderModule->getCompilationInfo([callback] (WGPUCompilationInfoRequestStatus status, const WGPUCompilationInfo* compilationInfo) {
- callback(status, compilationInfo);
+ shaderModule->shaderModule->getCompilationInfo([callback] (WGPUCompilationInfoRequestStatus status, const WGPUCompilationInfo& compilationInfo) {
+ callback(status, &compilationInfo);
});
}
Modified: trunk/Source/WebGPU/WebGPU/SwapChain.mm (290876 => 290877)
--- trunk/Source/WebGPU/WebGPU/SwapChain.mm 2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/SwapChain.mm 2022-03-07 06:43:16 UTC (rev 290877)
@@ -31,7 +31,7 @@
namespace WebGPU {
-RefPtr<SwapChain> Device::createSwapChain(const Surface& surface, const WGPUSwapChainDescriptor* descriptor)
+RefPtr<SwapChain> Device::createSwapChain(const Surface& surface, const WGPUSwapChainDescriptor& descriptor)
{
UNUSED_PARAM(surface);
UNUSED_PARAM(descriptor);
Modified: trunk/Source/WebGPU/WebGPU/Texture.h (290876 => 290877)
--- trunk/Source/WebGPU/WebGPU/Texture.h 2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/Texture.h 2022-03-07 06:43:16 UTC (rev 290877)
@@ -44,7 +44,7 @@
~Texture();
- RefPtr<TextureView> createView(const WGPUTextureViewDescriptor*);
+ RefPtr<TextureView> createView(const WGPUTextureViewDescriptor&);
void destroy();
void setLabel(const char*);
Modified: trunk/Source/WebGPU/WebGPU/Texture.mm (290876 => 290877)
--- trunk/Source/WebGPU/WebGPU/Texture.mm 2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/Texture.mm 2022-03-07 06:43:16 UTC (rev 290877)
@@ -31,7 +31,7 @@
namespace WebGPU {
-RefPtr<Texture> Device::createTexture(const WGPUTextureDescriptor* descriptor)
+RefPtr<Texture> Device::createTexture(const WGPUTextureDescriptor& descriptor)
{
UNUSED_PARAM(descriptor);
return Texture::create(nil);
@@ -44,7 +44,7 @@
Texture::~Texture() = default;
-RefPtr<TextureView> Texture::createView(const WGPUTextureViewDescriptor* descriptor)
+RefPtr<TextureView> Texture::createView(const WGPUTextureViewDescriptor& descriptor)
{
UNUSED_PARAM(descriptor);
return TextureView::create(nil);
@@ -68,7 +68,7 @@
WGPUTextureView wgpuTextureCreateView(WGPUTexture texture, const WGPUTextureViewDescriptor* descriptor)
{
- auto result = texture->texture->createView(descriptor);
+ auto result = texture->texture->createView(*descriptor);
return result ? new WGPUTextureViewImpl { result.releaseNonNull() } : nullptr;
}