Diff
Modified: trunk/Source/WebCore/ChangeLog (238207 => 238208)
--- trunk/Source/WebCore/ChangeLog 2018-11-15 00:32:57 UTC (rev 238207)
+++ trunk/Source/WebCore/ChangeLog 2018-11-15 00:33:53 UTC (rev 238208)
@@ -1,3 +1,31 @@
+2018-11-14 Justin Fan <justin_...@apple.com>
+
+ [WebGPU] Code quality concerns raised for 191291: [WebGPU] Experimental prototype for WebGPURenderPipeline and WebGPUSwapChain
+ https://bugs.webkit.org/show_bug.cgi?id=191383
+
+ Reviewed by Dean Jackson.
+
+ Covered by existing WebGPU tests introduced in original patch.
+
+ * Modules/webgpu/GPUDevice.h:
+ * Modules/webgpu/GPUPipelineStageDescriptor.h:
+ * Modules/webgpu/GPURenderPipelineDescriptor.h: Now a base struct with a guaranteed vertex stage member.
+ (): Refactored into enum class.
+ (WebCore::GPURenderPipelineDescriptor::GPURenderPipelineDescriptor): Removed in favor of init-list construction.
+ (WebCore::GPURenderPipelineDescriptor::primitiveTopology): Now a proper enum class member.
+ * Modules/webgpu/GPUShaderModule.h:
+ * Modules/webgpu/WebGPUDevice.cpp:
+ (WebCore::WebGPUDevice::createRenderPipeline const):
+ * Modules/webgpu/WebGPUShaderModule.h:
+ (WebCore::WebGPUShaderModule::module const):
+ * Modules/webgpu/WebGPUShaderStage.h: Replaced enum with constants to better reflect IDL.
+ * Modules/webgpu/cocoa/GPURenderPipeline.h:
+ * Modules/webgpu/cocoa/GPURenderPipelineMetal.mm:
+ (WebCore::setFunctionsForPipelineDescriptor):
+ (WebCore::GPURenderPipeline::create):
+ * Modules/webgpu/cocoa/GPUSwapChain.h:
+ * WebCore.xcodeproj/project.pbxproj: Removed GPUPipelineDescriptorBase.
+
2018-11-14 Joseph Pecoraro <pecor...@apple.com>
Web Inspector: Pass Inspector::FrontendChannel as a reference connect/disconnect methods
Modified: trunk/Source/WebCore/Modules/webgpu/GPUDevice.h (238207 => 238208)
--- trunk/Source/WebCore/Modules/webgpu/GPUDevice.h 2018-11-15 00:32:57 UTC (rev 238207)
+++ trunk/Source/WebCore/Modules/webgpu/GPUDevice.h 2018-11-15 00:33:53 UTC (rev 238208)
@@ -31,19 +31,12 @@
#include <wtf/RefPtr.h>
#include <wtf/RetainPtr.h>
-#if USE(METAL)
OBJC_PROTOCOL(MTLDevice);
-#endif
namespace WebCore {
-#if USE(METAL)
using PlatformDevice = MTLDevice;
using PlatformDeviceSmartPtr = RetainPtr<MTLDevice>;
-#else
-using PlatformDevice = void;
-using PlatformDeviceSmartPtr = RefPtr<void>;
-#endif
class GPUShaderModule;
class GPURenderPipeline;
Modified: trunk/Source/WebCore/Modules/webgpu/GPUPipelineStageDescriptor.h (238207 => 238208)
--- trunk/Source/WebCore/Modules/webgpu/GPUPipelineStageDescriptor.h 2018-11-15 00:32:57 UTC (rev 238207)
+++ trunk/Source/WebCore/Modules/webgpu/GPUPipelineStageDescriptor.h 2018-11-15 00:33:53 UTC (rev 238208)
@@ -34,8 +34,7 @@
namespace WebCore {
struct GPUPipelineStageDescriptor {
- const GPUShaderModule& module;
- unsigned long stage;
+ const GPUShaderModule* module = nullptr;
String entryPoint;
};
Modified: trunk/Source/WebCore/Modules/webgpu/GPURenderPipelineDescriptor.h (238207 => 238208)
--- trunk/Source/WebCore/Modules/webgpu/GPURenderPipelineDescriptor.h 2018-11-15 00:32:57 UTC (rev 238207)
+++ trunk/Source/WebCore/Modules/webgpu/GPURenderPipelineDescriptor.h 2018-11-15 00:33:53 UTC (rev 238208)
@@ -34,8 +34,8 @@
namespace WebCore {
-struct GPURenderPipelineDescriptor : GPUPipelineDescriptorBase {
- enum {
+struct GPURenderPipelineDescriptor {
+ enum class PrimitiveTopology {
PointList,
LineList,
LineStrip,
@@ -43,13 +43,9 @@
TriangleStrip
};
- GPURenderPipelineDescriptor(Vector<GPUPipelineStageDescriptor>&& stages, int topology)
- : GPUPipelineDescriptorBase { WTFMove(stages) }
- , primitiveTopology(topology)
- {
- }
-
- int primitiveTopology;
+ GPUPipelineStageDescriptor vertexStage;
+ GPUPipelineStageDescriptor fragmentStage;
+ PrimitiveTopology primitiveTopology;
};
} // namespace WebCore
Modified: trunk/Source/WebCore/Modules/webgpu/GPUShaderModule.h (238207 => 238208)
--- trunk/Source/WebCore/Modules/webgpu/GPUShaderModule.h 2018-11-15 00:32:57 UTC (rev 238207)
+++ trunk/Source/WebCore/Modules/webgpu/GPUShaderModule.h 2018-11-15 00:33:53 UTC (rev 238208)
@@ -31,9 +31,7 @@
#include <wtf/RefPtr.h>
#include <wtf/RetainPtr.h>
-#if USE(METAL)
OBJC_PROTOCOL(MTLLibrary);
-#endif
namespace WebCore {
@@ -41,13 +39,8 @@
struct GPUShaderModuleDescriptor;
-#if USE(METAL)
using PlatformShaderModule = MTLLibrary;
using PlatformShaderModuleSmartPtr = RetainPtr<MTLLibrary>;
-#else
-using PlatformShaderModule = void;
-using PlatformShaderModuleSmartPtr = RefPtr<void>;
-#endif
class GPUShaderModule : public RefCounted<GPUShaderModule> {
public:
Modified: trunk/Source/WebCore/Modules/webgpu/WebGPUDevice.cpp (238207 => 238208)
--- trunk/Source/WebCore/Modules/webgpu/WebGPUDevice.cpp 2018-11-15 00:32:57 UTC (rev 238207)
+++ trunk/Source/WebCore/Modules/webgpu/WebGPUDevice.cpp 2018-11-15 00:33:53 UTC (rev 238208)
@@ -37,6 +37,7 @@
#include "WebGPURenderPipelineDescriptor.h"
#include "WebGPUShaderModule.h"
#include "WebGPUShaderModuleDescriptor.h"
+#include "WebGPUShaderStage.h"
namespace WebCore {
@@ -63,19 +64,59 @@
RefPtr<WebGPURenderPipeline> WebGPUDevice::createRenderPipeline(WebGPURenderPipelineDescriptor&& descriptor) const
{
- Vector<GPUPipelineStageDescriptor> stages;
+ const char* const functionName = "WebGPUDevice::createRenderPipeline()";
+#if LOG_DISABLED
+ UNUSED_PARAM(functionName);
+#endif
+
+ if (descriptor.stages.isEmpty()) {
+ LOG(WebGPU, "%s: No stages in WebGPURenderPipelineDescriptor!", functionName);
+ return nullptr;
+ }
+
+ GPUPipelineStageDescriptor vertexStage;
+ GPUPipelineStageDescriptor fragmentStage;
+
for (const auto& stageDescriptor : descriptor.stages) {
- if (!stageDescriptor.module) {
- LOG(WebGPU, "WebGPUDevice::createRenderPipeline(): WebGPUShaderModule not found!");
+ if (!stageDescriptor.module || !stageDescriptor.module->module() || stageDescriptor.entryPoint.isEmpty()) {
+ LOG(WebGPU, "%s: Invalid WebGPUPipelineStageDescriptor!", functionName);
return nullptr;
}
- stages.append({ stageDescriptor.module->module(), stageDescriptor.stage, stageDescriptor.entryPoint });
+
+ switch (stageDescriptor.stage) {
+ case WebGPUShaderStage::VERTEX:
+ if (vertexStage.module) {
+ LOG(WebGPU, "%s: Multiple vertex stages in WebGPURenderPipelineDescriptor!", functionName);
+ return nullptr;
+ }
+
+ vertexStage.module = stageDescriptor.module->module();
+ vertexStage.entryPoint = stageDescriptor.entryPoint;
+ break;
+ case WebGPUShaderStage::FRAGMENT:
+ if (fragmentStage.module) {
+ LOG(WebGPU, "%s: Multiple fragment stages in WebGPURenderPipelineDescriptor!", functionName);
+ return nullptr;
+ }
+
+ fragmentStage.module = stageDescriptor.module->module();
+ fragmentStage.entryPoint = stageDescriptor.entryPoint;
+ break;
+ default:
+ LOG(WebGPU, "%s: Invalid shader stage in WebGPURenderPipelineDescriptor!", functionName);
+ return nullptr;
+ }
}
- return WebGPURenderPipeline::create(m_device->createRenderPipeline(GPURenderPipelineDescriptor { WTFMove(stages), static_cast<int>(descriptor.primitiveTopology) }));
+ // Metal (if not other APIs) requires at least the vertex shader.
+ if (!vertexStage.module || vertexStage.entryPoint.isEmpty()) {
+ LOG(WebGPU, "%s: Invalid vertex stage in WebGPURenderPipelineDescriptor!", functionName);
+ return nullptr;
+ }
+
+ return WebGPURenderPipeline::create(m_device->createRenderPipeline(GPURenderPipelineDescriptor { WTFMove(vertexStage), WTFMove(fragmentStage), static_cast<GPURenderPipelineDescriptor::PrimitiveTopology>(descriptor.primitiveTopology) }));
}
-
} // namespace WebCore
#endif // ENABLE(WEBGPU)
Modified: trunk/Source/WebCore/Modules/webgpu/WebGPUShaderModule.h (238207 => 238208)
--- trunk/Source/WebCore/Modules/webgpu/WebGPUShaderModule.h 2018-11-15 00:32:57 UTC (rev 238207)
+++ trunk/Source/WebCore/Modules/webgpu/WebGPUShaderModule.h 2018-11-15 00:33:53 UTC (rev 238208)
@@ -38,7 +38,7 @@
public:
static RefPtr<WebGPUShaderModule> create(RefPtr<GPUShaderModule>&&);
- const GPUShaderModule& module() const { return *m_module; }
+ const GPUShaderModule* module() const { return m_module.get(); }
private:
WebGPUShaderModule(RefPtr<GPUShaderModule>&&);
Modified: trunk/Source/WebCore/Modules/webgpu/WebGPUShaderStage.h (238207 => 238208)
--- trunk/Source/WebCore/Modules/webgpu/WebGPUShaderStage.h 2018-11-15 00:32:57 UTC (rev 238207)
+++ trunk/Source/WebCore/Modules/webgpu/WebGPUShaderStage.h 2018-11-15 00:33:53 UTC (rev 238208)
@@ -33,11 +33,9 @@
class WebGPUShaderStage : public RefCounted<WebGPUShaderStage> {
public:
- enum {
- VERTEX = 0,
- FRAGMENT = 1,
- COMPUTE = 2
- };
+ static const unsigned long VERTEX = 0;
+ static const unsigned long FRAGMENT = 1;
+ static const unsigned long COMPUTE = 2;
};
} // namespace WebCore
Modified: trunk/Source/WebCore/Modules/webgpu/cocoa/GPURenderPipeline.h (238207 => 238208)
--- trunk/Source/WebCore/Modules/webgpu/cocoa/GPURenderPipeline.h 2018-11-15 00:32:57 UTC (rev 238207)
+++ trunk/Source/WebCore/Modules/webgpu/cocoa/GPURenderPipeline.h 2018-11-15 00:33:53 UTC (rev 238208)
@@ -31,9 +31,7 @@
#include <wtf/RefPtr.h>
#include <wtf/RetainPtr.h>
-#if USE(METAL)
OBJC_PROTOCOL(MTLRenderPipelineState);
-#endif
namespace WebCore {
@@ -41,13 +39,8 @@
struct GPURenderPipelineDescriptor;
-#if USE(METAL)
using PlatformRenderPipeline = MTLRenderPipelineState;
using PlatformRenderPipelineSmartPtr = RetainPtr<MTLRenderPipelineState>;
-#else
-using PlatformRenderPipeline = void;
-using PlatformRenderPipelineSmartPtr = RefPtr<void>;
-#endif
class GPURenderPipeline : public RefCounted<GPURenderPipeline> {
public:
Modified: trunk/Source/WebCore/Modules/webgpu/cocoa/GPURenderPipelineMetal.mm (238207 => 238208)
--- trunk/Source/WebCore/Modules/webgpu/cocoa/GPURenderPipelineMetal.mm 2018-11-15 00:32:57 UTC (rev 238207)
+++ trunk/Source/WebCore/Modules/webgpu/cocoa/GPURenderPipelineMetal.mm 2018-11-15 00:33:53 UTC (rev 238208)
@@ -30,7 +30,6 @@
#import "GPURenderPipelineDescriptor.h"
#import "Logging.h"
-#import "WebGPUShaderStage.h"
#import <Metal/Metal.h>
#import <wtf/BlockObjCExceptions.h>
@@ -42,35 +41,45 @@
#if LOG_DISABLED
UNUSED_PARAM(functionName);
#endif
- for (const auto& stageDescriptor : descriptor.stages) {
- auto mtlLibrary = retainPtr(stageDescriptor.module.platformShaderModule());
+ // Metal requires a vertex shader in all render pipelines.
+ const auto& vertexStage = descriptor.vertexStage;
+ auto mtlLibrary = vertexStage.module->platformShaderModule();
- if (!mtlLibrary) {
- LOG(WebGPU, "%s: MTLLibrary does not exist!", functionName);
- return false;
- }
+ if (!mtlLibrary) {
+ LOG(WebGPU, "%s: MTLLibrary for vertex stage does not exist!", functionName);
+ return false;
+ }
- auto function = adoptNS([mtlLibrary newFunctionWithName:stageDescriptor.entryPoint]);
+ auto function = adoptNS([mtlLibrary newFunctionWithName:vertexStage.entryPoint]);
- if (!function) {
- LOG(WebGPU, "%s: MTLFunction %s not found!", functionName, stageDescriptor.entryPoint.utf8().data());
- return false;
- }
+ if (!function) {
+ LOG(WebGPU, "%s: Vertex MTLFunction \"%s\" not found!", functionName, vertexStage.entryPoint.utf8().data());
+ return false;
+ }
- switch (stageDescriptor.stage) {
- case WebGPUShaderStage::VERTEX:
- [mtlDescriptor setVertexFunction:function.get()];
- break;
- case WebGPUShaderStage::FRAGMENT:
- [mtlDescriptor setFragmentFunction:function.get()];
- break;
- default:
- LOG(WebGPU, "%s: Invalid shader stage specified!", functionName);
- return false;
- break;
- }
+ [mtlDescriptor setVertexFunction:function.get()];
+
+ // However, fragment shaders are optional.
+ const auto fragmentStage = descriptor.fragmentStage;
+ if (!fragmentStage.module || !fragmentStage.entryPoint)
+ return true;
+
+ mtlLibrary = fragmentStage.module->platformShaderModule();
+
+ if (!mtlLibrary) {
+ LOG(WebGPU, "%s: MTLLibrary for fragment stage does not exist!", functionName);
+ return false;
}
+ function = adoptNS([mtlLibrary newFunctionWithName:fragmentStage.entryPoint]);
+
+ if (!function) {
+ LOG(WebGPU, "%s: Fragment MTLFunction \"%s\" not found!", functionName, fragmentStage.entryPoint.utf8().data());
+ return false;
+ }
+
+ [mtlDescriptor setFragmentFunction:function.get()];
+
return true;
}
@@ -106,10 +115,7 @@
BEGIN_BLOCK_OBJC_EXCEPTIONS;
- if ([mtlDescriptor vertexFunction])
- pipeline = adoptNS([device.platformDevice() newRenderPipelineStateWithDescriptor:mtlDescriptor.get() error:nil]);
- else
- LOG(WebGPU, "%s: No vertex function assigned for MTLRenderPipelineDescriptor!", functionName);
+ pipeline = adoptNS([device.platformDevice() newRenderPipelineStateWithDescriptor:mtlDescriptor.get() error:nil]);
END_BLOCK_OBJC_EXCEPTIONS;
Modified: trunk/Source/WebCore/Modules/webgpu/cocoa/GPUSwapChain.h (238207 => 238208)
--- trunk/Source/WebCore/Modules/webgpu/cocoa/GPUSwapChain.h 2018-11-15 00:32:57 UTC (rev 238207)
+++ trunk/Source/WebCore/Modules/webgpu/cocoa/GPUSwapChain.h 2018-11-15 00:33:53 UTC (rev 238208)
@@ -30,21 +30,14 @@
#include <wtf/RefPtr.h>
#include <wtf/RetainPtr.h>
-#if USE(METAL)
OBJC_CLASS CAMetalLayer;
-#endif
namespace WebCore {
class GPUDevice;
-#if USE(METAL)
using PlatformSwapLayer = CAMetalLayer;
using PlatformSwapLayerSmartPtr = RetainPtr<CAMetalLayer>;
-#else
-using PlatformSwapLayer = void;
-using PlatformSwapLayerSmartPtr = RefPtr<void>;
-#endif
class GPUSwapChain : public RefCounted<GPUSwapChain> {
public:
Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (238207 => 238208)
--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2018-11-15 00:32:57 UTC (rev 238207)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2018-11-15 00:33:53 UTC (rev 238208)
@@ -1244,7 +1244,6 @@
46B9519A207D635400A7D2DD /* RemoteFrame.h in Headers */ = {isa = PBXBuildFile; fileRef = 46B95192207D632E00A7D2DD /* RemoteFrame.h */; settings = {ATTRIBUTES = (Private, ); }; };
46BCBBC22085008F00710638 /* JSRemoteDOMWindowBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 46BCBBC02085007F00710638 /* JSRemoteDOMWindowBase.h */; settings = {ATTRIBUTES = (Private, ); }; };
46C376622085177D00C73829 /* JSRemoteDOMWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 46C376612085176D00C73829 /* JSRemoteDOMWindow.h */; };
- CD5F3EDD9D333C40A9A38A54 /* AbortableTaskQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = DFDB912CF8E88A6DA1AD264F /* AbortableTaskQueue.h */; settings = {ATTRIBUTES = (Private, ); }; };
46C696CB1E7205F700597937 /* CPUMonitor.h in Headers */ = {isa = PBXBuildFile; fileRef = 46C696C91E7205E400597937 /* CPUMonitor.h */; settings = {ATTRIBUTES = (Private, ); }; };
46C696CC1E7205FC00597937 /* CPUMonitor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 46C696CA1E7205E400597937 /* CPUMonitor.cpp */; };
46C83EFE1A9BBE2900A79A41 /* GeoNotifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 46C83EFC1A9BBE2900A79A41 /* GeoNotifier.h */; settings = {ATTRIBUTES = (Private, ); }; };
@@ -7711,7 +7710,6 @@
46BCBBC3208500A700710638 /* RemoteDOMWindow.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = RemoteDOMWindow.idl; sourceTree = "<group>"; };
46C3765F2085176C00C73829 /* JSRemoteDOMWindow.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSRemoteDOMWindow.cpp; sourceTree = "<group>"; };
46C376612085176D00C73829 /* JSRemoteDOMWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSRemoteDOMWindow.h; sourceTree = "<group>"; };
- DFDB912CF8E88A6DA1AD264F /* AbortableTaskQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AbortableTaskQueue.h; sourceTree = "<group>"; };
46C696C91E7205E400597937 /* CPUMonitor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CPUMonitor.h; sourceTree = "<group>"; };
46C696CA1E7205E400597937 /* CPUMonitor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CPUMonitor.cpp; sourceTree = "<group>"; };
46C83EFB1A9BBE2900A79A41 /* GeoNotifier.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GeoNotifier.cpp; sourceTree = "<group>"; };
@@ -13821,7 +13819,6 @@
D045AD2321682475000A6E9B /* WebMetalCommandQueue.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = WebMetalCommandQueue.cpp; sourceTree = "<group>"; };
D046FB65218D073C00CB8F62 /* GPURenderPipelineDescriptor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPURenderPipelineDescriptor.h; sourceTree = "<group>"; };
D046FB67218D180300CB8F62 /* GPUPipelineStageDescriptor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPUPipelineStageDescriptor.h; sourceTree = "<group>"; };
- D046FB68218D18CD00CB8F62 /* GPUPipelineDescriptorBase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPUPipelineDescriptorBase.h; sourceTree = "<group>"; };
D0573D42217EB81E00D1BE91 /* GPULegacyTextureMetal.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = GPULegacyTextureMetal.mm; sourceTree = "<group>"; };
D05CED270A40BB2C00C5AF38 /* FormatBlockCommand.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = FormatBlockCommand.cpp; sourceTree = "<group>"; };
D05CED280A40BB2C00C5AF38 /* FormatBlockCommand.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FormatBlockCommand.h; sourceTree = "<group>"; };
@@ -14401,6 +14398,7 @@
DF7E9A294C7AACE0AD89B3DD /* MathMLOperatorDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MathMLOperatorDictionary.h; sourceTree = "<group>"; };
DF9AFD7013FC31D80015FEB7 /* MediaPlayerPrivateAVFoundationObjC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaPlayerPrivateAVFoundationObjC.h; sourceTree = "<group>"; };
DF9AFD7113FC31D80015FEB7 /* MediaPlayerPrivateAVFoundationObjC.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MediaPlayerPrivateAVFoundationObjC.mm; sourceTree = "<group>"; };
+ DFDB912CF8E88A6DA1AD264F /* AbortableTaskQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AbortableTaskQueue.h; sourceTree = "<group>"; };
E0FEF371B07C53EAC1C1FBEE /* EventSource.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = EventSource.idl; sourceTree = "<group>"; };
E0FEF371B17C53EAC1C1FBEE /* EventSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EventSource.h; sourceTree = "<group>"; };
E0FEF371B27C53EAC1C1FBEE /* EventSource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EventSource.cpp; sourceTree = "<group>"; };
@@ -25543,7 +25541,6 @@
D00F5942216ECC7A000D71DB /* DOMWindowWebGPU.idl */,
D09727CA218BD7A500942F3A /* GPUDevice.cpp */,
D0615FCF217FF185008A48A8 /* GPUDevice.h */,
- D046FB68218D18CD00CB8F62 /* GPUPipelineDescriptorBase.h */,
D046FB67218D180300CB8F62 /* GPUPipelineStageDescriptor.h */,
D0C419FA21840F6C009EC1DE /* GPURenderPipeline.h */,
D046FB65218D073C00CB8F62 /* GPURenderPipelineDescriptor.h */,