Diff
Modified: branches/safari-614.1.10-branch/Source/WebCore/PAL/ChangeLog (293279 => 293280)
--- branches/safari-614.1.10-branch/Source/WebCore/PAL/ChangeLog 2022-04-23 02:23:36 UTC (rev 293279)
+++ branches/safari-614.1.10-branch/Source/WebCore/PAL/ChangeLog 2022-04-23 02:42:36 UTC (rev 293280)
@@ -1,3 +1,75 @@
+2022-04-22 Russell Epstein <[email protected]>
+
+ 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
+
+ 2022-04-20 Myles C. Maxfield <[email protected]>
+
+ [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.
+
+ 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:
+
2022-04-08 Elliott Williams <[email protected]>
[Xcode] Avoid targeting 32-bit iOS and Mac architectures
Modified: branches/safari-614.1.10-branch/Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj (293279 => 293280)
--- branches/safari-614.1.10-branch/Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj 2022-04-23 02:23:36 UTC (rev 293279)
+++ branches/safari-614.1.10-branch/Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj 2022-04-23 02:42:36 UTC (rev 293280)
@@ -60,6 +60,8 @@
1C5C57E92757318E003B540D /* TextEncodingRegistryMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1C5C57E82757318D003B540D /* TextEncodingRegistryMac.mm */; };
1C77C8C925D7972000635E0C /* CoreTextSoftLink.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1C77C8C725D7972000635E0C /* CoreTextSoftLink.cpp */; };
1C77C8CE25D7A4A300635E0C /* OTSVGTable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1C77C8CD25D7A4A300635E0C /* OTSVGTable.cpp */; };
+ 1CCA5EFF280FABB4008A6F78 /* WebGPUCreateImpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1CCA5EFD280FABB4008A6F78 /* WebGPUCreateImpl.cpp */; };
+ 1CCA5F00280FABB4008A6F78 /* WebGPUCreateImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1CCA5EFE280FABB4008A6F78 /* WebGPUCreateImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
1D2B413425F05E3500A3F70A /* ClockGeneric.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1D2B413225F05E3400A3F70A /* ClockGeneric.cpp */; };
293EE4A824154F8F0047493D /* AccessibilitySupportSoftLink.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 293EE4A624154F8F0047493D /* AccessibilitySupportSoftLink.cpp */; };
2E1342CD215AA10A007199D2 /* UIKitSoftLink.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2E1342CB215AA10A007199D2 /* UIKitSoftLink.mm */; };
@@ -112,30 +114,30 @@
DD20DD2527BC90D60093D175 /* UsageTrackingSoftLink.h in Headers */ = {isa = PBXBuildFile; fileRef = 07611DB4243FA5BE00D80704 /* UsageTrackingSoftLink.h */; settings = {ATTRIBUTES = (Private, ); }; };
DD20DD2627BC90D60093D175 /* VisionKitCoreSoftLink.h in Headers */ = {isa = PBXBuildFile; fileRef = F46B8C4B267408FA007A6554 /* VisionKitCoreSoftLink.h */; settings = {ATTRIBUTES = (Private, ); }; };
DD20DD2727BC90D60093D175 /* CryptoDigest.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C09D0521E31C44100725F18 /* CryptoDigest.h */; settings = {ATTRIBUTES = (Private, ); }; };
- DD20DD2827BC90D60093D175 /* WebGPUAdapterImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6AE273F4245004B17B0 /* WebGPUAdapterImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
- DD20DD2927BC90D60093D175 /* WebGPUBindGroupImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A1273F4243004B17B0 /* WebGPUBindGroupImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
- DD20DD2A27BC90D60093D175 /* WebGPUBindGroupLayoutImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E69C273F4243004B17B0 /* WebGPUBindGroupLayoutImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
- DD20DD2B27BC90D60093D175 /* WebGPUBufferImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A2273F4243004B17B0 /* WebGPUBufferImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
- DD20DD2C27BC90D60093D175 /* WebGPUCommandBufferImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A4273F4244004B17B0 /* WebGPUCommandBufferImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
- DD20DD2D27BC90D60093D175 /* WebGPUCommandEncoderImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6AB273F4245004B17B0 /* WebGPUCommandEncoderImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
- DD20DD2E27BC90D60093D175 /* WebGPUComputePassEncoderImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E69E273F4243004B17B0 /* WebGPUComputePassEncoderImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
- DD20DD2F27BC90D60093D175 /* WebGPUComputePipelineImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6AF273F4245004B17B0 /* WebGPUComputePipelineImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
- DD20DD3027BC90D60093D175 /* WebGPUConvertToBackingContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6B6273F85BC004B17B0 /* WebGPUConvertToBackingContext.h */; settings = {ATTRIBUTES = (Private, ); }; };
- DD20DD3127BC90D60093D175 /* WebGPUDeviceImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6AD273F4245004B17B0 /* WebGPUDeviceImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
- DD20DD3227BC90D60093D175 /* WebGPUDowncastConvertToBackingContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C36C52D2743011A006DA4C1 /* WebGPUDowncastConvertToBackingContext.h */; settings = {ATTRIBUTES = (Private, ); }; };
- DD20DD3327BC90D60093D175 /* WebGPUExternalTextureImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6BB27405E3C004B17B0 /* WebGPUExternalTextureImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
- DD20DD3427BC90D60093D175 /* WebGPUImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E69B273F4242004B17B0 /* WebGPUImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
- DD20DD3527BC90D60093D175 /* WebGPUPipelineLayoutImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E69D273F4243004B17B0 /* WebGPUPipelineLayoutImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
- DD20DD3627BC90D60093D175 /* WebGPUQuerySetImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A8273F4244004B17B0 /* WebGPUQuerySetImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
- DD20DD3727BC90D60093D175 /* WebGPUQueueImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A5273F4244004B17B0 /* WebGPUQueueImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
- DD20DD3827BC90D60093D175 /* WebGPURenderBundleEncoderImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E69A273F4242004B17B0 /* WebGPURenderBundleEncoderImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
- DD20DD3927BC90D60093D175 /* WebGPURenderBundleImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A6273F4244004B17B0 /* WebGPURenderBundleImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
- DD20DD3A27BC90D60093D175 /* WebGPURenderPassEncoderImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A3273F4244004B17B0 /* WebGPURenderPassEncoderImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
- DD20DD3B27BC90D60093D175 /* WebGPURenderPipelineImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A9273F4244004B17B0 /* WebGPURenderPipelineImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
- DD20DD3C27BC90D60093D175 /* WebGPUSamplerImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A7273F4244004B17B0 /* WebGPUSamplerImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
- DD20DD3D27BC90D60093D175 /* WebGPUShaderModuleImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6AA273F4245004B17B0 /* WebGPUShaderModuleImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
- DD20DD3E27BC90D60093D175 /* WebGPUTextureImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E69F273F4243004B17B0 /* WebGPUTextureImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
- DD20DD3F27BC90D70093D175 /* WebGPUTextureViewImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6AC273F4245004B17B0 /* WebGPUTextureViewImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ DD20DD2827BC90D60093D175 /* WebGPUAdapterImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6AE273F4245004B17B0 /* WebGPUAdapterImpl.h */; };
+ DD20DD2927BC90D60093D175 /* WebGPUBindGroupImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A1273F4243004B17B0 /* WebGPUBindGroupImpl.h */; };
+ DD20DD2A27BC90D60093D175 /* WebGPUBindGroupLayoutImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E69C273F4243004B17B0 /* WebGPUBindGroupLayoutImpl.h */; };
+ DD20DD2B27BC90D60093D175 /* WebGPUBufferImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A2273F4243004B17B0 /* WebGPUBufferImpl.h */; };
+ DD20DD2C27BC90D60093D175 /* WebGPUCommandBufferImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A4273F4244004B17B0 /* WebGPUCommandBufferImpl.h */; };
+ DD20DD2D27BC90D60093D175 /* WebGPUCommandEncoderImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6AB273F4245004B17B0 /* WebGPUCommandEncoderImpl.h */; };
+ DD20DD2E27BC90D60093D175 /* WebGPUComputePassEncoderImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E69E273F4243004B17B0 /* WebGPUComputePassEncoderImpl.h */; };
+ DD20DD2F27BC90D60093D175 /* WebGPUComputePipelineImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6AF273F4245004B17B0 /* WebGPUComputePipelineImpl.h */; };
+ DD20DD3027BC90D60093D175 /* WebGPUConvertToBackingContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6B6273F85BC004B17B0 /* WebGPUConvertToBackingContext.h */; };
+ DD20DD3127BC90D60093D175 /* WebGPUDeviceImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6AD273F4245004B17B0 /* WebGPUDeviceImpl.h */; };
+ DD20DD3227BC90D60093D175 /* WebGPUDowncastConvertToBackingContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C36C52D2743011A006DA4C1 /* WebGPUDowncastConvertToBackingContext.h */; };
+ DD20DD3327BC90D60093D175 /* WebGPUExternalTextureImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6BB27405E3C004B17B0 /* WebGPUExternalTextureImpl.h */; };
+ DD20DD3427BC90D60093D175 /* WebGPUImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E69B273F4242004B17B0 /* WebGPUImpl.h */; };
+ DD20DD3527BC90D60093D175 /* WebGPUPipelineLayoutImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E69D273F4243004B17B0 /* WebGPUPipelineLayoutImpl.h */; };
+ DD20DD3627BC90D60093D175 /* WebGPUQuerySetImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A8273F4244004B17B0 /* WebGPUQuerySetImpl.h */; };
+ DD20DD3727BC90D60093D175 /* WebGPUQueueImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A5273F4244004B17B0 /* WebGPUQueueImpl.h */; };
+ DD20DD3827BC90D60093D175 /* WebGPURenderBundleEncoderImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E69A273F4242004B17B0 /* WebGPURenderBundleEncoderImpl.h */; };
+ DD20DD3927BC90D60093D175 /* WebGPURenderBundleImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A6273F4244004B17B0 /* WebGPURenderBundleImpl.h */; };
+ DD20DD3A27BC90D60093D175 /* WebGPURenderPassEncoderImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A3273F4244004B17B0 /* WebGPURenderPassEncoderImpl.h */; };
+ DD20DD3B27BC90D60093D175 /* WebGPURenderPipelineImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A9273F4244004B17B0 /* WebGPURenderPipelineImpl.h */; };
+ DD20DD3C27BC90D60093D175 /* WebGPUSamplerImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A7273F4244004B17B0 /* WebGPUSamplerImpl.h */; };
+ DD20DD3D27BC90D60093D175 /* WebGPUShaderModuleImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6AA273F4245004B17B0 /* WebGPUShaderModuleImpl.h */; };
+ DD20DD3E27BC90D60093D175 /* WebGPUTextureImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E69F273F4243004B17B0 /* WebGPUTextureImpl.h */; };
+ DD20DD3F27BC90D70093D175 /* WebGPUTextureViewImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6AC273F4245004B17B0 /* WebGPUTextureViewImpl.h */; };
DD20DD4027BC90D70093D175 /* WebGPU.h in Headers */ = {isa = PBXBuildFile; fileRef = 1CC5E47127374948006F6FF4 /* WebGPU.h */; settings = {ATTRIBUTES = (Private, ); }; };
DD20DD4127BC90D70093D175 /* WebGPUAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 1CC5E47F27374949006F6FF4 /* WebGPUAdapter.h */; settings = {ATTRIBUTES = (Private, ); }; };
DD20DD4227BC90D70093D175 /* WebGPUAddressMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 1CC5E46C27374948006F6FF4 /* WebGPUAddressMode.h */; settings = {ATTRIBUTES = (Private, ); }; };
@@ -827,6 +829,8 @@
1CC5E4912737494A006F6FF4 /* WebGPUExternalTextureDescriptor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebGPUExternalTextureDescriptor.h; sourceTree = "<group>"; };
1CC5E4922737494A006F6FF4 /* WebGPURenderBundle.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebGPURenderBundle.h; sourceTree = "<group>"; };
1CC5E4932737494A006F6FF4 /* WebGPUCanvasCompositingAlphaMode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebGPUCanvasCompositingAlphaMode.h; sourceTree = "<group>"; };
+ 1CCA5EFD280FABB4008A6F78 /* WebGPUCreateImpl.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = WebGPUCreateImpl.cpp; sourceTree = "<group>"; };
+ 1CCA5EFE280FABB4008A6F78 /* WebGPUCreateImpl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebGPUCreateImpl.h; sourceTree = "<group>"; };
1CCEE4F420D871930047B097 /* CoreUISPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CoreUISPI.h; sourceTree = "<group>"; };
1CCEE4F620D8743F0047B097 /* NSAppearanceSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSAppearanceSPI.h; sourceTree = "<group>"; };
1CEF45AA27BB101F00C3A6BC /* WebGPUShaderModuleCompilationHint.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebGPUShaderModuleCompilationHint.h; sourceTree = "<group>"; };
@@ -1265,6 +1269,8 @@
1C19E6AF273F4245004B17B0 /* WebGPUComputePipelineImpl.h */,
1C19E6B4273F85AF004B17B0 /* WebGPUConvertToBackingContext.cpp */,
1C19E6B6273F85BC004B17B0 /* WebGPUConvertToBackingContext.h */,
+ 1CCA5EFD280FABB4008A6F78 /* WebGPUCreateImpl.cpp */,
+ 1CCA5EFE280FABB4008A6F78 /* WebGPUCreateImpl.h */,
1C19E666273F3FFA004B17B0 /* WebGPUDeviceImpl.cpp */,
1C19E6AD273F4245004B17B0 /* WebGPUDeviceImpl.h */,
1C36C52C2743011A006DA4C1 /* WebGPUDowncastConvertToBackingContext.cpp */,
@@ -1711,6 +1717,7 @@
DD20DD6327BC90D70093D175 /* WebGPUComputePassTimestampWrites.h in Headers */,
DD20DD6427BC90D70093D175 /* WebGPUComputePipeline.h in Headers */,
DD20DD6527BC90D70093D175 /* WebGPUComputePipelineDescriptor.h in Headers */,
+ 1CCA5F00280FABB4008A6F78 /* WebGPUCreateImpl.h in Headers */,
DD20DD6627BC90D70093D175 /* WebGPUCullMode.h in Headers */,
DD20DD6727BC90D70093D175 /* WebGPUDepthStencilState.h in Headers */,
DD20DD6827BC90D70093D175 /* WebGPUDevice.h in Headers */,
@@ -2133,6 +2140,7 @@
1C19E660273F3FE2004B17B0 /* WebGPUComputePassEncoderImpl.cpp in Sources */,
1C19E664273F3FEE004B17B0 /* WebGPUComputePipelineImpl.cpp in Sources */,
1C19E6B5273F85AF004B17B0 /* WebGPUConvertToBackingContext.cpp in Sources */,
+ 1CCA5EFF280FABB4008A6F78 /* WebGPUCreateImpl.cpp in Sources */,
1C19E668273F3FFA004B17B0 /* WebGPUDeviceImpl.cpp in Sources */,
1C36C52E2743011A006DA4C1 /* WebGPUDowncastConvertToBackingContext.cpp in Sources */,
1C19E6BA27405E32004B17B0 /* WebGPUExternalTextureImpl.cpp in Sources */,
Copied: branches/safari-614.1.10-branch/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUCreateImpl.cpp (from rev 293229, branches/safari-614.1.10-branch/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.cpp) (0 => 293280)
--- branches/safari-614.1.10-branch/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUCreateImpl.cpp (rev 0)
+++ branches/safari-614.1.10-branch/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUCreateImpl.cpp 2022-04-23 02:42:36 UTC (rev 293280)
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2021-2022 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * 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.
+ */
+
+#include "config.h"
+#include "WebGPUCreateImpl.h"
+
+#if HAVE(WEBGPU_IMPLEMENTATION)
+
+#include "WebGPUAdapterImpl.h"
+#include "WebGPUDowncastConvertToBackingContext.h"
+#include "WebGPUImpl.h"
+#include <WebGPU/WebGPUExt.h>
+#include <wtf/BlockPtr.h>
+
+#if PLATFORM(COCOA)
+#include <wtf/darwin/WeakLinking.h>
+
+WTF_WEAK_LINK_FORCE_IMPORT(wgpuCreateInstance);
+#endif
+
+namespace PAL::WebGPU {
+
+RefPtr<GPU> create(ScheduleWorkFunction&& scheduleWorkFunction)
+{
+ auto scheduleWorkBlock = makeBlockPtr([scheduleWorkFunction = WTFMove(scheduleWorkFunction)](WGPUWorkItem workItem)
+ {
+ scheduleWorkFunction(makeBlockPtr(WTFMove(workItem)));
+ });
+ WGPUInstanceCocoaDescriptor cocoaDescriptor {
+ {
+ nullptr,
+ static_cast<WGPUSType>(WGPUSTypeExtended_InstanceCocoaDescriptor),
+ },
+ scheduleWorkBlock.get(),
+ };
+ WGPUInstanceDescriptor descriptor = { &cocoaDescriptor.chain };
+
+ if (!&wgpuCreateInstance)
+ return nullptr;
+ auto instance = wgpuCreateInstance(&descriptor);
+ if (!instance)
+ return nullptr;
+ auto convertToBackingContext = DowncastConvertToBackingContext::create();
+ return GPUImpl::create(instance, convertToBackingContext);
+}
+
+} // namespace PAL::WebGPU
+
+#endif // HAVE(WEBGPU_IMPLEMENTATION)
Copied: branches/safari-614.1.10-branch/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUCreateImpl.h (from rev 293229, branches/safari-614.1.10-branch/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.h) (0 => 293280)
--- branches/safari-614.1.10-branch/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUCreateImpl.h (rev 0)
+++ branches/safari-614.1.10-branch/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUCreateImpl.h 2022-04-23 02:42:36 UTC (rev 293280)
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2021 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 HAVE(WEBGPU_IMPLEMENTATION)
+
+#include "WebGPU.h"
+#include <wtf/CompletionHandler.h>
+#include <wtf/Function.h>
+#include <wtf/RefPtr.h>
+
+namespace PAL::WebGPU {
+
+using WorkItem = CompletionHandler<void(void)>;
+using ScheduleWorkFunction = Function<void(WorkItem&&)>;
+PAL_EXPORT RefPtr<GPU> create(ScheduleWorkFunction&&);
+
+} // namespace PAL::WebGPU
+
+#endif // HAVE(WEBGPU_IMPLEMENTATION)
Modified: branches/safari-614.1.10-branch/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.cpp (293279 => 293280)
--- branches/safari-614.1.10-branch/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.cpp 2022-04-23 02:23:36 UTC (rev 293279)
+++ branches/safari-614.1.10-branch/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.cpp 2022-04-23 02:42:36 UTC (rev 293280)
@@ -33,38 +33,8 @@
#include <WebGPU/WebGPUExt.h>
#include <wtf/BlockPtr.h>
-#if PLATFORM(COCOA)
-#include <wtf/darwin/WeakLinking.h>
-
-WTF_WEAK_LINK_FORCE_IMPORT(wgpuCreateInstance);
-#endif
-
namespace PAL::WebGPU {
-RefPtr<GPUImpl> GPUImpl::create(ScheduleWorkFunction&& scheduleWorkFunction)
-{
- auto scheduleWorkBlock = makeBlockPtr([scheduleWorkFunction = WTFMove(scheduleWorkFunction)](WGPUWorkItem workItem)
- {
- scheduleWorkFunction(makeBlockPtr(WTFMove(workItem)));
- });
- WGPUInstanceCocoaDescriptor cocoaDescriptor {
- {
- nullptr,
- static_cast<WGPUSType>(WGPUSTypeExtended_InstanceCocoaDescriptor),
- },
- scheduleWorkBlock.get(),
- };
- WGPUInstanceDescriptor descriptor = { &cocoaDescriptor.chain };
-
- if (!&wgpuCreateInstance)
- return nullptr;
- auto instance = wgpuCreateInstance(&descriptor);
- if (!instance)
- return nullptr;
- auto convertToBackingContext = DowncastConvertToBackingContext::create();
- return create(instance, convertToBackingContext);
-}
-
GPUImpl::GPUImpl(WGPUInstance instance, ConvertToBackingContext& convertToBackingContext)
: m_backing(instance)
, m_convertToBackingContext(convertToBackingContext)
Modified: branches/safari-614.1.10-branch/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.h (293279 => 293280)
--- branches/safari-614.1.10-branch/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.h 2022-04-23 02:23:36 UTC (rev 293279)
+++ branches/safari-614.1.10-branch/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.h 2022-04-23 02:42:36 UTC (rev 293280)
@@ -40,10 +40,6 @@
class GPUImpl final : public GPU {
WTF_MAKE_FAST_ALLOCATED;
public:
- using WorkItem = CompletionHandler<void(void)>;
- using ScheduleWorkFunction = Function<void(WorkItem&&)>;
- PAL_EXPORT static RefPtr<GPUImpl> create(ScheduleWorkFunction&&);
-
static Ref<GPUImpl> create(WGPUInstance instance, ConvertToBackingContext& convertToBackingContext)
{
return adoptRef(*new GPUImpl(instance, convertToBackingContext));
Modified: branches/safari-614.1.10-branch/Source/WebKit/ChangeLog (293279 => 293280)
--- branches/safari-614.1.10-branch/Source/WebKit/ChangeLog 2022-04-23 02:23:36 UTC (rev 293279)
+++ branches/safari-614.1.10-branch/Source/WebKit/ChangeLog 2022-04-23 02:42:36 UTC (rev 293280)
@@ -1,3 +1,61 @@
+2022-04-22 Russell Epstein <[email protected]>
+
+ 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
+
+ 2022-04-20 Myles C. Maxfield <[email protected]>
+
+ [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.
+
+ * GPUProcess/graphics/WebGPU/RemoteGPU.cpp:
+ (WebKit::RemoteGPU::workQueueInitialize):
+ * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+ (WebKit::WebChromeClient::createGPUForWebGPU const):
+
2022-04-08 Chris Dumez <[email protected]>
Drop unused pluginReplacementScriptObject
Modified: branches/safari-614.1.10-branch/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.cpp (293279 => 293280)
--- branches/safari-614.1.10-branch/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.cpp 2022-04-23 02:23:36 UTC (rev 293279)
+++ branches/safari-614.1.10-branch/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.cpp 2022-04-23 02:42:36 UTC (rev 293280)
@@ -39,7 +39,7 @@
#include <pal/graphics/WebGPU/WebGPUAdapter.h>
#if HAVE(WEBGPU_IMPLEMENTATION)
-#import <pal/graphics/WebGPU/Impl/WebGPUImpl.h>
+#import <pal/graphics/WebGPU/Impl/WebGPUCreateImpl.h>
#endif
namespace WebKit {
@@ -84,7 +84,7 @@
// The retain cycle is required because callbacks need to execute even if this is disowned
// (because the callbacks handle resource cleanup, etc.).
// The retain cycle is broken in workQueueUninitialize().
- auto backing = PAL::WebGPU::GPUImpl::create([protectedThis = Ref { *this }](PAL::WebGPU::GPUImpl::WorkItem&& workItem) {
+ auto backing = PAL::WebGPU::create([protectedThis = Ref { *this }](PAL::WebGPU::WorkItem&& workItem) {
protectedThis->workQueue().dispatch(WTFMove(workItem));
});
#else
Modified: branches/safari-614.1.10-branch/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp (293279 => 293280)
--- branches/safari-614.1.10-branch/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp 2022-04-23 02:23:36 UTC (rev 293279)
+++ branches/safari-614.1.10-branch/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp 2022-04-23 02:42:36 UTC (rev 293280)
@@ -94,7 +94,7 @@
#include <WebCore/TextIndicator.h>
#if HAVE(WEBGPU_IMPLEMENTATION)
-#import <pal/graphics/WebGPU/Impl/WebGPUImpl.h>
+#import <pal/graphics/WebGPU/Impl/WebGPUCreateImpl.h>
#endif
#if ENABLE(APPLE_PAY_AMS_UI)
@@ -964,7 +964,7 @@
#if ENABLE(GPU_PROCESS)
return RemoteGPUProxy::create(WebProcess::singleton().ensureGPUProcessConnection(), WebGPU::DowncastConvertToBackingContext::create(), WebGPUIdentifier::generate(), m_page.ensureRemoteRenderingBackendProxy().ensureBackendCreated());
#else
- return PAL::WebGPU::GPUImpl::create([](PAL::WebGPU::GPUImpl::WorkItem&& workItem) {
+ return PAL::WebGPU::create([](PAL::WebGPU::WorkItem&& workItem) {
callOnMainRunLoop(WTFMove(workItem));
});
#endif
Modified: branches/safari-614.1.10-branch/Source/WebKitLegacy/mac/ChangeLog (293279 => 293280)
--- branches/safari-614.1.10-branch/Source/WebKitLegacy/mac/ChangeLog 2022-04-23 02:23:36 UTC (rev 293279)
+++ branches/safari-614.1.10-branch/Source/WebKitLegacy/mac/ChangeLog 2022-04-23 02:42:36 UTC (rev 293280)
@@ -1,3 +1,59 @@
+2022-04-22 Russell Epstein <[email protected]>
+
+ 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
+
+ 2022-04-20 Myles C. Maxfield <[email protected]>
+
+ [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.
+
+ * WebCoreSupport/WebChromeClient.mm:
+ (WebChromeClient::createGPUForWebGPU const):
+
2022-04-08 Elliott Williams <[email protected]>
[Xcode] Avoid targeting 32-bit iOS and Mac architectures
Modified: branches/safari-614.1.10-branch/Source/WebKitLegacy/mac/WebCoreSupport/WebChromeClient.mm (293279 => 293280)
--- branches/safari-614.1.10-branch/Source/WebKitLegacy/mac/WebCoreSupport/WebChromeClient.mm 2022-04-23 02:23:36 UTC (rev 293279)
+++ branches/safari-614.1.10-branch/Source/WebKitLegacy/mac/WebCoreSupport/WebChromeClient.mm 2022-04-23 02:42:36 UTC (rev 293280)
@@ -96,7 +96,7 @@
#import <wtf/text/WTFString.h>
#if HAVE(WEBGPU_IMPLEMENTATION)
-#import <pal/graphics/WebGPU/Impl/WebGPUImpl.h>
+#import <pal/graphics/WebGPU/Impl/WebGPUCreateImpl.h>
#endif
#if PLATFORM(IOS_FAMILY) && ENABLE(GEOLOCATION)
@@ -1164,7 +1164,7 @@
RefPtr<PAL::WebGPU::GPU> WebChromeClient::createGPUForWebGPU() const
{
#if HAVE(WEBGPU_IMPLEMENTATION)
- return PAL::WebGPU::GPUImpl::create([](PAL::WebGPU::GPUImpl::WorkItem&& workItem) {
+ return PAL::WebGPU::create([](PAL::WebGPU::WorkItem&& workItem) {
callOnMainRunLoop(WTFMove(workItem));
});
#else