Unreviewed, rolling out r243438.
authortsavell@apple.com <tsavell@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 25 Mar 2019 21:10:38 +0000 (21:10 +0000)
committertsavell@apple.com <tsavell@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 25 Mar 2019 21:10:38 +0000 (21:10 +0000)
243319 Caused Mac WK2 testers to crash and become
unresponsive.

Reverted changeset:

"Update WebGPU class names based on sketch.idl"
https://bugs.webkit.org/show_bug.cgi?id=194260
https://trac.webkit.org/changeset/243438

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@243456 268f45cc-cd09-0410-ab3c-d52691b4dbfc

29 files changed:
LayoutTests/ChangeLog
LayoutTests/webgpu/adapter-options.html
LayoutTests/webgpu/bind-groups.html
LayoutTests/webgpu/map-read-buffers.html
LayoutTests/webgpu/map-write-buffers.html
LayoutTests/webgpu/pipeline-layouts.html
LayoutTests/webgpu/queue-creation.html
LayoutTests/webgpu/render-command-encoding.html
LayoutTests/webgpu/render-pipelines.html
LayoutTests/webgpu/textures-textureviews.html
LayoutTests/webgpu/webgpu-enabled.html
Source/WebCore/ChangeLog
Source/WebCore/Modules/webgpu/WebGPU.idl
Source/WebCore/Modules/webgpu/WebGPUAdapter.idl
Source/WebCore/Modules/webgpu/WebGPUBindGroup.idl
Source/WebCore/Modules/webgpu/WebGPUBindGroupLayout.idl
Source/WebCore/Modules/webgpu/WebGPUBuffer.idl
Source/WebCore/Modules/webgpu/WebGPUDevice.idl
Source/WebCore/Modules/webgpu/WebGPUInputStepMode.h [new file with mode: 0644]
Source/WebCore/Modules/webgpu/WebGPUPipelineLayout.idl
Source/WebCore/Modules/webgpu/WebGPUProgrammablePassEncoder.idl
Source/WebCore/Modules/webgpu/WebGPUQueue.idl
Source/WebCore/Modules/webgpu/WebGPURenderPassEncoder.idl
Source/WebCore/Modules/webgpu/WebGPURenderPipeline.idl
Source/WebCore/Modules/webgpu/WebGPUSampler.idl
Source/WebCore/Modules/webgpu/WebGPUTexture.idl
Source/WebCore/Modules/webgpu/WebGPUTextureView.idl
Source/WebCore/WebCore.xcodeproj/project.pbxproj
Source/WebCore/bindings/js/WebCoreBuiltinNames.h

index e88e784..fb8c9bd 100644 (file)
@@ -1,3 +1,16 @@
+2019-03-25  Truitt Savell  <tsavell@apple.com>
+
+        Unreviewed, rolling out r243438.
+
+        243319 Caused Mac WK2 testers to crash and become
+        unresponsive.
+
+        Reverted changeset:
+
+        "Update WebGPU class names based on sketch.idl"
+        https://bugs.webkit.org/show_bug.cgi?id=194260
+        https://trac.webkit.org/changeset/243438
+
 2019-03-25  Joseph Pecoraro  <pecoraro@apple.com>
 
         Web Inspector: Page Weight indicator clears on pages with zero length resources (macrumors.com)
index d91e7ae..986cce1 100644 (file)
@@ -9,21 +9,21 @@ promise_test(async () => {
     const defaultAdapter = await gpu.requestAdapter();
     const device = await defaultAdapter.requestDevice();
 
-    assert_true(device instanceof GPUDevice, "Default device successfully created.");
+    assert_true(device instanceof WebGPUDevice, "Default device successfully created.");
 }, "Create the default device.");
 
 promise_test(async () => {
     const lowPowerAdapter = await gpu.requestAdapter({ powerPreference: "low-power" });
     const device = await lowPowerAdapter.requestDevice();
 
-    assert_true(device instanceof GPUDevice, "Device successfully created using low-power option.");
+    assert_true(device instanceof WebGPUDevice, "Device successfully created using low-power option.");
 }, "Create a device with a low-power option.");
 
 promise_test(async () => {
     const highPerfAdapter = await gpu.requestAdapter({ powerPreference: "high-performance" });
     const device = await highPerfAdapter.requestDevice();
 
-    assert_true(device instanceof GPUDevice, "Device successfully created using high-performance option.");
+    assert_true(device instanceof WebGPUDevice, "Device successfully created using high-performance option.");
 }, "Create a device with a high-performance option.");
 </script>
 </body>
\ No newline at end of file
index 18fab1a..f8f90dd 100644 (file)
@@ -24,7 +24,7 @@ promise_test(async () => {
     const bindGroupBinding = { binding: 1, resource: bufferBinding };
 
     const bindGroup = device.createBindGroup({ layout: bindGroupLayout, bindings: [bindGroupBinding]});
-    assert_true(bindGroup instanceof GPUBindGroup, "WebGPUBindGroup successfully created.")
+    assert_true(bindGroup instanceof WebGPUBindGroup, "WebGPUBindGroup successfully created.")
 }, "Create a basic WebGPUBindGroup via WebGPUDevice.")
 </script>
 </body>
\ No newline at end of file
index 1605ca8..3b00cf2 100644 (file)
@@ -12,7 +12,7 @@ async function runTests() {
     // Basic mapReadAsync functionality
     promise_test(async () => {
         const buffer = device.createBuffer({ size: 16, usage: GPUBufferUsage.TRANSFER_DST | GPUBufferUsage.MAP_READ });
-        assert_true(buffer instanceof GPUBuffer, "createBuffer returned a WebGPUBuffer");
+        assert_true(buffer instanceof WebGPUBuffer, "createBuffer returned a WebGPUBuffer");
 
         let array = new Float32Array([1, 2, 3, 4]);
         buffer.setSubData(0, array.buffer);
index 33fac07..0a9fff2 100644 (file)
@@ -12,7 +12,7 @@ async function runTests() {
     // Basic mapWriteAsync functionality
     promise_test(async () => {
         const buffer = device.createBuffer({ size: 16, usage: GPUBufferUsage.MAP_WRITE });
-        assert_true(buffer instanceof GPUBuffer, "createBuffer returned a WebGPUBuffer");
+        assert_true(buffer instanceof WebGPUBuffer, "createBuffer returned a WebGPUBuffer");
 
         let arrayBuffer = await buffer.mapWriteAsync();
 
index d09d95f..a23d232 100644 (file)
@@ -24,10 +24,10 @@ test(() => {
 promise_test(async () => {
     const device = await getBasicDevice();
     const bindGroupLayout = device.createBindGroupLayout({ bindings: [createBindGroupLayoutBinding()] });
-    assert_true(bindGroupLayout instanceof GPUBindGroupLayout, "createBindGroupLayout returned a WebGPUBindGroupLayout");
+    assert_true(bindGroupLayout instanceof WebGPUBindGroupLayout, "createBindGroupLayout returned a WebGPUBindGroupLayout");
 
     const pipelineLayout = device.createPipelineLayout({ bindGroupLayouts: [bindGroupLayout] });
-    assert_true(pipelineLayout instanceof GPUPipelineLayout, "createPipelineLayout returned a WebGPUPipelineLayout");
+    assert_true(pipelineLayout instanceof WebGPUPipelineLayout, "createPipelineLayout returned a WebGPUPipelineLayout");
 }, "Create a basic WebGPUPipelineLayout wtih a WebGPUDevice.");
 </script>
 </body>
\ No newline at end of file
index 7e8032c..db43da5 100644 (file)
@@ -15,13 +15,13 @@ promise_test(async t => {
     assert_true(context instanceof GPUCanvasContext, "getContext returned a GPUCanvasContext.");
 
     const adapter = await window.gpu.requestAdapter({});
-    assert_true(adapter instanceof GPUAdapter, "requestAdapter returned a WebGPUAdapter.");
+    assert_true(adapter instanceof WebGPUAdapter, "requestAdapter returned a WebGPUAdapter.");
 
     const device = await adapter.requestDevice();
-    assert_true(device instanceof GPUDevice, "requestDevice returned a WebGPUDevice.");
+    assert_true(device instanceof WebGPUDevice, "requestDevice returned a WebGPUDevice.");
 
     const queue = device.getQueue();
-    assert_true(queue instanceof GPUQueue, "getQueue returned a WebGPUQueue.");
+    assert_true(queue instanceof WebGPUQueue, "getQueue returned a WebGPUQueue.");
 
     queue.label = "Example label";
     assert_equals(queue.label, "Example label", "queue.label was set.");
index 93e6967..c03a480 100644 (file)
@@ -38,7 +38,7 @@ promise_test(async () => {
     assert_true(commandEncoder instanceof GPUCommandEncoder, "createCommandEncoder returned a GPUCommandEncoder");
 
     const encoder = beginBasicRenderPass(swapChain, commandEncoder);
-    assert_true(encoder instanceof GPURenderPassEncoder, "beginRenderPass() returned a WebGPURenderPassEncoder");
+    assert_true(encoder instanceof WebGPURenderPassEncoder, "beginRenderPass() returned a WebGPURenderPassEncoder");
 
     encoder.setPipeline(pipeline);
     encoder.endPass();
index b8eae1c..94e36a5 100644 (file)
@@ -48,7 +48,7 @@ promise_test(async () => {
     const pipelineLayout = device.createPipelineLayout({ bindGroupLayouts: [bindGroupLayout] });
 
     const pipeline = createBasicPipeline(shaderModule, device, pipelineLayout);
-    assert_true(pipeline instanceof GPURenderPipeline, "Successfully created WebGPURenderPipeline");
+    assert_true(pipeline instanceof WebGPURenderPipeline, "Successfully created WebGPURenderPipeline");
 }, "Create basic WebGPURenderPipeline");
 </script>
 </html>
\ No newline at end of file
index cc70da6..b3f665b 100644 (file)
@@ -31,15 +31,15 @@ promise_test(async () => {
     swapChain = createBasicSwapChain(canvas, device);
 
     const texture = swapChain.getCurrentTexture();
-    assert_true(texture instanceof GPUTexture, "Successfully acquired next texture.");
+    assert_true(texture instanceof WebGPUTexture, "Successfully acquired next texture.");
 
     const textureView = texture.createDefaultView();
-    assert_true(textureView instanceof GPUTextureView, "Successfully created texture view from next texture.");
+    assert_true(textureView instanceof WebGPUTextureView, "Successfully created texture view from next texture.");
 }, "Create texture view from swap chain.");
 
 promise_test(async () => {
     const depthTexture = device.createTexture(texDescriptor);
-    assert_true(depthTexture instanceof GPUTexture, "Successfully created depth texture.");
+    assert_true(depthTexture instanceof WebGPUTexture, "Successfully created depth texture.");
 }, "Create basic depth texture from device.");
 
 promise_test(async () => {
@@ -48,7 +48,7 @@ promise_test(async () => {
     texDescriptor.usage = GPUTextureUsage.SAMPLED | GPUTextureUsage.TRANSFER_SRC
 
     const multisampledTexture = device.createTexture(texDescriptor);
-    assert_true(multisampledTexture instanceof GPUTexture, "Successfully created multisampled texture.");
+    assert_true(multisampledTexture instanceof WebGPUTexture, "Successfully created multisampled texture.");
 }, "Create basic 4x multisampled texture.");
 
 promise_test(async () => {
@@ -57,7 +57,7 @@ promise_test(async () => {
     texDescriptor.dimension = "3d";
 
     const texture3d = device.createTexture(texDescriptor);
-    assert_true(texture3d instanceof GPUTexture, "Successfully created basic 3D texture.");
+    assert_true(texture3d instanceof WebGPUTexture, "Successfully created basic 3D texture.");
 }, "Create basic 3D texture from device.");
 
 // FIXME: Add tests for 1D textures, textureArrays, and WebGPUTextureViews.
index 456c32f..76d6c38 100644 (file)
@@ -13,10 +13,10 @@ promise_test(async () => {
     assert_not_equals(window.gpu, undefined, "window.gpu is defined.");
 
     const adapter = await window.gpu.requestAdapter();
-    assert_true(adapter instanceof GPUAdapter, "Created default GPUAdapter.");
+    assert_true(adapter instanceof WebGPUAdapter, "Created default GPUAdapter.");
     
     const device = await adapter.requestDevice();
-    assert_true(device instanceof GPUDevice, "Created GPUDevice.");
+    assert_true(device instanceof WebGPUDevice, "Created GPUDevice.");
 }, "Web GPU is enabled.");
 </script>
 </html>
\ No newline at end of file
index 1a7f090..57520f5 100644 (file)
@@ -1,3 +1,16 @@
+2019-03-25  Truitt Savell  <tsavell@apple.com>
+
+        Unreviewed, rolling out r243438.
+
+        243319 Caused Mac WK2 testers to crash and become
+        unresponsive.
+
+        Reverted changeset:
+
+        "Update WebGPU class names based on sketch.idl"
+        https://bugs.webkit.org/show_bug.cgi?id=194260
+        https://trac.webkit.org/changeset/243438
+
 2019-03-25  Eric Carlson  <eric.carlson@apple.com>
 
         Delete MetadataPreloadingNotPermitted, it is unused
index 92a96eb..1cc9e4f 100644 (file)
@@ -27,8 +27,7 @@
 [
     Conditional=WEBGPU,
     EnabledAtRuntime=WebGPU,
-    ImplementationLacksVTable,
-    InterfaceName=GPU
+    ImplementationLacksVTable
 ] interface WebGPU {
     Promise<WebGPUAdapter> requestAdapter(optional GPURequestAdapterOptions options);
 };
index 0b439d6..722d54e 100644 (file)
@@ -27,8 +27,7 @@
 [
     Conditional=WEBGPU,
     EnabledAtRuntime=WebGPU,
-    ImplementationLacksVTable,
-    InterfaceName=GPUAdapter
+    ImplementationLacksVTable
 ] interface WebGPUAdapter {
     // readonly attribute DOMString name;
     // readonly attribute WebGPUExtensions extensions;
index 15205c7..290b0e1 100644 (file)
@@ -27,7 +27,6 @@
 [
     Conditional=WEBGPU,
     EnabledAtRuntime=WebGPU,
-    ImplementationLacksVTable,
-    InterfaceName=GPUBindGroup
+    ImplementationLacksVTable
 ] interface WebGPUBindGroup {
 };
index 2e41975..6742f98 100644 (file)
@@ -27,7 +27,6 @@
 [
     Conditional=WEBGPU,
     EnabledAtRuntime=WebGPU,
-    ImplementationLacksVTable,
-    InterfaceName=GPUBindGroupLayout
+    ImplementationLacksVTable
 ] interface WebGPUBindGroupLayout {
 };
index a870547..61da09e 100644 (file)
@@ -29,8 +29,7 @@ typedef unsigned long long u64;
 [
     Conditional=WEBGPU,
     EnabledAtRuntime=WebGPU,
-    ImplementationLacksVTable,
-    InterfaceName=GPUBuffer
+    ImplementationLacksVTable
 ] interface WebGPUBuffer {
     void setSubData(u64 offset, ArrayBuffer data);
 
index 1ece4ae..8f681af 100644 (file)
@@ -39,8 +39,7 @@ typedef unsigned long GPUTextureUsageFlags;
 [
     Conditional=WEBGPU,
     EnabledAtRuntime=WebGPU,
-    ImplementationLacksVTable,
-    InterfaceName=GPUDevice
+    ImplementationLacksVTable
 ] interface WebGPUDevice {
     readonly attribute WebGPUAdapter adapter;
 
diff --git a/Source/WebCore/Modules/webgpu/WebGPUInputStepMode.h b/Source/WebCore/Modules/webgpu/WebGPUInputStepMode.h
new file mode 100644 (file)
index 0000000..1d3d342
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2018 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#if ENABLE(WEBGPU)
+
+#include "GPUVertexInputDescriptor.h"
+
+namespace WebCore {
+
+using WebGPUInputStepMode = GPUInputStepMode;
+
+} // namespace WebCore
+
+#endif // ENABLE(WEBGPU)
index c75f310..c0e856f 100644 (file)
@@ -27,7 +27,6 @@
 [
     Conditional=WEBGPU,
     EnabledAtRuntime=WebGPU,
-    ImplementationLacksVTable,
-    InterfaceName=GPUPipelineLayout
+    ImplementationLacksVTable
 ] interface WebGPUPipelineLayout {
 };
index 9da7a0c..70fc1fe 100644 (file)
@@ -29,7 +29,6 @@ typedef unsigned long u32;
 [
     Conditional=WEBGPU,
     EnabledAtRuntime=WebGPU,
-    InterfaceName=GPUProgrammablePassEncoder,
     SkipVTableValidation
 ] interface WebGPUProgrammablePassEncoder {
     void endPass();
index 7b10d95..5a1a15a 100644 (file)
@@ -27,8 +27,7 @@
 [
     Conditional=WEBGPU,
     EnabledAtRuntime=WebGPU,
-    ImplementationLacksVTable,
-    InterfaceName=GPUQueue
+    ImplementationLacksVTable
 ] interface WebGPUQueue {
     void submit(sequence<WebGPUCommandBuffer> buffers);
 
index 21601ff..0091327 100644 (file)
@@ -30,7 +30,6 @@ typedef unsigned long long u64;
 [
     Conditional=WEBGPU,
     EnabledAtRuntime=WebGPU,
-    InterfaceName=GPURenderPassEncoder,
     JSGenerateToJSObject
 ] interface WebGPURenderPassEncoder : WebGPUProgrammablePassEncoder {
     void setPipeline(WebGPURenderPipeline pipeline);
index 0de8400..a46d01a 100644 (file)
@@ -27,7 +27,6 @@
 [
     Conditional=WEBGPU,
     EnabledAtRuntime=WebGPU,
-    ImplementationLacksVTable,
-    InterfaceName=GPURenderPipeline
+    ImplementationLacksVTable
 ] interface WebGPURenderPipeline {
 };
index 6f6f370..da2c3b5 100644 (file)
@@ -27,7 +27,6 @@
 [
     Conditional=WEBGPU,
     EnabledAtRuntime=WebGPU,
-    ImplementationLacksVTable,
-    InterfaceName=GPUSampler
+    ImplementationLacksVTable
 ] interface WebGPUSampler {
 };
index 11f4c8b..6f55e74 100644 (file)
@@ -27,8 +27,7 @@
 [
     Conditional=WEBGPU,
     EnabledAtRuntime=WebGPU,
-    ImplementationLacksVTable,
-    InterfaceName=GPUTexture
+    ImplementationLacksVTable
 ] interface WebGPUTexture {
     WebGPUTextureView createDefaultView();
     void destroy();
index ddca920..9931c5e 100644 (file)
@@ -27,7 +27,6 @@
 [
     Conditional=WEBGPU,
     EnabledAtRuntime=WebGPU,
-    ImplementationLacksVTable,
-    InterfaceName=GPUTextureView
+    ImplementationLacksVTable
 ] interface WebGPUTextureView {
 };
index c870f68..4c26c72 100644 (file)
                D0615FCC217FE5C6008A48A8 /* WebGPUShaderModule.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebGPUShaderModule.h; sourceTree = "<group>"; };
                D0615FCD217FE5C6008A48A8 /* WebGPUShaderModule.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = WebGPUShaderModule.cpp; sourceTree = "<group>"; };
                D0615FCE217FE5C6008A48A8 /* WebGPUShaderModule.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = WebGPUShaderModule.idl; sourceTree = "<group>"; };
+               D063AE4621C06626000E6A35 /* WebGPUInputStepMode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebGPUInputStepMode.h; sourceTree = "<group>"; };
                D06A9A2122026C7A0083C662 /* GPURequestAdapterOptions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPURequestAdapterOptions.h; sourceTree = "<group>"; };
                D06C0D8D0CFD11460065F43F /* RemoveFormatCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RemoveFormatCommand.h; sourceTree = "<group>"; };
                D06C0D8E0CFD11460065F43F /* RemoveFormatCommand.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RemoveFormatCommand.cpp; sourceTree = "<group>"; };
                                D00F595321701D8C000D71DB /* WebGPUDevice.cpp */,
                                D00F595221701D8C000D71DB /* WebGPUDevice.h */,
                                D00F595421701D8C000D71DB /* WebGPUDevice.idl */,
+                               D063AE4621C06626000E6A35 /* WebGPUInputStepMode.h */,
                                D0C419F02183EB31009EC1DE /* WebGPUPipelineDescriptorBase.h */,
                                D0C419F12183EB31009EC1DE /* WebGPUPipelineDescriptorBase.idl */,
                                D05A99E521C9BF2C00032B75 /* WebGPUPipelineLayout.cpp */,
index 34a9957..35d5784 100644 (file)
@@ -81,11 +81,6 @@ namespace WebCore {
     macro(Gamepad) \
     macro(GamepadButton) \
     macro(GamepadEvent) \
-    macro(GPU) \
-    macro(GPUAdapter) \
-    macro(GPUBindGroup) \
-    macro(GPUBindGroupLayout) \
-    macro(GPUBuffer) \
     macro(GPUBufferUsage) \
     macro(GPUCanvasContext) \
     macro(GPUShaderModule) \
@@ -93,18 +88,9 @@ namespace WebCore {
     macro(GPUCommandEncoder) \
     macro(GPUComputePassEncoder) \
     macro(GPUComputePipeline) \
-    macro(GPUDevice) \
-    macro(GPUPipelineLayout) \
-    macro(GPUProgrammablePassEncoder) \
-    macro(GPUQueue) \
-    macro(GPURenderPassEncoder) \
-    macro(GPURenderPipeline) \
-    macro(GPUSampler) \
     macro(GPUShaderStageBit) \
     macro(GPUSwapChain) \
-    macro(GPUTexture) \
     macro(GPUTextureUsage) \
-    macro(GPUTextureView) \
     macro(HTMLAttachmentElement) \
     macro(HTMLAudioElement) \
     macro(HTMLDataListElement) \
@@ -214,6 +200,23 @@ namespace WebCore {
     macro(VisualViewport) \
     macro(WebGL2RenderingContext) \
     macro(WebGLVertexArrayObject) \
+    macro(WebGPU) \
+    macro(WebGPUAdapter) \
+    macro(WebGPUBindGroup) \
+    macro(WebGPUBindGroupLayout) \
+    macro(WebGPUBuffer) \
+    macro(WebGPUDevice) \
+    macro(WebGPUIndexFormat) \
+    macro(WebGPUInputStepMode) \
+    macro(WebGPUQueue) \
+    macro(WebGPUPipelineLayout) \
+    macro(WebGPUProgrammablePassEncoder) \
+    macro(WebGPURenderPassEncoder) \
+    macro(WebGPURenderPipeline) \
+    macro(WebGPUSampler) \
+    macro(WebGPUTexture) \
+    macro(WebGPUTextureView) \
+    macro(WebGPUVertexFormat) \
     macro(WebMetalBuffer) \
     macro(WebMetalCommandBuffer) \
     macro(WebMetalCommandQueue) \