2022-01-25  Myles C. Maxfield  <mmaxfield@apple.com>

        [WebGPU] Build fix for Mac Catalyst
        https://bugs.webkit.org/show_bug.cgi?id=235625

        Unreviewed.

        The WGSL headers and .a file for Mac Catalyst need to not collide with the same files for regular Mac builds.

        * Configurations/Base.xcconfig:
        * Configurations/WGSL.xcconfig:

2022-01-18  Alex Christensen  <achristensen@webkit.org>

        Use c++2a instead of gnu++2a for Cocoa builds
        https://bugs.webkit.org/show_bug.cgi?id=234936

        Reviewed by Sam Weinig.

        * Configurations/Base.xcconfig:

2022-01-12  Elliott Williams  <emw@apple.com>

        [Xcode] Configure each project for the legacy build system
        https://bugs.webkit.org/show_bug.cgi?id=235091

        Reviewed by Darin Adler.

        * WebGPU.xcodeproj/project.pbxproj:

2022-01-10  Alex Christensen  <achristensen@webkit.org>

        Start using C++20
        https://bugs.webkit.org/show_bug.cgi?id=233963

        Reviewed by Yusuke Suzuki.

        * Configurations/Base.xcconfig:

2022-01-07  Alex Christensen  <achristensen@webkit.org>

        Unreviewed, reverting r287698.

        Broke an internal build

        Reverted changeset:

        "Start using C++20"
        https://bugs.webkit.org/show_bug.cgi?id=233963
        https://commits.webkit.org/r287698

2022-01-06  Alex Christensen  <achristensen@webkit.org>

        Start using C++20
        https://bugs.webkit.org/show_bug.cgi?id=233963

        Reviewed by Yusuke Suzuki.

        * Configurations/Base.xcconfig:

2022-01-01  Jeff Miller  <jeffm@apple.com>

        Update user-visible copyright strings to include 2022
        https://bugs.webkit.org/show_bug.cgi?id=234263

        Reviewed by Anders Carlsson.

        * Info.plist:

2021-12-21  Michael Saboff  <msaboff@apple.com>

        Fix symlinks for alternate root framework locations
        https://bugs.webkit.org/show_bug.cgi?id=234567

        Reviewed by Filip Pizlo.

        Moved OUTPUT_ALTERNATE_ROOT_PATH in create symlink script from outputFileListPaths to outputPaths.

        * WebGPU.xcodeproj/project.pbxproj:

2021-12-16  Michael Saboff  <msaboff@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=234173
        Update Install Paths for build system changes

        Reviewed by Filip Pizlo.

        Added build variables and build step to create symlinks pointing to the alternate
        build locations from the current framework install location.

        * Configurations/WebGPU.xcconfig:
        * Scripts: Added.
        * Scripts/create-symlink-to-altroot.sh: Added.
        * WebGPU.xcodeproj/project.pbxproj:

2021-12-13  Elliott Williams  <emw@apple.com>

        Deployment target for macOS 11+ does not follow minor version bumps
        https://bugs.webkit.org/show_bug.cgi?id=233906

        Reviewed by Alexey Proskuryakov.

        * Configurations/DebugRelease.xcconfig:

2021-12-10  Michael Saboff  <msaboff@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=234173
        Update Install Paths for build system changes

        Reviewed by Yusuke Suzuki.

        Updated install paths for changes in the build system that use a system path prefix.

        * Configurations/WebGPU.xcconfig:

2021-12-07  Myles C. Maxfield  <mmaxfield@apple.com>

        [WebGPU] Fix MacCatalyst build
        https://bugs.webkit.org/show_bug.cgi?id=233920

        Unreviewed.

        Taken from JavaScriptCore.xcodeproj.

        * Configurations/WebGPU.xcconfig:

2021-12-02  Myles C. Maxfield  <mmaxfield@apple.com>

        [WebGPU] Hook up navigator.gpu.requestAdapter()
        https://bugs.webkit.org/show_bug.cgi?id=233619

        Just hook up enough for Instance::requestAdapter() to not fail.

        Reviewed by Dean Jackson.

        * WebGPU/Adapter.mm:
        (WebGPU::Adapter::getLimits):
        * WebGPU/Instance.mm:
        (WebGPU::Instance::requestAdapter):
        (wgpuCreateInstance):
        (wgpuInstanceRequestAdapter):

2021-11-29  Myles C. Maxfield  <mmaxfield@apple.com>

        [WebGPU] Make WebGPU.framework's classes reference counted
        https://bugs.webkit.org/show_bug.cgi?id=233547

        Reviewed by Dean Jackson.

        This is a fairly mechanical change of replacing constructors with calls to create(), and
        changing instances to Ref<...>, and using -> instead of .

        There's one somewhat interesting design choice here. The header has things like:

        typedef struct WGPUAdapterImpl* WGPUAdapter;

        But we're using C++ so we want to have something like

        namespace WebGPU {
        class Adapter : public RefCounted<Adapter> {
            ...
        };
        }

        So we need to have some way of connecting these two things. This patch opts to do this like so:

        struct WGPUAdapterImpl {
            Ref<Adapter> adapter;
        };

        This isn't perfect, because it means that all method calls require a double dereference: one to
        dereference the WGPUAdapter to get the WGPUAdapterImpl, and one to dereference the Ref<Adapter>
        to get the Adapter. This is the most elegant solution for now, because it doesn't require any
        reinterpret_cast<>()'ing. This patch chooses this elegant solution, because premature optimization
        is the root of all evil.

        * WebGPU/Adapter.h:
        (WebGPU::Adapter::create):
        * WebGPU/Adapter.mm:
        (WebGPU::Adapter::requestDevice):
        (wgpuAdapterGetLimits):
        (wgpuAdapterGetProperties):
        (wgpuAdapterHasFeature):
        (wgpuAdapterGetFeatureAtIndex):
        (wgpuAdapterRequestDevice):
        * WebGPU/BindGroup.h:
        (WebGPU::BindGroup::create):
        * WebGPU/BindGroup.mm:
        (wgpuBindGroupSetLabel):
        * WebGPU/BindGroupLayout.h:
        (WebGPU::BindGroupLayout::create):
        * WebGPU/BindGroupLayout.mm:
        (wgpuBindGroupLayoutSetLabel):
        * WebGPU/Buffer.h:
        (WebGPU::Buffer::create):
        * WebGPU/Buffer.mm:
        (WebGPU::Buffer::mapAsync):
        (wgpuBufferDestroy):
        (wgpuBufferGetConstMappedRange):
        (wgpuBufferGetMappedRange):
        (wgpuBufferMapAsync):
        (wgpuBufferUnmap):
        (wgpuBufferSetLabel):
        * WebGPU/CommandBuffer.h:
        (WebGPU::CommandBuffer::create):
        * WebGPU/CommandBuffer.mm:
        (wgpuCommandBufferSetLabel):
        * WebGPU/CommandEncoder.h:
        (WebGPU::CommandEncoder::create):
        * WebGPU/CommandEncoder.mm:
        (WebGPU::CommandEncoder::beginComputePass):
        (WebGPU::CommandEncoder::beginRenderPass):
        (WebGPU::CommandEncoder::finish):
        (wgpuCommandEncoderBeginComputePass):
        (wgpuCommandEncoderBeginRenderPass):
        (wgpuCommandEncoderCopyBufferToBuffer):
        (wgpuCommandEncoderCopyBufferToTexture):
        (wgpuCommandEncoderCopyTextureToBuffer):
        (wgpuCommandEncoderCopyTextureToTexture):
        (wgpuCommandEncoderFillBuffer):
        (wgpuCommandEncoderFinish):
        (wgpuCommandEncoderInsertDebugMarker):
        (wgpuCommandEncoderPopDebugGroup):
        (wgpuCommandEncoderPushDebugGroup):
        (wgpuCommandEncoderResolveQuerySet):
        (wgpuCommandEncoderWriteTimestamp):
        (wgpuCommandEncoderSetLabel):
        * WebGPU/ComputePassEncoder.h:
        (WebGPU::ComputePassEncoder::create):
        * WebGPU/ComputePassEncoder.mm:
        (wgpuComputePassEncoderBeginPipelineStatisticsQuery):
        (wgpuComputePassEncoderDispatch):
        (wgpuComputePassEncoderDispatchIndirect):
        (wgpuComputePassEncoderEndPass):
        (wgpuComputePassEncoderEndPipelineStatisticsQuery):
        (wgpuComputePassEncoderInsertDebugMarker):
        (wgpuComputePassEncoderPopDebugGroup):
        (wgpuComputePassEncoderPushDebugGroup):
        (wgpuComputePassEncoderSetBindGroup):
        (wgpuComputePassEncoderSetPipeline):
        (wgpuComputePassEncoderWriteTimestamp):
        (wgpuComputePassEncoderSetLabel):
        * WebGPU/ComputePipeline.h:
        (WebGPU::ComputePipeline::create):
        * WebGPU/ComputePipeline.mm:
        (WebGPU::ComputePipeline::getBindGroupLayout):
        (wgpuComputePipelineGetBindGroupLayout):
        (wgpuComputePipelineSetLabel):
        * WebGPU/Device.h:
        (WebGPU::Device::create):
        * WebGPU/Device.mm:
        (WebGPU::Device::createBindGroup):
        (WebGPU::Device::createBindGroupLayout):
        (WebGPU::Device::createBuffer):
        (WebGPU::Device::createCommandEncoder):
        (WebGPU::Device::createComputePipeline):
        (WebGPU::Device::createComputePipelineAsync):
        (WebGPU::Device::createPipelineLayout):
        (WebGPU::Device::createQuerySet):
        (WebGPU::Device::createRenderBundleEncoder):
        (WebGPU::Device::createRenderPipeline):
        (WebGPU::Device::createRenderPipelineAsync):
        (WebGPU::Device::createSampler):
        (WebGPU::Device::createShaderModule):
        (WebGPU::Device::createSwapChain):
        (WebGPU::Device::createTexture):
        (WebGPU::Device::getQueue):
        (WebGPU::Device::popErrorScope):
        (WebGPU::Device::setDeviceLostCallback):
        (WebGPU::Device::setUncapturedErrorCallback):
        (wgpuDeviceCreateBindGroup):
        (wgpuDeviceCreateBindGroupLayout):
        (wgpuDeviceCreateBuffer):
        (wgpuDeviceCreateCommandEncoder):
        (wgpuDeviceCreateComputePipeline):
        (wgpuDeviceCreateComputePipelineAsync):
        (wgpuDeviceCreatePipelineLayout):
        (wgpuDeviceCreateQuerySet):
        (wgpuDeviceCreateRenderBundleEncoder):
        (wgpuDeviceCreateRenderPipeline):
        (wgpuDeviceCreateRenderPipelineAsync):
        (wgpuDeviceCreateSampler):
        (wgpuDeviceCreateShaderModule):
        (wgpuDeviceCreateSwapChain):
        (wgpuDeviceCreateTexture):
        (wgpuDeviceDestroy):
        (wgpuDeviceGetLimits):
        (wgpuDeviceGetQueue):
        (wgpuDevicePopErrorScope):
        (wgpuDevicePushErrorScope):
        (wgpuDeviceSetDeviceLostCallback):
        (wgpuDeviceSetUncapturedErrorCallback):
        (wgpuDeviceSetLabel):
        * WebGPU/Instance.h:
        (WebGPU::Instance::create):
        * WebGPU/Instance.mm:
        (WebGPU::Instance::createSurface):
        (WebGPU::Instance::requestAdapter):
        (wgpuInstanceCreateSurface):
        (wgpuInstanceProcessEvents):
        (wgpuInstanceRequestAdapter):
        * WebGPU/PipelineLayout.h:
        (WebGPU::PipelineLayout::create):
        * WebGPU/PipelineLayout.mm:
        (wgpuPipelineLayoutSetLabel):
        * WebGPU/QuerySet.h:
        (WebGPU::QuerySet::create):
        * WebGPU/QuerySet.mm:
        (wgpuQuerySetDestroy):
        (wgpuQuerySetSetLabel):
        * WebGPU/Queue.h:
        (WebGPU::Queue::create):
        * WebGPU/Queue.mm:
        (WebGPU::Queue::onSubmittedWorkDone):
        (wgpuQueueOnSubmittedWorkDone):
        (wgpuQueueSubmit):
        (wgpuQueueWriteBuffer):
        (wgpuQueueWriteTexture):
        (wgpuQueueSetLabel):
        * WebGPU/RenderBundle.h:
        (WebGPU::RenderBundle::create):
        * WebGPU/RenderBundle.mm:
        (wgpuRenderBundleSetLabel):
        * WebGPU/RenderBundleEncoder.h:
        (WebGPU::RenderBundleEncoder::create):
        * WebGPU/RenderBundleEncoder.mm:
        (WebGPU::RenderBundleEncoder::finish):
        (wgpuRenderBundleEncoderDraw):
        (wgpuRenderBundleEncoderDrawIndexed):
        (wgpuRenderBundleEncoderDrawIndexedIndirect):
        (wgpuRenderBundleEncoderDrawIndirect):
        (wgpuRenderBundleEncoderFinish):
        (wgpuRenderBundleEncoderInsertDebugMarker):
        (wgpuRenderBundleEncoderPopDebugGroup):
        (wgpuRenderBundleEncoderPushDebugGroup):
        (wgpuRenderBundleEncoderSetBindGroup):
        (wgpuRenderBundleEncoderSetIndexBuffer):
        (wgpuRenderBundleEncoderSetPipeline):
        (wgpuRenderBundleEncoderSetVertexBuffer):
        (wgpuRenderBundleEncoderSetLabel):
        * WebGPU/RenderPassEncoder.h:
        (WebGPU::RenderPassEncoder::create):
        * WebGPU/RenderPassEncoder.mm:
        (wgpuRenderPassEncoderBeginOcclusionQuery):
        (wgpuRenderPassEncoderBeginPipelineStatisticsQuery):
        (wgpuRenderPassEncoderDraw):
        (wgpuRenderPassEncoderDrawIndexed):
        (wgpuRenderPassEncoderDrawIndexedIndirect):
        (wgpuRenderPassEncoderDrawIndirect):
        (wgpuRenderPassEncoderEndOcclusionQuery):
        (wgpuRenderPassEncoderEndPass):
        (wgpuRenderPassEncoderEndPipelineStatisticsQuery):
        (wgpuRenderPassEncoderExecuteBundles):
        (wgpuRenderPassEncoderInsertDebugMarker):
        (wgpuRenderPassEncoderPopDebugGroup):
        (wgpuRenderPassEncoderPushDebugGroup):
        (wgpuRenderPassEncoderSetBindGroup):
        (wgpuRenderPassEncoderSetBlendConstant):
        (wgpuRenderPassEncoderSetIndexBuffer):
        (wgpuRenderPassEncoderSetPipeline):
        (wgpuRenderPassEncoderSetScissorRect):
        (wgpuRenderPassEncoderSetStencilReference):
        (wgpuRenderPassEncoderSetVertexBuffer):
        (wgpuRenderPassEncoderSetViewport):
        (wgpuRenderPassEncoderWriteTimestamp):
        (wgpuRenderPassEncoderSetLabel):
        * WebGPU/RenderPipeline.h:
        (WebGPU::RenderPipeline::create):
        * WebGPU/RenderPipeline.mm:
        (WebGPU::RenderPipeline::getBindGroupLayout):
        (wgpuRenderPipelineGetBindGroupLayout):
        (wgpuRenderPipelineSetLabel):
        * WebGPU/Sampler.h:
        (WebGPU::Sampler::create):
        * WebGPU/Sampler.mm:
        (wgpuSamplerSetLabel):
        * WebGPU/ShaderModule.h:
        (WebGPU::ShaderModule::create):
        * WebGPU/ShaderModule.mm:
        (wgpuShaderModuleSetLabel):
        * WebGPU/Surface.h:
        (WebGPU::Surface::create):
        * WebGPU/Surface.mm:
        (wgpuSurfaceGetPreferredFormat):
        * WebGPU/SwapChain.h:
        (WebGPU::SwapChain::create):
        * WebGPU/SwapChain.mm:
        (WebGPU::SwapChain::getCurrentTextureView):
        (wgpuSwapChainGetCurrentTextureView):
        (wgpuSwapChainPresent):
        * WebGPU/Texture.h:
        (WebGPU::Texture::create):
        * WebGPU/Texture.mm:
        (WebGPU::Texture::createView):
        (wgpuTextureCreateView):
        (wgpuTextureDestroy):
        (wgpuTextureSetLabel):
        * WebGPU/TextureView.h:
        (WebGPU::TextureView::create):
        * WebGPU/TextureView.mm:
        (wgpuTextureViewSetLabel):

2021-11-16  Myles C. Maxfield  <mmaxfield@apple.com>

        [WebGPU] Add WGSLUnitTests XCTest target for WebGPU
        https://bugs.webkit.org/show_bug.cgi?id=233227

        Reviewed by Robin Morisset.

        For now, this new target isn't hooked up to any automated testing - it's just a local target which developers can run.

        * Configurations/WGSLUnitTests.xcconfig: Added.
        * WGSLUnitTests/WGSLUnitTests.mm: Added.
        (-[WGSLUnitTests testExample]):
        * WebGPU.xcodeproj/project.pbxproj:
        * WebGPU.xcodeproj/xcshareddata/xcschemes/WGSL.xcscheme:
        * WebGPU.xcodeproj/xcshareddata/xcschemes/WGSLUnitTests.xcscheme: Copied from Source/WebGPU/WebGPU.xcodeproj/xcshareddata/xcschemes/WGSL.xcscheme.

2021-11-14  Myles C. Maxfield  <mmaxfield@apple.com>

        [WebGPU] Add necessary additions to WebGPU.framework
        https://bugs.webkit.org/show_bug.cgi?id=233091

        Reviewed by Dean Jackson.

        WebGPU.framework's header file is lagging a bit behind the official WebGPU API.
        This updates a companion header, WebGPUExt.h, with the necessary additions.
        I don't want to modify the primary header, WebGPU.h, because it's shared among
        multiple projects, so coordination is necessary to modify it.

        * WebGPU/Adapter.h:
        * WebGPU/Adapter.mm:
        (WebGPU::Adapter::getFeatureAtIndex):
        (wgpuAdapterGetFeatureAtIndex):
        * WebGPU/BindGroup.h:
        * WebGPU/BindGroup.mm:
        (WebGPU::BindGroup::setLabel):
        (wgpuBindGroupSetLabel):
        * WebGPU/BindGroupLayout.h:
        * WebGPU/BindGroupLayout.mm:
        (WebGPU::BindGroupLayout::setLabel):
        (wgpuBindGroupLayoutSetLabel):
        * WebGPU/Buffer.h:
        * WebGPU/Buffer.mm:
        (WebGPU::Buffer::setLabel):
        (wgpuBufferSetLabel):
        * WebGPU/CommandBuffer.h:
        * WebGPU/CommandBuffer.mm:
        (WebGPU::CommandBuffer::setLabel):
        (wgpuCommandBufferSetLabel):
        * WebGPU/CommandEncoder.h:
        * WebGPU/CommandEncoder.mm:
        (WebGPU::CommandEncoder::fillBuffer):
        (WebGPU::CommandEncoder::setLabel):
        (wgpuCommandEncoderFillBuffer):
        (wgpuCommandEncoderSetLabel):
        * WebGPU/ComputePassEncoder.h:
        * WebGPU/ComputePassEncoder.mm:
        (WebGPU::ComputePassEncoder::setLabel):
        (wgpuComputePassEncoderSetLabel):
        * WebGPU/Device.h:
        * WebGPU/Device.mm:
        (WebGPU::Device::setLabel):
        (wgpuDeviceSetLabel):
        * WebGPU/Instance.mm:
        (wgpuGetProcAddress):
        * WebGPU/PipelineLayout.h:
        * WebGPU/PipelineLayout.mm:
        (WebGPU::PipelineLayout::setLabel):
        (wgpuPipelineLayoutSetLabel):
        * WebGPU/QuerySet.h:
        * WebGPU/QuerySet.mm:
        (WebGPU::QuerySet::setLabel):
        (wgpuQuerySetSetLabel):
        * WebGPU/Queue.h:
        * WebGPU/Queue.mm:
        (WebGPU::Queue::setLabel):
        (wgpuQueueSetLabel):
        * WebGPU/RenderBundle.h:
        * WebGPU/RenderBundle.mm:
        (WebGPU::RenderBundle::setLabel):
        (wgpuRenderBundleSetLabel):
        * WebGPU/RenderBundleEncoder.h:
        * WebGPU/RenderBundleEncoder.mm:
        (WebGPU::RenderBundleEncoder::setLabel):
        (wgpuRenderBundleEncoderSetLabel):
        * WebGPU/RenderPassEncoder.h:
        * WebGPU/RenderPassEncoder.mm:
        (WebGPU::RenderPassEncoder::setLabel):
        (wgpuRenderPassEncoderSetLabel):
        * WebGPU/Sampler.h:
        * WebGPU/Sampler.mm:
        (WebGPU::Sampler::setLabel):
        (wgpuSamplerSetLabel):
        * WebGPU/Texture.h:
        * WebGPU/Texture.mm:
        (WebGPU::Texture::setLabel):
        (wgpuTextureSetLabel):
        * WebGPU/TextureView.h:
        * WebGPU/TextureView.mm:
        (WebGPU::TextureView::setLabel):
        (wgpuTextureViewSetLabel):
        * WebGPU/WebGPUExt.h:

2021-11-09  Myles C. Maxfield  <mmaxfield@apple.com>

        [WebGPU] Stub out methods in WebGPU.framework
        https://bugs.webkit.org/show_bug.cgi?id=232872

        Reviewed by Dean Jackson.

        This creates empty implementations for all the methods in WebGPU.framework.
        This means that there are now implementations for every API call, so PAL
        can successfully call into WebGPU.framework and link with it.

        * Configurations/Version.xcconfig: Added.
        * Configurations/WebGPU.xcconfig:
        * WebGPU.xcodeproj/project.pbxproj:
        * WebGPU/Adapter.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
        * WebGPU/Adapter.mm: Added.
        (WebGPU::Adapter::getLimits):
        (WebGPU::Adapter::getProperties):
        (WebGPU::Adapter::hasFeature):
        (WebGPU::Adapter::requestDevice):
        (wgpuAdapterRelease):
        (wgpuAdapterGetLimits):
        (wgpuAdapterGetProperties):
        (wgpuAdapterHasFeature):
        (wgpuAdapterRequestDevice):
        * WebGPU/BindGroup.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
        * WebGPU/BindGroup.mm: Copied from Source/WebGPU/WebGPU/WebGPUObjC.mm.
        (wgpuBindGroupRelease):
        * WebGPU/BindGroupLayout.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
        * WebGPU/BindGroupLayout.mm: Renamed from Source/WebGPU/WebGPU/WebGPU.cpp.
        (wgpuBindGroupLayoutRelease):
        * WebGPU/Buffer.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
        * WebGPU/Buffer.mm: Added.
        (WebGPU::Buffer::destroy):
        (WebGPU::Buffer::getConstMappedRange):
        (WebGPU::Buffer::getMappedRange):
        (WebGPU::Buffer::mapAsync):
        (WebGPU::Buffer::unmap):
        (wgpuBufferRelease):
        (wgpuBufferDestroy):
        (wgpuBufferGetConstMappedRange):
        (wgpuBufferGetMappedRange):
        (wgpuBufferMapAsync):
        (wgpuBufferUnmap):
        * WebGPU/CommandBuffer.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
        * WebGPU/CommandBuffer.mm: Copied from Source/WebGPU/WebGPU/WebGPUObjC.mm.
        (wgpuCommandBufferRelease):
        * WebGPU/CommandEncoder.h: Added.
        * WebGPU/CommandEncoder.mm: Added.
        (WebGPU::CommandEncoder::beginComputePass):
        (WebGPU::CommandEncoder::beginRenderPass):
        (WebGPU::CommandEncoder::copyBufferToBuffer):
        (WebGPU::CommandEncoder::copyBufferToTexture):
        (WebGPU::CommandEncoder::copyTextureToBuffer):
        (WebGPU::CommandEncoder::copyTextureToTexture):
        (WebGPU::CommandEncoder::finish):
        (WebGPU::CommandEncoder::insertDebugMarker):
        (WebGPU::CommandEncoder::popDebugGroup):
        (WebGPU::CommandEncoder::pushDebugGroup):
        (WebGPU::CommandEncoder::resolveQuerySet):
        (WebGPU::CommandEncoder::writeTimestamp):
        (wgpuCommandEncoderRelease):
        (wgpuCommandEncoderBeginComputePass):
        (wgpuCommandEncoderBeginRenderPass):
        (wgpuCommandEncoderCopyBufferToBuffer):
        (wgpuCommandEncoderCopyBufferToTexture):
        (wgpuCommandEncoderCopyTextureToBuffer):
        (wgpuCommandEncoderCopyTextureToTexture):
        (wgpuCommandEncoderFinish):
        (wgpuCommandEncoderInsertDebugMarker):
        (wgpuCommandEncoderPopDebugGroup):
        (wgpuCommandEncoderPushDebugGroup):
        (wgpuCommandEncoderResolveQuerySet):
        (wgpuCommandEncoderWriteTimestamp):
        * WebGPU/ComputePassEncoder.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
        * WebGPU/ComputePassEncoder.mm: Added.
        (WebGPU::ComputePassEncoder::beginPipelineStatisticsQuery):
        (WebGPU::ComputePassEncoder::dispatch):
        (WebGPU::ComputePassEncoder::dispatchIndirect):
        (WebGPU::ComputePassEncoder::endPass):
        (WebGPU::ComputePassEncoder::endPipelineStatisticsQuery):
        (WebGPU::ComputePassEncoder::insertDebugMarker):
        (WebGPU::ComputePassEncoder::popDebugGroup):
        (WebGPU::ComputePassEncoder::pushDebugGroup):
        (WebGPU::ComputePassEncoder::setBindGroup):
        (WebGPU::ComputePassEncoder::setPipeline):
        (WebGPU::ComputePassEncoder::writeTimestamp):
        (wgpuComputePassEncoderRelease):
        (wgpuComputePassEncoderBeginPipelineStatisticsQuery):
        (wgpuComputePassEncoderDispatch):
        (wgpuComputePassEncoderDispatchIndirect):
        (wgpuComputePassEncoderEndPass):
        (wgpuComputePassEncoderEndPipelineStatisticsQuery):
        (wgpuComputePassEncoderInsertDebugMarker):
        (wgpuComputePassEncoderPopDebugGroup):
        (wgpuComputePassEncoderPushDebugGroup):
        (wgpuComputePassEncoderSetBindGroup):
        (wgpuComputePassEncoderSetPipeline):
        (wgpuComputePassEncoderWriteTimestamp):
        * WebGPU/ComputePipeline.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
        * WebGPU/ComputePipeline.mm: Copied from Source/WebGPU/WebGPU/WebGPUObjC.mm.
        (WebGPU::ComputePipeline::getBindGroupLayout):
        (WebGPU::ComputePipeline::setLabel):
        (wgpuComputePipelineRelease):
        (wgpuComputePipelineGetBindGroupLayout):
        (wgpuComputePipelineSetLabel):
        * WebGPU/Device.h: Added.
        * WebGPU/Device.mm: Added.
        (WebGPU::Device::createBindGroup):
        (WebGPU::Device::createBindGroupLayout):
        (WebGPU::Device::createBuffer):
        (WebGPU::Device::createCommandEncoder):
        (WebGPU::Device::createComputePipeline):
        (WebGPU::Device::createComputePipelineAsync):
        (WebGPU::Device::createPipelineLayout):
        (WebGPU::Device::createQuerySet):
        (WebGPU::Device::createRenderBundleEncoder):
        (WebGPU::Device::createRenderPipeline):
        (WebGPU::Device::createRenderPipelineAsync):
        (WebGPU::Device::createSampler):
        (WebGPU::Device::createShaderModule):
        (WebGPU::Device::createSwapChain):
        (WebGPU::Device::createTexture):
        (WebGPU::Device::destroy):
        (WebGPU::Device::getLimits):
        (WebGPU::Device::getQueue):
        (WebGPU::Device::popErrorScope):
        (WebGPU::Device::pushErrorScope):
        (WebGPU::Device::setDeviceLostCallback):
        (WebGPU::Device::setUncapturedErrorCallback):
        (wgpuDeviceRelease):
        (wgpuDeviceCreateBindGroup):
        (wgpuDeviceCreateBindGroupLayout):
        (wgpuDeviceCreateBuffer):
        (wgpuDeviceCreateCommandEncoder):
        (wgpuDeviceCreateComputePipeline):
        (wgpuDeviceCreateComputePipelineAsync):
        (wgpuDeviceCreatePipelineLayout):
        (wgpuDeviceCreateQuerySet):
        (wgpuDeviceCreateRenderBundleEncoder):
        (wgpuDeviceCreateRenderPipeline):
        (wgpuDeviceCreateRenderPipelineAsync):
        (wgpuDeviceCreateSampler):
        (wgpuDeviceCreateShaderModule):
        (wgpuDeviceCreateSwapChain):
        (wgpuDeviceCreateTexture):
        (wgpuDeviceDestroy):
        (wgpuDeviceGetLimits):
        (wgpuDeviceGetQueue):
        (wgpuDevicePopErrorScope):
        (wgpuDevicePushErrorScope):
        (wgpuDeviceSetDeviceLostCallback):
        (wgpuDeviceSetUncapturedErrorCallback):
        * WebGPU/ExportMacros.h:
        * WebGPU/Instance.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
        * WebGPU/Instance.mm: Added.
        (WebGPU::Instance::createSurface):
        (WebGPU::Instance::processEvents):
        (WebGPU::Instance::requestAdapter):
        (wgpuInstanceRelease):
        (wgpuCreateInstance):
        (wgpuGetProcAddress):
        (wgpuInstanceCreateSurface):
        (wgpuInstanceProcessEvents):
        (wgpuInstanceRequestAdapter):
        * WebGPU/PipelineLayout.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
        * WebGPU/PipelineLayout.mm: Copied from Source/WebGPU/WebGPU/WebGPUObjC.mm.
        (wgpuPipelineLayoutRelease):
        * WebGPU/QuerySet.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
        * WebGPU/QuerySet.mm: Copied from Source/WebGPU/WebGPU/WebGPUObjC.mm.
        (WebGPU::QuerySet::destroy):
        (wgpuQuerySetRelease):
        (wgpuQuerySetDestroy):
        * WebGPU/Queue.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
        * WebGPU/Queue.mm: Added.
        (WebGPU::Queue::onSubmittedWorkDone):
        (WebGPU::Queue::submit):
        (WebGPU::Queue::writeBuffer):
        (WebGPU::Queue::writeTexture):
        (wgpuQueueRelease):
        (wgpuQueueOnSubmittedWorkDone):
        (wgpuQueueSubmit):
        (wgpuQueueWriteBuffer):
        (wgpuQueueWriteTexture):
        * WebGPU/RenderBundle.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
        * WebGPU/RenderBundle.mm: Copied from Source/WebGPU/WebGPU/WebGPUObjC.mm.
        (wgpuRenderBundleRelease):
        * WebGPU/RenderBundleEncoder.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
        * WebGPU/RenderBundleEncoder.mm: Added.
        (WebGPU::RenderBundleEncoder::draw):
        (WebGPU::RenderBundleEncoder::drawIndexed):
        (WebGPU::RenderBundleEncoder::drawIndexedIndirect):
        (WebGPU::RenderBundleEncoder::drawIndirect):
        (WebGPU::RenderBundleEncoder::finish):
        (WebGPU::RenderBundleEncoder::insertDebugMarker):
        (WebGPU::RenderBundleEncoder::popDebugGroup):
        (WebGPU::RenderBundleEncoder::pushDebugGroup):
        (WebGPU::RenderBundleEncoder::setBindGroup):
        (WebGPU::RenderBundleEncoder::setIndexBuffer):
        (WebGPU::RenderBundleEncoder::setPipeline):
        (WebGPU::RenderBundleEncoder::setVertexBuffer):
        (wgpuRenderBundleEncoderRelease):
        (wgpuRenderBundleEncoderDraw):
        (wgpuRenderBundleEncoderDrawIndexed):
        (wgpuRenderBundleEncoderDrawIndexedIndirect):
        (wgpuRenderBundleEncoderDrawIndirect):
        (wgpuRenderBundleEncoderFinish):
        (wgpuRenderBundleEncoderInsertDebugMarker):
        (wgpuRenderBundleEncoderPopDebugGroup):
        (wgpuRenderBundleEncoderPushDebugGroup):
        (wgpuRenderBundleEncoderSetBindGroup):
        (wgpuRenderBundleEncoderSetIndexBuffer):
        (wgpuRenderBundleEncoderSetPipeline):
        (wgpuRenderBundleEncoderSetVertexBuffer):
        * WebGPU/RenderPassEncoder.h: Added.
        * WebGPU/RenderPassEncoder.mm: Added.
        (WebGPU::RenderPassEncoder::beginOcclusionQuery):
        (WebGPU::RenderPassEncoder::beginPipelineStatisticsQuery):
        (WebGPU::RenderPassEncoder::draw):
        (WebGPU::RenderPassEncoder::drawIndexed):
        (WebGPU::RenderPassEncoder::drawIndexedIndirect):
        (WebGPU::RenderPassEncoder::drawIndirect):
        (WebGPU::RenderPassEncoder::endOcclusionQuery):
        (WebGPU::RenderPassEncoder::endPass):
        (WebGPU::RenderPassEncoder::endPipelineStatisticsQuery):
        (WebGPU::RenderPassEncoder::executeBundles):
        (WebGPU::RenderPassEncoder::insertDebugMarker):
        (WebGPU::RenderPassEncoder::popDebugGroup):
        (WebGPU::RenderPassEncoder::pushDebugGroup):
        (WebGPU::RenderPassEncoder::setBindGroup):
        (WebGPU::RenderPassEncoder::setBlendConstant):
        (WebGPU::RenderPassEncoder::setIndexBuffer):
        (WebGPU::RenderPassEncoder::setPipeline):
        (WebGPU::RenderPassEncoder::setScissorRect):
        (WebGPU::RenderPassEncoder::setStencilReference):
        (WebGPU::RenderPassEncoder::setVertexBuffer):
        (WebGPU::RenderPassEncoder::setViewport):
        (WebGPU::RenderPassEncoder::writeTimestamp):
        (wgpuRenderPassEncoderRelease):
        (wgpuRenderPassEncoderBeginOcclusionQuery):
        (wgpuRenderPassEncoderBeginPipelineStatisticsQuery):
        (wgpuRenderPassEncoderDraw):
        (wgpuRenderPassEncoderDrawIndexed):
        (wgpuRenderPassEncoderDrawIndexedIndirect):
        (wgpuRenderPassEncoderDrawIndirect):
        (wgpuRenderPassEncoderEndOcclusionQuery):
        (wgpuRenderPassEncoderEndPass):
        (wgpuRenderPassEncoderEndPipelineStatisticsQuery):
        (wgpuRenderPassEncoderExecuteBundles):
        (wgpuRenderPassEncoderInsertDebugMarker):
        (wgpuRenderPassEncoderPopDebugGroup):
        (wgpuRenderPassEncoderPushDebugGroup):
        (wgpuRenderPassEncoderSetBindGroup):
        (wgpuRenderPassEncoderSetBlendConstant):
        (wgpuRenderPassEncoderSetIndexBuffer):
        (wgpuRenderPassEncoderSetPipeline):
        (wgpuRenderPassEncoderSetScissorRect):
        (wgpuRenderPassEncoderSetStencilReference):
        (wgpuRenderPassEncoderSetVertexBuffer):
        (wgpuRenderPassEncoderSetViewport):
        (wgpuRenderPassEncoderWriteTimestamp):
        * WebGPU/RenderPipeline.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
        * WebGPU/RenderPipeline.mm: Copied from Source/WebGPU/WebGPU/WebGPUObjC.mm.
        (WebGPU::RenderPipeline::getBindGroupLayout):
        (WebGPU::RenderPipeline::setLabel):
        (wgpuRenderPipelineRelease):
        (wgpuRenderPipelineGetBindGroupLayout):
        (wgpuRenderPipelineSetLabel):
        * WebGPU/Sampler.h: Renamed from Source/WebGPU/WebGPU/WebGPUObjC.h.
        * WebGPU/Sampler.mm: Copied from Source/WebGPU/WebGPU/WebGPUObjC.mm.
        (wgpuSamplerRelease):
        * WebGPU/ShaderModule.h:
        * WebGPU/ShaderModule.mm: Copied from Source/WebGPU/WebGPU/WebGPUObjC.mm.
        (WebGPU::ShaderModule::setLabel):
        (wgpuShaderModuleRelease):
        (wgpuShaderModuleSetLabel):
        * WebGPU/Surface.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
        * WebGPU/Surface.mm: Copied from Source/WebGPU/WebGPU/WebGPUObjC.mm.
        (WebGPU::Surface::getPreferredFormat):
        (wgpuSurfaceRelease):
        (wgpuSurfaceGetPreferredFormat):
        * WebGPU/SwapChain.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
        * WebGPU/SwapChain.mm: Copied from Source/WebGPU/WebGPU/WebGPUObjC.mm.
        (WebGPU::SwapChain::getCurrentTextureView):
        (WebGPU::SwapChain::present):
        (wgpuSwapChainRelease):
        (wgpuSwapChainGetCurrentTextureView):
        (wgpuSwapChainPresent):
        * WebGPU/Texture.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
        * WebGPU/Texture.mm: Copied from Source/WebGPU/WebGPU/WebGPUObjC.mm.
        (WebGPU::Texture::createView):
        (WebGPU::Texture::destroy):
        (wgpuTextureRelease):
        (wgpuTextureCreateView):
        (wgpuTextureDestroy):
        * WebGPU/TextureView.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
        * WebGPU/TextureView.mm: Renamed from Source/WebGPU/WebGPU/WebGPUObjC.mm.
        (wgpuTextureViewRelease):
        * WebGPU/WebGPU.modulemap: Added.
        * WebGPU/WebGPUExt.h: Added.

2021-10-19  Myles C. Maxfield  <mmaxfield@apple.com>

        Make WebGPU.xcodeproj and WebGPU.framework
        https://bugs.webkit.org/show_bug.cgi?id=231661

        Reviewed by Dean Jackson and Robin Morisset.

        We've gotten some requests to be able to use WebGPU from native code,
        without requiring all of WebKit. This patch creates a new Xcode project
        that creates a new framework for WebGPU, so these internal users can
        build it / include it in their own projects.

        This project has two targets: One for WGSL and one for WebGPU. WGSL
        creates a static library, and WebGPU links with it, and produces a
        framework. This patch implements one dummy function from each of them.

        * Configurations/Base.xcconfig: Added.
        * Configurations/DebugRelease.xcconfig: Added.
        * Configurations/SDKVariant.xcconfig: Added.
        * Configurations/WGSL.xcconfig: Added.
        * Configurations/WebGPU.xcconfig: Added.
        * Info.plist: Added.
        * Makefile: Added.
        * WGSL/AST.h: Added.
        * WGSL/WGSL.cpp: Added.
        (WGSL::check):
        (WGSL::SuccessfulCheck::~SuccessfulCheck):
        * WGSL/WGSL.h: Added.
        * WGSL/config.h: Added.
        * WebGPU.xcodeproj/project.pbxproj: Added.
        * WebGPU.xcodeproj/xcshareddata/xcschemes/WGSL.xcscheme: Added.
        * WebGPU.xcodeproj/xcshareddata/xcschemes/WebGPU.xcscheme: Added.
        * WebGPU/ExportMacros.h: Added.
        * WebGPU/ShaderModule.h: Added.
        * WebGPU/WebGPU.cpp: Added.
        (wgpuDeviceCreateShaderModule):
        * WebGPU/WebGPU.h: Added.
        * WebGPU/WebGPUObjC.h: Added.
        * WebGPU/WebGPUObjC.mm: Added.
        (objcFunction):
        * WebGPU/config.h: Added.
