⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 293280 in webkit


Ignore:
Timestamp:
Apr 22, 2022, 7:42:36 PM (4 years ago)
Author:
Russell Epstein
Message:

Cherry-pick r293106. rdar://problem/91740931

[WebGPU] WebKit and WebKitLegacy shouldn't need to know about WebGPU.framework
https://bugs.webkit.org/show_bug.cgi?id=239528
<rdar://problem/91740931>

Unreviewed build fix.

Source/WebCore/PAL:

WebKit and WebKitLegacy create a WebGPU implementation from pal/graphics/WebGPU/Impl. This implementation
knows about WebGPU.framework. However, the create() function doesn't need to know about WebGPU.framework,
and its header doesn't need to include <WebGPU/WebGPU.h>. Only the .cpp files need to know about
<WebGPU/WebGPU.h>, and those .cpp files are invisible from WebKit and WebKitLegacy's points of view. So,
this patch splits the PAL header into:

  1. A header which includes a creation function, but doesn't know about WebGPU.framework, and
  2. A header which knows about WebGPU.framework, but doesn't hold the creation function used by WebKit or

WebKitLegacy.

This fixes one of Apple's internal builds.

  • PAL.xcodeproj/project.pbxproj:
  • pal/graphics/WebGPU/Impl/WebGPUCreateImpl.cpp: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.cpp. (PAL::WebGPU::create):
  • pal/graphics/WebGPU/Impl/WebGPUCreateImpl.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.h.
  • pal/graphics/WebGPU/Impl/WebGPUImpl.cpp: (PAL::WebGPU::GPUImpl::create): Deleted.
  • pal/graphics/WebGPU/Impl/WebGPUImpl.h:

Source/WebKit:

  • GPUProcess/graphics/WebGPU/RemoteGPU.cpp: (WebKit::RemoteGPU::workQueueInitialize):
  • WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::createGPUForWebGPU const):

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebChromeClient.mm: (WebChromeClient::createGPUForWebGPU const):

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

Location:
branches/safari-614.1.10-branch/Source
Files:
9 edited
2 copied

Legend:

Unmodified
Added
Removed
  • branches/safari-614.1.10-branch/Source/WebCore/PAL/ChangeLog

    r292640 r293280  
     12022-04-22  Russell Epstein  <repstein@apple.com>
     2
     3        Cherry-pick r293106. rdar://problem/91740931
     4
     5    [WebGPU] WebKit and WebKitLegacy shouldn't need to know about WebGPU.framework
     6    https://bugs.webkit.org/show_bug.cgi?id=239528
     7    <rdar://problem/91740931>
     8   
     9    Unreviewed build fix.
     10   
     11    Source/WebCore/PAL:
     12   
     13    WebKit and WebKitLegacy create a WebGPU implementation from pal/graphics/WebGPU/Impl. This implementation
     14    knows about WebGPU.framework. However, the create() function doesn't need to know about WebGPU.framework,
     15    and its header doesn't need to include <WebGPU/WebGPU.h>. Only the .cpp files need to know about
     16    <WebGPU/WebGPU.h>, and those .cpp files are invisible from WebKit and WebKitLegacy's points of view. So,
     17    this patch splits the PAL header into:
     18    1. A header which includes a creation function, but doesn't know about WebGPU.framework, and
     19    2. A header which knows about WebGPU.framework, but doesn't hold the creation function used by WebKit or
     20           WebKitLegacy.
     21   
     22    This fixes one of Apple's internal builds.
     23   
     24    * PAL.xcodeproj/project.pbxproj:
     25    * pal/graphics/WebGPU/Impl/WebGPUCreateImpl.cpp: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.cpp.
     26    (PAL::WebGPU::create):
     27    * pal/graphics/WebGPU/Impl/WebGPUCreateImpl.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.h.
     28    * pal/graphics/WebGPU/Impl/WebGPUImpl.cpp:
     29    (PAL::WebGPU::GPUImpl::create): Deleted.
     30    * pal/graphics/WebGPU/Impl/WebGPUImpl.h:
     31   
     32    Source/WebKit:
     33   
     34    * GPUProcess/graphics/WebGPU/RemoteGPU.cpp:
     35    (WebKit::RemoteGPU::workQueueInitialize):
     36    * WebProcess/WebCoreSupport/WebChromeClient.cpp:
     37    (WebKit::WebChromeClient::createGPUForWebGPU const):
     38   
     39    Source/WebKitLegacy/mac:
     40   
     41    * WebCoreSupport/WebChromeClient.mm:
     42    (WebChromeClient::createGPUForWebGPU const):
     43   
     44    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@293106 268f45cc-cd09-0410-ab3c-d52691b4dbfc
     45
     46    2022-04-20  Myles C. Maxfield  <mmaxfield@apple.com>
     47
     48            [WebGPU] WebKit and WebKitLegacy shouldn't need to know about WebGPU.framework
     49            https://bugs.webkit.org/show_bug.cgi?id=239528
     50            <rdar://problem/91740931>
     51
     52            Unreviewed build fix.
     53
     54            WebKit and WebKitLegacy create a WebGPU implementation from pal/graphics/WebGPU/Impl. This implementation
     55            knows about WebGPU.framework. However, the create() function doesn't need to know about WebGPU.framework,
     56            and its header doesn't need to include <WebGPU/WebGPU.h>. Only the .cpp files need to know about
     57            <WebGPU/WebGPU.h>, and those .cpp files are invisible from WebKit and WebKitLegacy's points of view. So,
     58            this patch splits the PAL header into:
     59            1. A header which includes a creation function, but doesn't know about WebGPU.framework, and
     60            2. A header which knows about WebGPU.framework, but doesn't hold the creation function used by WebKit or
     61                   WebKitLegacy.
     62
     63            This fixes one of Apple's internal builds.
     64
     65            * PAL.xcodeproj/project.pbxproj:
     66            * pal/graphics/WebGPU/Impl/WebGPUCreateImpl.cpp: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.cpp.
     67            (PAL::WebGPU::create):
     68            * pal/graphics/WebGPU/Impl/WebGPUCreateImpl.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.h.
     69            * pal/graphics/WebGPU/Impl/WebGPUImpl.cpp:
     70            (PAL::WebGPU::GPUImpl::create): Deleted.
     71            * pal/graphics/WebGPU/Impl/WebGPUImpl.h:
     72
    1732022-04-08  Elliott Williams  <emw@apple.com>
    274
  • branches/safari-614.1.10-branch/Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj

    r292444 r293280  
    6161                1C77C8C925D7972000635E0C /* CoreTextSoftLink.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1C77C8C725D7972000635E0C /* CoreTextSoftLink.cpp */; };
    6262                1C77C8CE25D7A4A300635E0C /* OTSVGTable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1C77C8CD25D7A4A300635E0C /* OTSVGTable.cpp */; };
     63                1CCA5EFF280FABB4008A6F78 /* WebGPUCreateImpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1CCA5EFD280FABB4008A6F78 /* WebGPUCreateImpl.cpp */; };
     64                1CCA5F00280FABB4008A6F78 /* WebGPUCreateImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1CCA5EFE280FABB4008A6F78 /* WebGPUCreateImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
    6365                1D2B413425F05E3500A3F70A /* ClockGeneric.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1D2B413225F05E3400A3F70A /* ClockGeneric.cpp */; };
    6466                293EE4A824154F8F0047493D /* AccessibilitySupportSoftLink.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 293EE4A624154F8F0047493D /* AccessibilitySupportSoftLink.cpp */; };
     
    113115                DD20DD2627BC90D60093D175 /* VisionKitCoreSoftLink.h in Headers */ = {isa = PBXBuildFile; fileRef = F46B8C4B267408FA007A6554 /* VisionKitCoreSoftLink.h */; settings = {ATTRIBUTES = (Private, ); }; };
    114116                DD20DD2727BC90D60093D175 /* CryptoDigest.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C09D0521E31C44100725F18 /* CryptoDigest.h */; settings = {ATTRIBUTES = (Private, ); }; };
    115                 DD20DD2827BC90D60093D175 /* WebGPUAdapterImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6AE273F4245004B17B0 /* WebGPUAdapterImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
    116                 DD20DD2927BC90D60093D175 /* WebGPUBindGroupImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A1273F4243004B17B0 /* WebGPUBindGroupImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
    117                 DD20DD2A27BC90D60093D175 /* WebGPUBindGroupLayoutImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E69C273F4243004B17B0 /* WebGPUBindGroupLayoutImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
    118                 DD20DD2B27BC90D60093D175 /* WebGPUBufferImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A2273F4243004B17B0 /* WebGPUBufferImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
    119                 DD20DD2C27BC90D60093D175 /* WebGPUCommandBufferImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A4273F4244004B17B0 /* WebGPUCommandBufferImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
    120                 DD20DD2D27BC90D60093D175 /* WebGPUCommandEncoderImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6AB273F4245004B17B0 /* WebGPUCommandEncoderImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
    121                 DD20DD2E27BC90D60093D175 /* WebGPUComputePassEncoderImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E69E273F4243004B17B0 /* WebGPUComputePassEncoderImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
    122                 DD20DD2F27BC90D60093D175 /* WebGPUComputePipelineImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6AF273F4245004B17B0 /* WebGPUComputePipelineImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
    123                 DD20DD3027BC90D60093D175 /* WebGPUConvertToBackingContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6B6273F85BC004B17B0 /* WebGPUConvertToBackingContext.h */; settings = {ATTRIBUTES = (Private, ); }; };
    124                 DD20DD3127BC90D60093D175 /* WebGPUDeviceImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6AD273F4245004B17B0 /* WebGPUDeviceImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
    125                 DD20DD3227BC90D60093D175 /* WebGPUDowncastConvertToBackingContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C36C52D2743011A006DA4C1 /* WebGPUDowncastConvertToBackingContext.h */; settings = {ATTRIBUTES = (Private, ); }; };
    126                 DD20DD3327BC90D60093D175 /* WebGPUExternalTextureImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6BB27405E3C004B17B0 /* WebGPUExternalTextureImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
    127                 DD20DD3427BC90D60093D175 /* WebGPUImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E69B273F4242004B17B0 /* WebGPUImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
    128                 DD20DD3527BC90D60093D175 /* WebGPUPipelineLayoutImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E69D273F4243004B17B0 /* WebGPUPipelineLayoutImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
    129                 DD20DD3627BC90D60093D175 /* WebGPUQuerySetImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A8273F4244004B17B0 /* WebGPUQuerySetImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
    130                 DD20DD3727BC90D60093D175 /* WebGPUQueueImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A5273F4244004B17B0 /* WebGPUQueueImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
    131                 DD20DD3827BC90D60093D175 /* WebGPURenderBundleEncoderImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E69A273F4242004B17B0 /* WebGPURenderBundleEncoderImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
    132                 DD20DD3927BC90D60093D175 /* WebGPURenderBundleImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A6273F4244004B17B0 /* WebGPURenderBundleImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
    133                 DD20DD3A27BC90D60093D175 /* WebGPURenderPassEncoderImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A3273F4244004B17B0 /* WebGPURenderPassEncoderImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
    134                 DD20DD3B27BC90D60093D175 /* WebGPURenderPipelineImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A9273F4244004B17B0 /* WebGPURenderPipelineImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
    135                 DD20DD3C27BC90D60093D175 /* WebGPUSamplerImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A7273F4244004B17B0 /* WebGPUSamplerImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
    136                 DD20DD3D27BC90D60093D175 /* WebGPUShaderModuleImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6AA273F4245004B17B0 /* WebGPUShaderModuleImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
    137                 DD20DD3E27BC90D60093D175 /* WebGPUTextureImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E69F273F4243004B17B0 /* WebGPUTextureImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
    138                 DD20DD3F27BC90D70093D175 /* WebGPUTextureViewImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6AC273F4245004B17B0 /* WebGPUTextureViewImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
     117                DD20DD2827BC90D60093D175 /* WebGPUAdapterImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6AE273F4245004B17B0 /* WebGPUAdapterImpl.h */; };
     118                DD20DD2927BC90D60093D175 /* WebGPUBindGroupImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A1273F4243004B17B0 /* WebGPUBindGroupImpl.h */; };
     119                DD20DD2A27BC90D60093D175 /* WebGPUBindGroupLayoutImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E69C273F4243004B17B0 /* WebGPUBindGroupLayoutImpl.h */; };
     120                DD20DD2B27BC90D60093D175 /* WebGPUBufferImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A2273F4243004B17B0 /* WebGPUBufferImpl.h */; };
     121                DD20DD2C27BC90D60093D175 /* WebGPUCommandBufferImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A4273F4244004B17B0 /* WebGPUCommandBufferImpl.h */; };
     122                DD20DD2D27BC90D60093D175 /* WebGPUCommandEncoderImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6AB273F4245004B17B0 /* WebGPUCommandEncoderImpl.h */; };
     123                DD20DD2E27BC90D60093D175 /* WebGPUComputePassEncoderImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E69E273F4243004B17B0 /* WebGPUComputePassEncoderImpl.h */; };
     124                DD20DD2F27BC90D60093D175 /* WebGPUComputePipelineImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6AF273F4245004B17B0 /* WebGPUComputePipelineImpl.h */; };
     125                DD20DD3027BC90D60093D175 /* WebGPUConvertToBackingContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6B6273F85BC004B17B0 /* WebGPUConvertToBackingContext.h */; };
     126                DD20DD3127BC90D60093D175 /* WebGPUDeviceImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6AD273F4245004B17B0 /* WebGPUDeviceImpl.h */; };
     127                DD20DD3227BC90D60093D175 /* WebGPUDowncastConvertToBackingContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C36C52D2743011A006DA4C1 /* WebGPUDowncastConvertToBackingContext.h */; };
     128                DD20DD3327BC90D60093D175 /* WebGPUExternalTextureImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6BB27405E3C004B17B0 /* WebGPUExternalTextureImpl.h */; };
     129                DD20DD3427BC90D60093D175 /* WebGPUImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E69B273F4242004B17B0 /* WebGPUImpl.h */; };
     130                DD20DD3527BC90D60093D175 /* WebGPUPipelineLayoutImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E69D273F4243004B17B0 /* WebGPUPipelineLayoutImpl.h */; };
     131                DD20DD3627BC90D60093D175 /* WebGPUQuerySetImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A8273F4244004B17B0 /* WebGPUQuerySetImpl.h */; };
     132                DD20DD3727BC90D60093D175 /* WebGPUQueueImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A5273F4244004B17B0 /* WebGPUQueueImpl.h */; };
     133                DD20DD3827BC90D60093D175 /* WebGPURenderBundleEncoderImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E69A273F4242004B17B0 /* WebGPURenderBundleEncoderImpl.h */; };
     134                DD20DD3927BC90D60093D175 /* WebGPURenderBundleImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A6273F4244004B17B0 /* WebGPURenderBundleImpl.h */; };
     135                DD20DD3A27BC90D60093D175 /* WebGPURenderPassEncoderImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A3273F4244004B17B0 /* WebGPURenderPassEncoderImpl.h */; };
     136                DD20DD3B27BC90D60093D175 /* WebGPURenderPipelineImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A9273F4244004B17B0 /* WebGPURenderPipelineImpl.h */; };
     137                DD20DD3C27BC90D60093D175 /* WebGPUSamplerImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A7273F4244004B17B0 /* WebGPUSamplerImpl.h */; };
     138                DD20DD3D27BC90D60093D175 /* WebGPUShaderModuleImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6AA273F4245004B17B0 /* WebGPUShaderModuleImpl.h */; };
     139                DD20DD3E27BC90D60093D175 /* WebGPUTextureImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E69F273F4243004B17B0 /* WebGPUTextureImpl.h */; };
     140                DD20DD3F27BC90D70093D175 /* WebGPUTextureViewImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6AC273F4245004B17B0 /* WebGPUTextureViewImpl.h */; };
    139141                DD20DD4027BC90D70093D175 /* WebGPU.h in Headers */ = {isa = PBXBuildFile; fileRef = 1CC5E47127374948006F6FF4 /* WebGPU.h */; settings = {ATTRIBUTES = (Private, ); }; };
    140142                DD20DD4127BC90D70093D175 /* WebGPUAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 1CC5E47F27374949006F6FF4 /* WebGPUAdapter.h */; settings = {ATTRIBUTES = (Private, ); }; };
     
    828830                1CC5E4922737494A006F6FF4 /* WebGPURenderBundle.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebGPURenderBundle.h; sourceTree = "<group>"; };
    829831                1CC5E4932737494A006F6FF4 /* WebGPUCanvasCompositingAlphaMode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebGPUCanvasCompositingAlphaMode.h; sourceTree = "<group>"; };
     832                1CCA5EFD280FABB4008A6F78 /* WebGPUCreateImpl.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = WebGPUCreateImpl.cpp; sourceTree = "<group>"; };
     833                1CCA5EFE280FABB4008A6F78 /* WebGPUCreateImpl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebGPUCreateImpl.h; sourceTree = "<group>"; };
    830834                1CCEE4F420D871930047B097 /* CoreUISPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CoreUISPI.h; sourceTree = "<group>"; };
    831835                1CCEE4F620D8743F0047B097 /* NSAppearanceSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSAppearanceSPI.h; sourceTree = "<group>"; };
     
    12661270                                1C19E6B4273F85AF004B17B0 /* WebGPUConvertToBackingContext.cpp */,
    12671271                                1C19E6B6273F85BC004B17B0 /* WebGPUConvertToBackingContext.h */,
     1272                                1CCA5EFD280FABB4008A6F78 /* WebGPUCreateImpl.cpp */,
     1273                                1CCA5EFE280FABB4008A6F78 /* WebGPUCreateImpl.h */,
    12681274                                1C19E666273F3FFA004B17B0 /* WebGPUDeviceImpl.cpp */,
    12691275                                1C19E6AD273F4245004B17B0 /* WebGPUDeviceImpl.h */,
     
    17121718                                DD20DD6427BC90D70093D175 /* WebGPUComputePipeline.h in Headers */,
    17131719                                DD20DD6527BC90D70093D175 /* WebGPUComputePipelineDescriptor.h in Headers */,
     1720                                1CCA5F00280FABB4008A6F78 /* WebGPUCreateImpl.h in Headers */,
    17141721                                DD20DD6627BC90D70093D175 /* WebGPUCullMode.h in Headers */,
    17151722                                DD20DD6727BC90D70093D175 /* WebGPUDepthStencilState.h in Headers */,
     
    21342141                                1C19E664273F3FEE004B17B0 /* WebGPUComputePipelineImpl.cpp in Sources */,
    21352142                                1C19E6B5273F85AF004B17B0 /* WebGPUConvertToBackingContext.cpp in Sources */,
     2143                                1CCA5EFF280FABB4008A6F78 /* WebGPUCreateImpl.cpp in Sources */,
    21362144                                1C19E668273F3FFA004B17B0 /* WebGPUDeviceImpl.cpp in Sources */,
    21372145                                1C36C52E2743011A006DA4C1 /* WebGPUDowncastConvertToBackingContext.cpp in Sources */,
  • branches/safari-614.1.10-branch/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUCreateImpl.cpp

    r293229 r293280  
    2525
    2626#include "config.h"
    27 #include "WebGPUImpl.h"
     27#include "WebGPUCreateImpl.h"
    2828
    2929#if HAVE(WEBGPU_IMPLEMENTATION)
     
    3131#include "WebGPUAdapterImpl.h"
    3232#include "WebGPUDowncastConvertToBackingContext.h"
     33#include "WebGPUImpl.h"
    3334#include <WebGPU/WebGPUExt.h>
    3435#include <wtf/BlockPtr.h>
     
    4243namespace PAL::WebGPU {
    4344
    44 RefPtr<GPUImpl> GPUImpl::create(ScheduleWorkFunction&& scheduleWorkFunction)
     45RefPtr<GPU> create(ScheduleWorkFunction&& scheduleWorkFunction)
    4546{
    4647    auto scheduleWorkBlock = makeBlockPtr([scheduleWorkFunction = WTFMove(scheduleWorkFunction)](WGPUWorkItem workItem)
     
    6364        return nullptr;
    6465    auto convertToBackingContext = DowncastConvertToBackingContext::create();
    65     return create(instance, convertToBackingContext);
    66 }
    67 
    68 GPUImpl::GPUImpl(WGPUInstance instance, ConvertToBackingContext& convertToBackingContext)
    69     : m_backing(instance)
    70     , m_convertToBackingContext(convertToBackingContext)
    71 {
    72 }
    73 
    74 GPUImpl::~GPUImpl()
    75 {
    76     wgpuInstanceRelease(m_backing);
    77 }
    78 
    79 void GPUImpl::requestAdapter(const RequestAdapterOptions& options, CompletionHandler<void(RefPtr<Adapter>&&)>&& callback)
    80 {
    81     WGPURequestAdapterOptions backingOptions {
    82         nullptr,
    83         nullptr,
    84         options.powerPreference ? m_convertToBackingContext->convertToBacking(*options.powerPreference) : static_cast<WGPUPowerPreference>(WGPUPowerPreference_Undefined),
    85         options.forceFallbackAdapter,
    86     };
    87 
    88     wgpuInstanceRequestAdapterWithBlock(m_backing, &backingOptions, makeBlockPtr([convertToBackingContext = m_convertToBackingContext.copyRef(), callback = WTFMove(callback)](WGPURequestAdapterStatus, WGPUAdapter adapter, const char*) mutable {
    89         callback(AdapterImpl::create(adapter, convertToBackingContext));
    90     }).get());
     66    return GPUImpl::create(instance, convertToBackingContext);
    9167}
    9268
  • branches/safari-614.1.10-branch/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUCreateImpl.h

    r293229 r293280  
    2929
    3030#include "WebGPU.h"
    31 #include <WebGPU/WebGPU.h>
    3231#include <wtf/CompletionHandler.h>
    33 #include <wtf/Deque.h>
    3432#include <wtf/Function.h>
     33#include <wtf/RefPtr.h>
    3534
    3635namespace PAL::WebGPU {
    3736
    38 class ConvertToBackingContext;
    39 
    40 class GPUImpl final : public GPU {
    41     WTF_MAKE_FAST_ALLOCATED;
    42 public:
    43     using WorkItem = CompletionHandler<void(void)>;
    44     using ScheduleWorkFunction = Function<void(WorkItem&&)>;
    45     PAL_EXPORT static RefPtr<GPUImpl> create(ScheduleWorkFunction&&);
    46 
    47     static Ref<GPUImpl> create(WGPUInstance instance, ConvertToBackingContext& convertToBackingContext)
    48     {
    49         return adoptRef(*new GPUImpl(instance, convertToBackingContext));
    50     }
    51 
    52     virtual ~GPUImpl();
    53 
    54 private:
    55     friend class DowncastConvertToBackingContext;
    56 
    57     GPUImpl(WGPUInstance, ConvertToBackingContext&);
    58 
    59     GPUImpl(const GPUImpl&) = delete;
    60     GPUImpl(GPUImpl&&) = delete;
    61     GPUImpl& operator=(const GPUImpl&) = delete;
    62     GPUImpl& operator=(GPUImpl&&) = delete;
    63 
    64     WGPUInstance backing() const { return m_backing; }
    65 
    66     void requestAdapter(const RequestAdapterOptions&, CompletionHandler<void(RefPtr<Adapter>&&)>&&) final;
    67 
    68     WGPUInstance m_backing { nullptr };
    69     Ref<ConvertToBackingContext> m_convertToBackingContext;
    70 };
     37using WorkItem = CompletionHandler<void(void)>;
     38using ScheduleWorkFunction = Function<void(WorkItem&&)>;
     39PAL_EXPORT RefPtr<GPU> create(ScheduleWorkFunction&&);
    7140
    7241} // namespace PAL::WebGPU
  • branches/safari-614.1.10-branch/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.cpp

    r291384 r293280  
    3434#include <wtf/BlockPtr.h>
    3535
    36 #if PLATFORM(COCOA)
    37 #include <wtf/darwin/WeakLinking.h>
    38 
    39 WTF_WEAK_LINK_FORCE_IMPORT(wgpuCreateInstance);
    40 #endif
    41 
    4236namespace PAL::WebGPU {
    43 
    44 RefPtr<GPUImpl> GPUImpl::create(ScheduleWorkFunction&& scheduleWorkFunction)
    45 {
    46     auto scheduleWorkBlock = makeBlockPtr([scheduleWorkFunction = WTFMove(scheduleWorkFunction)](WGPUWorkItem workItem)
    47     {
    48         scheduleWorkFunction(makeBlockPtr(WTFMove(workItem)));
    49     });
    50     WGPUInstanceCocoaDescriptor cocoaDescriptor {
    51         {
    52             nullptr,
    53             static_cast<WGPUSType>(WGPUSTypeExtended_InstanceCocoaDescriptor),
    54         },
    55         scheduleWorkBlock.get(),
    56     };
    57     WGPUInstanceDescriptor descriptor = { &cocoaDescriptor.chain };
    58 
    59     if (!&wgpuCreateInstance)
    60         return nullptr;
    61     auto instance = wgpuCreateInstance(&descriptor);
    62     if (!instance)
    63         return nullptr;
    64     auto convertToBackingContext = DowncastConvertToBackingContext::create();
    65     return create(instance, convertToBackingContext);
    66 }
    6737
    6838GPUImpl::GPUImpl(WGPUInstance instance, ConvertToBackingContext& convertToBackingContext)
  • branches/safari-614.1.10-branch/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.h

    r291384 r293280  
    4141    WTF_MAKE_FAST_ALLOCATED;
    4242public:
    43     using WorkItem = CompletionHandler<void(void)>;
    44     using ScheduleWorkFunction = Function<void(WorkItem&&)>;
    45     PAL_EXPORT static RefPtr<GPUImpl> create(ScheduleWorkFunction&&);
    46 
    4743    static Ref<GPUImpl> create(WGPUInstance instance, ConvertToBackingContext& convertToBackingContext)
    4844    {
  • branches/safari-614.1.10-branch/Source/WebKit/ChangeLog

    r292641 r293280  
     12022-04-22  Russell Epstein  <repstein@apple.com>
     2
     3        Cherry-pick r293106. rdar://problem/91740931
     4
     5    [WebGPU] WebKit and WebKitLegacy shouldn't need to know about WebGPU.framework
     6    https://bugs.webkit.org/show_bug.cgi?id=239528
     7    <rdar://problem/91740931>
     8   
     9    Unreviewed build fix.
     10   
     11    Source/WebCore/PAL:
     12   
     13    WebKit and WebKitLegacy create a WebGPU implementation from pal/graphics/WebGPU/Impl. This implementation
     14    knows about WebGPU.framework. However, the create() function doesn't need to know about WebGPU.framework,
     15    and its header doesn't need to include <WebGPU/WebGPU.h>. Only the .cpp files need to know about
     16    <WebGPU/WebGPU.h>, and those .cpp files are invisible from WebKit and WebKitLegacy's points of view. So,
     17    this patch splits the PAL header into:
     18    1. A header which includes a creation function, but doesn't know about WebGPU.framework, and
     19    2. A header which knows about WebGPU.framework, but doesn't hold the creation function used by WebKit or
     20           WebKitLegacy.
     21   
     22    This fixes one of Apple's internal builds.
     23   
     24    * PAL.xcodeproj/project.pbxproj:
     25    * pal/graphics/WebGPU/Impl/WebGPUCreateImpl.cpp: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.cpp.
     26    (PAL::WebGPU::create):
     27    * pal/graphics/WebGPU/Impl/WebGPUCreateImpl.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.h.
     28    * pal/graphics/WebGPU/Impl/WebGPUImpl.cpp:
     29    (PAL::WebGPU::GPUImpl::create): Deleted.
     30    * pal/graphics/WebGPU/Impl/WebGPUImpl.h:
     31   
     32    Source/WebKit:
     33   
     34    * GPUProcess/graphics/WebGPU/RemoteGPU.cpp:
     35    (WebKit::RemoteGPU::workQueueInitialize):
     36    * WebProcess/WebCoreSupport/WebChromeClient.cpp:
     37    (WebKit::WebChromeClient::createGPUForWebGPU const):
     38   
     39    Source/WebKitLegacy/mac:
     40   
     41    * WebCoreSupport/WebChromeClient.mm:
     42    (WebChromeClient::createGPUForWebGPU const):
     43   
     44    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@293106 268f45cc-cd09-0410-ab3c-d52691b4dbfc
     45
     46    2022-04-20  Myles C. Maxfield  <mmaxfield@apple.com>
     47
     48            [WebGPU] WebKit and WebKitLegacy shouldn't need to know about WebGPU.framework
     49            https://bugs.webkit.org/show_bug.cgi?id=239528
     50            <rdar://problem/91740931>
     51
     52            Unreviewed build fix.
     53
     54            * GPUProcess/graphics/WebGPU/RemoteGPU.cpp:
     55            (WebKit::RemoteGPU::workQueueInitialize):
     56            * WebProcess/WebCoreSupport/WebChromeClient.cpp:
     57            (WebKit::WebChromeClient::createGPUForWebGPU const):
     58
    1592022-04-08  Chris Dumez  <cdumez@apple.com>
    260
  • branches/safari-614.1.10-branch/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.cpp

    r291323 r293280  
    4040
    4141#if HAVE(WEBGPU_IMPLEMENTATION)
    42 #import <pal/graphics/WebGPU/Impl/WebGPUImpl.h>
     42#import <pal/graphics/WebGPU/Impl/WebGPUCreateImpl.h>
    4343#endif
    4444
     
    8585    // (because the callbacks handle resource cleanup, etc.).
    8686    // The retain cycle is broken in workQueueUninitialize().
    87     auto backing = PAL::WebGPU::GPUImpl::create([protectedThis = Ref { *this }](PAL::WebGPU::GPUImpl::WorkItem&& workItem) {
     87    auto backing = PAL::WebGPU::create([protectedThis = Ref { *this }](PAL::WebGPU::WorkItem&& workItem) {
    8888        protectedThis->workQueue().dispatch(WTFMove(workItem));
    8989    });
  • branches/safari-614.1.10-branch/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp

    r292557 r293280  
    9595
    9696#if HAVE(WEBGPU_IMPLEMENTATION)
    97 #import <pal/graphics/WebGPU/Impl/WebGPUImpl.h>
     97#import <pal/graphics/WebGPU/Impl/WebGPUCreateImpl.h>
    9898#endif
    9999
     
    965965    return RemoteGPUProxy::create(WebProcess::singleton().ensureGPUProcessConnection(), WebGPU::DowncastConvertToBackingContext::create(), WebGPUIdentifier::generate(), m_page.ensureRemoteRenderingBackendProxy().ensureBackendCreated());
    966966#else
    967     return PAL::WebGPU::GPUImpl::create([](PAL::WebGPU::GPUImpl::WorkItem&& workItem) {
     967    return PAL::WebGPU::create([](PAL::WebGPU::WorkItem&& workItem) {
    968968        callOnMainRunLoop(WTFMove(workItem));
    969969    });
  • branches/safari-614.1.10-branch/Source/WebKitLegacy/mac/ChangeLog

    r292640 r293280  
     12022-04-22  Russell Epstein  <repstein@apple.com>
     2
     3        Cherry-pick r293106. rdar://problem/91740931
     4
     5    [WebGPU] WebKit and WebKitLegacy shouldn't need to know about WebGPU.framework
     6    https://bugs.webkit.org/show_bug.cgi?id=239528
     7    <rdar://problem/91740931>
     8   
     9    Unreviewed build fix.
     10   
     11    Source/WebCore/PAL:
     12   
     13    WebKit and WebKitLegacy create a WebGPU implementation from pal/graphics/WebGPU/Impl. This implementation
     14    knows about WebGPU.framework. However, the create() function doesn't need to know about WebGPU.framework,
     15    and its header doesn't need to include <WebGPU/WebGPU.h>. Only the .cpp files need to know about
     16    <WebGPU/WebGPU.h>, and those .cpp files are invisible from WebKit and WebKitLegacy's points of view. So,
     17    this patch splits the PAL header into:
     18    1. A header which includes a creation function, but doesn't know about WebGPU.framework, and
     19    2. A header which knows about WebGPU.framework, but doesn't hold the creation function used by WebKit or
     20           WebKitLegacy.
     21   
     22    This fixes one of Apple's internal builds.
     23   
     24    * PAL.xcodeproj/project.pbxproj:
     25    * pal/graphics/WebGPU/Impl/WebGPUCreateImpl.cpp: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.cpp.
     26    (PAL::WebGPU::create):
     27    * pal/graphics/WebGPU/Impl/WebGPUCreateImpl.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.h.
     28    * pal/graphics/WebGPU/Impl/WebGPUImpl.cpp:
     29    (PAL::WebGPU::GPUImpl::create): Deleted.
     30    * pal/graphics/WebGPU/Impl/WebGPUImpl.h:
     31   
     32    Source/WebKit:
     33   
     34    * GPUProcess/graphics/WebGPU/RemoteGPU.cpp:
     35    (WebKit::RemoteGPU::workQueueInitialize):
     36    * WebProcess/WebCoreSupport/WebChromeClient.cpp:
     37    (WebKit::WebChromeClient::createGPUForWebGPU const):
     38   
     39    Source/WebKitLegacy/mac:
     40   
     41    * WebCoreSupport/WebChromeClient.mm:
     42    (WebChromeClient::createGPUForWebGPU const):
     43   
     44    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@293106 268f45cc-cd09-0410-ab3c-d52691b4dbfc
     45
     46    2022-04-20  Myles C. Maxfield  <mmaxfield@apple.com>
     47
     48            [WebGPU] WebKit and WebKitLegacy shouldn't need to know about WebGPU.framework
     49            https://bugs.webkit.org/show_bug.cgi?id=239528
     50            <rdar://problem/91740931>
     51
     52            Unreviewed build fix.
     53
     54            * WebCoreSupport/WebChromeClient.mm:
     55            (WebChromeClient::createGPUForWebGPU const):
     56
    1572022-04-08  Elliott Williams  <emw@apple.com>
    258
  • branches/safari-614.1.10-branch/Source/WebKitLegacy/mac/WebCoreSupport/WebChromeClient.mm

    r291501 r293280  
    9797
    9898#if HAVE(WEBGPU_IMPLEMENTATION)
    99 #import <pal/graphics/WebGPU/Impl/WebGPUImpl.h>
     99#import <pal/graphics/WebGPU/Impl/WebGPUCreateImpl.h>
    100100#endif
    101101
     
    11651165{
    11661166#if HAVE(WEBGPU_IMPLEMENTATION)
    1167     return PAL::WebGPU::GPUImpl::create([](PAL::WebGPU::GPUImpl::WorkItem&& workItem) {
     1167    return PAL::WebGPU::create([](PAL::WebGPU::WorkItem&& workItem) {
    11681168        callOnMainRunLoop(WTFMove(workItem));
    11691169    });
Note: See TracChangeset for help on using the changeset viewer.