Changeset 293280 in webkit
- Timestamp:
- Apr 22, 2022, 7:42:36 PM (4 years ago)
- Location:
- branches/safari-614.1.10-branch/Source
- Files:
-
- 9 edited
- 2 copied
-
WebCore/PAL/ChangeLog (modified) (1 diff)
-
WebCore/PAL/PAL.xcodeproj/project.pbxproj (modified) (6 diffs)
-
WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUCreateImpl.cpp (copied) (copied from branches/safari-614.1.10-branch/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.cpp ) (4 diffs)
-
WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUCreateImpl.h (copied) (copied from branches/safari-614.1.10-branch/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.h ) (1 diff)
-
WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.cpp (modified) (1 diff)
-
WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.h (modified) (1 diff)
-
WebKit/ChangeLog (modified) (1 diff)
-
WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.cpp (modified) (2 diffs)
-
WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp (modified) (2 diffs)
-
WebKitLegacy/mac/ChangeLog (modified) (1 diff)
-
WebKitLegacy/mac/WebCoreSupport/WebChromeClient.mm (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/safari-614.1.10-branch/Source/WebCore/PAL/ChangeLog
r292640 r293280 1 2022-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 1 73 2022-04-08 Elliott Williams <emw@apple.com> 2 74 -
branches/safari-614.1.10-branch/Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj
r292444 r293280 61 61 1C77C8C925D7972000635E0C /* CoreTextSoftLink.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1C77C8C725D7972000635E0C /* CoreTextSoftLink.cpp */; }; 62 62 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, ); }; }; 63 65 1D2B413425F05E3500A3F70A /* ClockGeneric.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1D2B413225F05E3400A3F70A /* ClockGeneric.cpp */; }; 64 66 293EE4A824154F8F0047493D /* AccessibilitySupportSoftLink.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 293EE4A624154F8F0047493D /* AccessibilitySupportSoftLink.cpp */; }; … … 113 115 DD20DD2627BC90D60093D175 /* VisionKitCoreSoftLink.h in Headers */ = {isa = PBXBuildFile; fileRef = F46B8C4B267408FA007A6554 /* VisionKitCoreSoftLink.h */; settings = {ATTRIBUTES = (Private, ); }; }; 114 116 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 */; }; 139 141 DD20DD4027BC90D70093D175 /* WebGPU.h in Headers */ = {isa = PBXBuildFile; fileRef = 1CC5E47127374948006F6FF4 /* WebGPU.h */; settings = {ATTRIBUTES = (Private, ); }; }; 140 142 DD20DD4127BC90D70093D175 /* WebGPUAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 1CC5E47F27374949006F6FF4 /* WebGPUAdapter.h */; settings = {ATTRIBUTES = (Private, ); }; }; … … 828 830 1CC5E4922737494A006F6FF4 /* WebGPURenderBundle.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebGPURenderBundle.h; sourceTree = "<group>"; }; 829 831 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>"; }; 830 834 1CCEE4F420D871930047B097 /* CoreUISPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CoreUISPI.h; sourceTree = "<group>"; }; 831 835 1CCEE4F620D8743F0047B097 /* NSAppearanceSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSAppearanceSPI.h; sourceTree = "<group>"; }; … … 1266 1270 1C19E6B4273F85AF004B17B0 /* WebGPUConvertToBackingContext.cpp */, 1267 1271 1C19E6B6273F85BC004B17B0 /* WebGPUConvertToBackingContext.h */, 1272 1CCA5EFD280FABB4008A6F78 /* WebGPUCreateImpl.cpp */, 1273 1CCA5EFE280FABB4008A6F78 /* WebGPUCreateImpl.h */, 1268 1274 1C19E666273F3FFA004B17B0 /* WebGPUDeviceImpl.cpp */, 1269 1275 1C19E6AD273F4245004B17B0 /* WebGPUDeviceImpl.h */, … … 1712 1718 DD20DD6427BC90D70093D175 /* WebGPUComputePipeline.h in Headers */, 1713 1719 DD20DD6527BC90D70093D175 /* WebGPUComputePipelineDescriptor.h in Headers */, 1720 1CCA5F00280FABB4008A6F78 /* WebGPUCreateImpl.h in Headers */, 1714 1721 DD20DD6627BC90D70093D175 /* WebGPUCullMode.h in Headers */, 1715 1722 DD20DD6727BC90D70093D175 /* WebGPUDepthStencilState.h in Headers */, … … 2134 2141 1C19E664273F3FEE004B17B0 /* WebGPUComputePipelineImpl.cpp in Sources */, 2135 2142 1C19E6B5273F85AF004B17B0 /* WebGPUConvertToBackingContext.cpp in Sources */, 2143 1CCA5EFF280FABB4008A6F78 /* WebGPUCreateImpl.cpp in Sources */, 2136 2144 1C19E668273F3FFA004B17B0 /* WebGPUDeviceImpl.cpp in Sources */, 2137 2145 1C36C52E2743011A006DA4C1 /* WebGPUDowncastConvertToBackingContext.cpp in Sources */, -
branches/safari-614.1.10-branch/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUCreateImpl.cpp
r293229 r293280 25 25 26 26 #include "config.h" 27 #include "WebGPU Impl.h"27 #include "WebGPUCreateImpl.h" 28 28 29 29 #if HAVE(WEBGPU_IMPLEMENTATION) … … 31 31 #include "WebGPUAdapterImpl.h" 32 32 #include "WebGPUDowncastConvertToBackingContext.h" 33 #include "WebGPUImpl.h" 33 34 #include <WebGPU/WebGPUExt.h> 34 35 #include <wtf/BlockPtr.h> … … 42 43 namespace PAL::WebGPU { 43 44 44 RefPtr<GPU Impl> GPUImpl::create(ScheduleWorkFunction&& scheduleWorkFunction)45 RefPtr<GPU> create(ScheduleWorkFunction&& scheduleWorkFunction) 45 46 { 46 47 auto scheduleWorkBlock = makeBlockPtr([scheduleWorkFunction = WTFMove(scheduleWorkFunction)](WGPUWorkItem workItem) … … 63 64 return nullptr; 64 65 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); 91 67 } 92 68 -
branches/safari-614.1.10-branch/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUCreateImpl.h
r293229 r293280 29 29 30 30 #include "WebGPU.h" 31 #include <WebGPU/WebGPU.h>32 31 #include <wtf/CompletionHandler.h> 33 #include <wtf/Deque.h>34 32 #include <wtf/Function.h> 33 #include <wtf/RefPtr.h> 35 34 36 35 namespace PAL::WebGPU { 37 36 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 }; 37 using WorkItem = CompletionHandler<void(void)>; 38 using ScheduleWorkFunction = Function<void(WorkItem&&)>; 39 PAL_EXPORT RefPtr<GPU> create(ScheduleWorkFunction&&); 71 40 72 41 } // namespace PAL::WebGPU -
branches/safari-614.1.10-branch/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.cpp
r291384 r293280 34 34 #include <wtf/BlockPtr.h> 35 35 36 #if PLATFORM(COCOA)37 #include <wtf/darwin/WeakLinking.h>38 39 WTF_WEAK_LINK_FORCE_IMPORT(wgpuCreateInstance);40 #endif41 42 36 namespace 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 }67 37 68 38 GPUImpl::GPUImpl(WGPUInstance instance, ConvertToBackingContext& convertToBackingContext) -
branches/safari-614.1.10-branch/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.h
r291384 r293280 41 41 WTF_MAKE_FAST_ALLOCATED; 42 42 public: 43 using WorkItem = CompletionHandler<void(void)>;44 using ScheduleWorkFunction = Function<void(WorkItem&&)>;45 PAL_EXPORT static RefPtr<GPUImpl> create(ScheduleWorkFunction&&);46 47 43 static Ref<GPUImpl> create(WGPUInstance instance, ConvertToBackingContext& convertToBackingContext) 48 44 { -
branches/safari-614.1.10-branch/Source/WebKit/ChangeLog
r292641 r293280 1 2022-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 1 59 2022-04-08 Chris Dumez <cdumez@apple.com> 2 60 -
branches/safari-614.1.10-branch/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.cpp
r291323 r293280 40 40 41 41 #if HAVE(WEBGPU_IMPLEMENTATION) 42 #import <pal/graphics/WebGPU/Impl/WebGPU Impl.h>42 #import <pal/graphics/WebGPU/Impl/WebGPUCreateImpl.h> 43 43 #endif 44 44 … … 85 85 // (because the callbacks handle resource cleanup, etc.). 86 86 // 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) { 88 88 protectedThis->workQueue().dispatch(WTFMove(workItem)); 89 89 }); -
branches/safari-614.1.10-branch/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp
r292557 r293280 95 95 96 96 #if HAVE(WEBGPU_IMPLEMENTATION) 97 #import <pal/graphics/WebGPU/Impl/WebGPU Impl.h>97 #import <pal/graphics/WebGPU/Impl/WebGPUCreateImpl.h> 98 98 #endif 99 99 … … 965 965 return RemoteGPUProxy::create(WebProcess::singleton().ensureGPUProcessConnection(), WebGPU::DowncastConvertToBackingContext::create(), WebGPUIdentifier::generate(), m_page.ensureRemoteRenderingBackendProxy().ensureBackendCreated()); 966 966 #else 967 return PAL::WebGPU:: GPUImpl::create([](PAL::WebGPU::GPUImpl::WorkItem&& workItem) {967 return PAL::WebGPU::create([](PAL::WebGPU::WorkItem&& workItem) { 968 968 callOnMainRunLoop(WTFMove(workItem)); 969 969 }); -
branches/safari-614.1.10-branch/Source/WebKitLegacy/mac/ChangeLog
r292640 r293280 1 2022-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 1 57 2022-04-08 Elliott Williams <emw@apple.com> 2 58 -
branches/safari-614.1.10-branch/Source/WebKitLegacy/mac/WebCoreSupport/WebChromeClient.mm
r291501 r293280 97 97 98 98 #if HAVE(WEBGPU_IMPLEMENTATION) 99 #import <pal/graphics/WebGPU/Impl/WebGPU Impl.h>99 #import <pal/graphics/WebGPU/Impl/WebGPUCreateImpl.h> 100 100 #endif 101 101 … … 1165 1165 { 1166 1166 #if HAVE(WEBGPU_IMPLEMENTATION) 1167 return PAL::WebGPU:: GPUImpl::create([](PAL::WebGPU::GPUImpl::WorkItem&& workItem) {1167 return PAL::WebGPU::create([](PAL::WebGPU::WorkItem&& workItem) { 1168 1168 callOnMainRunLoop(WTFMove(workItem)); 1169 1169 });
Note:
See TracChangeset
for help on using the changeset viewer.