Changeset 293106 in webkit
- Timestamp:
- Apr 20, 2022, 10:43:39 AM (4 years ago)
- Location:
- trunk/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 trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.cpp ) (4 diffs)
-
WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUCreateImpl.h (copied) (copied from trunk/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
-
trunk/Source/WebCore/PAL/ChangeLog
r293096 r293106 1 2022-04-20 Myles C. Maxfield <mmaxfield@apple.com> 2 3 [WebGPU] WebKit and WebKitLegacy shouldn't need to know about WebGPU.framework 4 https://bugs.webkit.org/show_bug.cgi?id=239528 5 <rdar://problem/91740931> 6 7 Unreviewed build fix. 8 9 WebKit and WebKitLegacy create a WebGPU implementation from pal/graphics/WebGPU/Impl. This implementation 10 knows about WebGPU.framework. However, the create() function doesn't need to know about WebGPU.framework, 11 and its header doesn't need to include <WebGPU/WebGPU.h>. Only the .cpp files need to know about 12 <WebGPU/WebGPU.h>, and those .cpp files are invisible from WebKit and WebKitLegacy's points of view. So, 13 this patch splits the PAL header into: 14 1. A header which includes a creation function, but doesn't know about WebGPU.framework, and 15 2. A header which knows about WebGPU.framework, but doesn't hold the creation function used by WebKit or 16 WebKitLegacy. 17 18 This fixes one of Apple's internal builds. 19 20 * PAL.xcodeproj/project.pbxproj: 21 * pal/graphics/WebGPU/Impl/WebGPUCreateImpl.cpp: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.cpp. 22 (PAL::WebGPU::create): 23 * pal/graphics/WebGPU/Impl/WebGPUCreateImpl.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.h. 24 * pal/graphics/WebGPU/Impl/WebGPUImpl.cpp: 25 (PAL::WebGPU::GPUImpl::create): Deleted. 26 * pal/graphics/WebGPU/Impl/WebGPUImpl.h: 27 1 28 2022-04-20 Myles C. Maxfield <mmaxfield@apple.com> 2 29 -
trunk/Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj
r292742 r293106 63 63 1CB709FC28034EDF00A3A637 /* WebGPUDeviceHolderImpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1CB709FA28034EDF00A3A637 /* WebGPUDeviceHolderImpl.cpp */; }; 64 64 1CB709FD28034EDF00A3A637 /* WebGPUDeviceHolderImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1CB709FB28034EDF00A3A637 /* WebGPUDeviceHolderImpl.h */; }; 65 1CCA5EFF280FABB4008A6F78 /* WebGPUCreateImpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1CCA5EFD280FABB4008A6F78 /* WebGPUCreateImpl.cpp */; }; 66 1CCA5F00280FABB4008A6F78 /* WebGPUCreateImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1CCA5EFE280FABB4008A6F78 /* WebGPUCreateImpl.h */; settings = {ATTRIBUTES = (Private, ); }; }; 65 67 1D2B413425F05E3500A3F70A /* ClockGeneric.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1D2B413225F05E3400A3F70A /* ClockGeneric.cpp */; }; 66 68 293EE4A824154F8F0047493D /* AccessibilitySupportSoftLink.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 293EE4A624154F8F0047493D /* AccessibilitySupportSoftLink.cpp */; }; … … 115 117 DD20DD2627BC90D60093D175 /* VisionKitCoreSoftLink.h in Headers */ = {isa = PBXBuildFile; fileRef = F46B8C4B267408FA007A6554 /* VisionKitCoreSoftLink.h */; settings = {ATTRIBUTES = (Private, ); }; }; 116 118 DD20DD2727BC90D60093D175 /* CryptoDigest.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C09D0521E31C44100725F18 /* CryptoDigest.h */; settings = {ATTRIBUTES = (Private, ); }; }; 117 DD20DD2827BC90D60093D175 /* WebGPUAdapterImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6AE273F4245004B17B0 /* WebGPUAdapterImpl.h */; settings = {ATTRIBUTES = (Private, ); };};118 DD20DD2927BC90D60093D175 /* WebGPUBindGroupImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A1273F4243004B17B0 /* WebGPUBindGroupImpl.h */; settings = {ATTRIBUTES = (Private, ); };};119 DD20DD2A27BC90D60093D175 /* WebGPUBindGroupLayoutImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E69C273F4243004B17B0 /* WebGPUBindGroupLayoutImpl.h */; settings = {ATTRIBUTES = (Private, ); };};120 DD20DD2B27BC90D60093D175 /* WebGPUBufferImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A2273F4243004B17B0 /* WebGPUBufferImpl.h */; settings = {ATTRIBUTES = (Private, ); };};121 DD20DD2C27BC90D60093D175 /* WebGPUCommandBufferImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A4273F4244004B17B0 /* WebGPUCommandBufferImpl.h */; settings = {ATTRIBUTES = (Private, ); };};122 DD20DD2D27BC90D60093D175 /* WebGPUCommandEncoderImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6AB273F4245004B17B0 /* WebGPUCommandEncoderImpl.h */; settings = {ATTRIBUTES = (Private, ); };};123 DD20DD2E27BC90D60093D175 /* WebGPUComputePassEncoderImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E69E273F4243004B17B0 /* WebGPUComputePassEncoderImpl.h */; settings = {ATTRIBUTES = (Private, ); };};124 DD20DD2F27BC90D60093D175 /* WebGPUComputePipelineImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6AF273F4245004B17B0 /* WebGPUComputePipelineImpl.h */; settings = {ATTRIBUTES = (Private, ); };};125 DD20DD3027BC90D60093D175 /* WebGPUConvertToBackingContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6B6273F85BC004B17B0 /* WebGPUConvertToBackingContext.h */; settings = {ATTRIBUTES = (Private, ); };};126 DD20DD3127BC90D60093D175 /* WebGPUDeviceImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6AD273F4245004B17B0 /* WebGPUDeviceImpl.h */; settings = {ATTRIBUTES = (Private, ); };};127 DD20DD3227BC90D60093D175 /* WebGPUDowncastConvertToBackingContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C36C52D2743011A006DA4C1 /* WebGPUDowncastConvertToBackingContext.h */; settings = {ATTRIBUTES = (Private, ); };};128 DD20DD3327BC90D60093D175 /* WebGPUExternalTextureImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6BB27405E3C004B17B0 /* WebGPUExternalTextureImpl.h */; settings = {ATTRIBUTES = (Private, ); };};129 DD20DD3427BC90D60093D175 /* WebGPUImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E69B273F4242004B17B0 /* WebGPUImpl.h */; settings = {ATTRIBUTES = (Private, ); };};130 DD20DD3527BC90D60093D175 /* WebGPUPipelineLayoutImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E69D273F4243004B17B0 /* WebGPUPipelineLayoutImpl.h */; settings = {ATTRIBUTES = (Private, ); };};131 DD20DD3627BC90D60093D175 /* WebGPUQuerySetImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A8273F4244004B17B0 /* WebGPUQuerySetImpl.h */; settings = {ATTRIBUTES = (Private, ); };};132 DD20DD3727BC90D60093D175 /* WebGPUQueueImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A5273F4244004B17B0 /* WebGPUQueueImpl.h */; settings = {ATTRIBUTES = (Private, ); };};133 DD20DD3827BC90D60093D175 /* WebGPURenderBundleEncoderImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E69A273F4242004B17B0 /* WebGPURenderBundleEncoderImpl.h */; settings = {ATTRIBUTES = (Private, ); };};134 DD20DD3927BC90D60093D175 /* WebGPURenderBundleImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A6273F4244004B17B0 /* WebGPURenderBundleImpl.h */; settings = {ATTRIBUTES = (Private, ); };};135 DD20DD3A27BC90D60093D175 /* WebGPURenderPassEncoderImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A3273F4244004B17B0 /* WebGPURenderPassEncoderImpl.h */; settings = {ATTRIBUTES = (Private, ); };};136 DD20DD3B27BC90D60093D175 /* WebGPURenderPipelineImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A9273F4244004B17B0 /* WebGPURenderPipelineImpl.h */; settings = {ATTRIBUTES = (Private, ); };};137 DD20DD3C27BC90D60093D175 /* WebGPUSamplerImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A7273F4244004B17B0 /* WebGPUSamplerImpl.h */; settings = {ATTRIBUTES = (Private, ); };};138 DD20DD3D27BC90D60093D175 /* WebGPUShaderModuleImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6AA273F4245004B17B0 /* WebGPUShaderModuleImpl.h */; settings = {ATTRIBUTES = (Private, ); };};139 DD20DD3E27BC90D60093D175 /* WebGPUTextureImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E69F273F4243004B17B0 /* WebGPUTextureImpl.h */; settings = {ATTRIBUTES = (Private, ); };};140 DD20DD3F27BC90D70093D175 /* WebGPUTextureViewImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6AC273F4245004B17B0 /* WebGPUTextureViewImpl.h */; settings = {ATTRIBUTES = (Private, ); };};119 DD20DD2827BC90D60093D175 /* WebGPUAdapterImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6AE273F4245004B17B0 /* WebGPUAdapterImpl.h */; }; 120 DD20DD2927BC90D60093D175 /* WebGPUBindGroupImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A1273F4243004B17B0 /* WebGPUBindGroupImpl.h */; }; 121 DD20DD2A27BC90D60093D175 /* WebGPUBindGroupLayoutImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E69C273F4243004B17B0 /* WebGPUBindGroupLayoutImpl.h */; }; 122 DD20DD2B27BC90D60093D175 /* WebGPUBufferImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A2273F4243004B17B0 /* WebGPUBufferImpl.h */; }; 123 DD20DD2C27BC90D60093D175 /* WebGPUCommandBufferImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A4273F4244004B17B0 /* WebGPUCommandBufferImpl.h */; }; 124 DD20DD2D27BC90D60093D175 /* WebGPUCommandEncoderImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6AB273F4245004B17B0 /* WebGPUCommandEncoderImpl.h */; }; 125 DD20DD2E27BC90D60093D175 /* WebGPUComputePassEncoderImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E69E273F4243004B17B0 /* WebGPUComputePassEncoderImpl.h */; }; 126 DD20DD2F27BC90D60093D175 /* WebGPUComputePipelineImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6AF273F4245004B17B0 /* WebGPUComputePipelineImpl.h */; }; 127 DD20DD3027BC90D60093D175 /* WebGPUConvertToBackingContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6B6273F85BC004B17B0 /* WebGPUConvertToBackingContext.h */; }; 128 DD20DD3127BC90D60093D175 /* WebGPUDeviceImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6AD273F4245004B17B0 /* WebGPUDeviceImpl.h */; }; 129 DD20DD3227BC90D60093D175 /* WebGPUDowncastConvertToBackingContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C36C52D2743011A006DA4C1 /* WebGPUDowncastConvertToBackingContext.h */; }; 130 DD20DD3327BC90D60093D175 /* WebGPUExternalTextureImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6BB27405E3C004B17B0 /* WebGPUExternalTextureImpl.h */; }; 131 DD20DD3427BC90D60093D175 /* WebGPUImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E69B273F4242004B17B0 /* WebGPUImpl.h */; }; 132 DD20DD3527BC90D60093D175 /* WebGPUPipelineLayoutImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E69D273F4243004B17B0 /* WebGPUPipelineLayoutImpl.h */; }; 133 DD20DD3627BC90D60093D175 /* WebGPUQuerySetImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A8273F4244004B17B0 /* WebGPUQuerySetImpl.h */; }; 134 DD20DD3727BC90D60093D175 /* WebGPUQueueImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A5273F4244004B17B0 /* WebGPUQueueImpl.h */; }; 135 DD20DD3827BC90D60093D175 /* WebGPURenderBundleEncoderImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E69A273F4242004B17B0 /* WebGPURenderBundleEncoderImpl.h */; }; 136 DD20DD3927BC90D60093D175 /* WebGPURenderBundleImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A6273F4244004B17B0 /* WebGPURenderBundleImpl.h */; }; 137 DD20DD3A27BC90D60093D175 /* WebGPURenderPassEncoderImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A3273F4244004B17B0 /* WebGPURenderPassEncoderImpl.h */; }; 138 DD20DD3B27BC90D60093D175 /* WebGPURenderPipelineImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A9273F4244004B17B0 /* WebGPURenderPipelineImpl.h */; }; 139 DD20DD3C27BC90D60093D175 /* WebGPUSamplerImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6A7273F4244004B17B0 /* WebGPUSamplerImpl.h */; }; 140 DD20DD3D27BC90D60093D175 /* WebGPUShaderModuleImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6AA273F4245004B17B0 /* WebGPUShaderModuleImpl.h */; }; 141 DD20DD3E27BC90D60093D175 /* WebGPUTextureImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E69F273F4243004B17B0 /* WebGPUTextureImpl.h */; }; 142 DD20DD3F27BC90D70093D175 /* WebGPUTextureViewImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C19E6AC273F4245004B17B0 /* WebGPUTextureViewImpl.h */; }; 141 143 DD20DD4027BC90D70093D175 /* WebGPU.h in Headers */ = {isa = PBXBuildFile; fileRef = 1CC5E47127374948006F6FF4 /* WebGPU.h */; settings = {ATTRIBUTES = (Private, ); }; }; 142 144 DD20DD4127BC90D70093D175 /* WebGPUAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 1CC5E47F27374949006F6FF4 /* WebGPUAdapter.h */; settings = {ATTRIBUTES = (Private, ); }; }; … … 832 834 1CC5E4922737494A006F6FF4 /* WebGPURenderBundle.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebGPURenderBundle.h; sourceTree = "<group>"; }; 833 835 1CC5E4932737494A006F6FF4 /* WebGPUCanvasCompositingAlphaMode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebGPUCanvasCompositingAlphaMode.h; sourceTree = "<group>"; }; 836 1CCA5EFD280FABB4008A6F78 /* WebGPUCreateImpl.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = WebGPUCreateImpl.cpp; sourceTree = "<group>"; }; 837 1CCA5EFE280FABB4008A6F78 /* WebGPUCreateImpl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebGPUCreateImpl.h; sourceTree = "<group>"; }; 834 838 1CCEE4F420D871930047B097 /* CoreUISPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CoreUISPI.h; sourceTree = "<group>"; }; 835 839 1CCEE4F620D8743F0047B097 /* NSAppearanceSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSAppearanceSPI.h; sourceTree = "<group>"; }; … … 1270 1274 1C19E6B4273F85AF004B17B0 /* WebGPUConvertToBackingContext.cpp */, 1271 1275 1C19E6B6273F85BC004B17B0 /* WebGPUConvertToBackingContext.h */, 1276 1CCA5EFD280FABB4008A6F78 /* WebGPUCreateImpl.cpp */, 1277 1CCA5EFE280FABB4008A6F78 /* WebGPUCreateImpl.h */, 1272 1278 1CB709FA28034EDF00A3A637 /* WebGPUDeviceHolderImpl.cpp */, 1273 1279 1CB709FB28034EDF00A3A637 /* WebGPUDeviceHolderImpl.h */, … … 1868 1874 DD20DD2F27BC90D60093D175 /* WebGPUComputePipelineImpl.h in Headers */, 1869 1875 DD20DD3027BC90D60093D175 /* WebGPUConvertToBackingContext.h in Headers */, 1876 1CCA5F00280FABB4008A6F78 /* WebGPUCreateImpl.h in Headers */, 1870 1877 DD20DD6627BC90D70093D175 /* WebGPUCullMode.h in Headers */, 1871 1878 DD20DD6727BC90D70093D175 /* WebGPUDepthStencilState.h in Headers */, … … 2141 2148 1C19E664273F3FEE004B17B0 /* WebGPUComputePipelineImpl.cpp in Sources */, 2142 2149 1C19E6B5273F85AF004B17B0 /* WebGPUConvertToBackingContext.cpp in Sources */, 2150 1CCA5EFF280FABB4008A6F78 /* WebGPUCreateImpl.cpp in Sources */, 2143 2151 1CB709FC28034EDF00A3A637 /* WebGPUDeviceHolderImpl.cpp in Sources */, 2144 2152 1C19E668273F3FFA004B17B0 /* WebGPUDeviceImpl.cpp in Sources */, -
trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUCreateImpl.cpp
r293105 r293106 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 -
trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUCreateImpl.h
r293105 r293106 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 -
trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.cpp
r291384 r293106 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) -
trunk/Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.h
r291384 r293106 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 { -
trunk/Source/WebKit/ChangeLog
r293086 r293106 1 2022-04-20 Myles C. Maxfield <mmaxfield@apple.com> 2 3 [WebGPU] WebKit and WebKitLegacy shouldn't need to know about WebGPU.framework 4 https://bugs.webkit.org/show_bug.cgi?id=239528 5 <rdar://problem/91740931> 6 7 Unreviewed build fix. 8 9 * GPUProcess/graphics/WebGPU/RemoteGPU.cpp: 10 (WebKit::RemoteGPU::workQueueInitialize): 11 * WebProcess/WebCoreSupport/WebChromeClient.cpp: 12 (WebKit::WebChromeClient::createGPUForWebGPU const): 13 1 14 2022-04-20 Diego Pino Garcia <dpino@igalia.com> 2 15 -
trunk/Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.cpp
r292803 r293106 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 … … 87 87 // (because the callbacks handle resource cleanup, etc.). 88 88 // The retain cycle is broken in workQueueUninitialize(). 89 auto backing = PAL::WebGPU:: GPUImpl::create([protectedThis = Ref { *this }](PAL::WebGPU::GPUImpl::WorkItem&& workItem) {89 auto backing = PAL::WebGPU::create([protectedThis = Ref { *this }](PAL::WebGPU::WorkItem&& workItem) { 90 90 protectedThis->workQueue().dispatch(WTFMove(workItem)); 91 91 }); -
trunk/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp
r292903 r293106 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 … … 963 963 return RemoteGPUProxy::create(WebProcess::singleton().ensureGPUProcessConnection(), WebGPU::DowncastConvertToBackingContext::create(), WebGPUIdentifier::generate(), m_page.ensureRemoteRenderingBackendProxy().ensureBackendCreated()); 964 964 #else 965 return PAL::WebGPU:: GPUImpl::create([](PAL::WebGPU::GPUImpl::WorkItem&& workItem) {965 return PAL::WebGPU::create([](PAL::WebGPU::WorkItem&& workItem) { 966 966 callOnMainRunLoop(WTFMove(workItem)); 967 967 }); -
trunk/Source/WebKitLegacy/mac/ChangeLog
r292951 r293106 1 2022-04-20 Myles C. Maxfield <mmaxfield@apple.com> 2 3 [WebGPU] WebKit and WebKitLegacy shouldn't need to know about WebGPU.framework 4 https://bugs.webkit.org/show_bug.cgi?id=239528 5 <rdar://problem/91740931> 6 7 Unreviewed build fix. 8 9 * WebCoreSupport/WebChromeClient.mm: 10 (WebChromeClient::createGPUForWebGPU const): 11 1 12 2022-04-17 Chris Dumez <cdumez@apple.com> 2 13 -
trunk/Source/WebKitLegacy/mac/WebCoreSupport/WebChromeClient.mm
r291501 r293106 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.