Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: ee5d5265c6dab9c97e72585f399a10c77dde4aa2
https://github.com/WebKit/WebKit/commit/ee5d5265c6dab9c97e72585f399a10c77dde4aa2
Author: Richard Robinson <[email protected]>
Date: 2025-12-17 (Wed, 17 Dec 2025)
Changed paths:
M Source/WTF/Configurations/WTF.xcconfig
M Source/WebGPU/Configurations/WebGPU.xcconfig
M Source/WebGPU/WebGPU.xcodeproj/project.pbxproj
M Source/WebGPU/WebGPU/Buffer.h
M Source/WebGPU/WebGPU/Buffer.mm
M Source/WebGPU/WebGPU/Buffer.swift
M Source/WebGPU/WebGPU/CommandBuffer.h
M Source/WebGPU/WebGPU/CommandEncoder.h
M Source/WebGPU/WebGPU/CommandEncoder.mm
M Source/WebGPU/WebGPU/CommandEncoder.swift
M Source/WebGPU/WebGPU/ComputePassEncoder.h
M Source/WebGPU/WebGPU/CxxBridging.h
A Source/WebGPU/WebGPU/CxxBridgingPublic.h
M Source/WebGPU/WebGPU/DDMesh.mm
M Source/WebGPU/WebGPU/Device.h
M Source/WebGPU/WebGPU/Device.mm
M Source/WebGPU/WebGPU/HardwareCapabilities.h
M Source/WebGPU/WebGPU/Instance.mm
R Source/WebGPU/WebGPU/Internal/WebGPUSwiftInternal.h
M Source/WebGPU/WebGPU/Internal/module.modulemap
M Source/WebGPU/WebGPU/QuerySet.h
M Source/WebGPU/WebGPU/Queue.mm
M Source/WebGPU/WebGPU/Queue.swift
M Source/WebGPU/WebGPU/StdLibExtras.swift
M Source/WebGPU/WebGPU/Texture.h
M Source/WebGPU/WebGPU/TextureView.h
M Source/WebGPU/WebGPU/USDModel.swift
A Source/WebGPU/WebGPU/WGPUBufferImpl.h
A Source/WebGPU/WebGPU/WGPUQuerySetImpl.h
A Source/WebGPU/WebGPU/WGPUTextureImpl.h
A Source/WebGPU/WebGPU/WGPUTextureViewImpl.h
M Source/WebGPU/WebGPU/WebGPU.h
M Source/WebGPU/WebGPU/WebGPU.modulemap
A Source/WebGPU/WebGPU/WebGPU_Private.modulemap
Log Message:
-----------
Re-land [Swift in WebKit] Fix the modularization of WebGPU
https://bugs.webkit.org/show_bug.cgi?id=304307
rdar://166669345
Reviewed by Mike Wyrzykowski.
Make some changes to correct all modularization issues in WebGPU.
Build configuration stuff:
- Enable the module verifier in Objective C++ mode for WebGPU.
- Set SWIFT_LIBRARY_LEVEL to its proper value.
- The enablement of `ENABLE_WEBGPU_SWIFT` for macOS was conditionalized on the
architecture.
However, in some parts of the build, this value is `undefined`. This leads to
incredibly
confusing and surprising results. To address this, and to allow module
verification to
actually be conditionalized on `ENABLE_WEBGPU_SWIFT`, just enable
`ENABLE_WEBGPU_SWIFT` at
build time on all architectures on macOS.
Access level / exposed interface stuff:
- Previously, there were public Swift functions that depended on project-level
C++ types.
This is an access level violation and modules violation and probably some other
violations,
and was leading to a variety of build issues. By making all the Swift symbols
internal
instead of public, this fixes that.
- Add more explicit access level specifiers to the import statements for
clarity.
- Some functions and types were declared in the public module, and then
implemented in the
internal project module. This is a modules violation and was causing issues
with Cxx
interoperability being able to find the necessary functions and types. Fix this
by just
moving the implementation to the public module.
Modules stuff:
- Add missing header includes and module imports
- Add a private module map, `WebGPU_Private.modulemap` for the private headers
in WebGPU
- Fix the existing public module map
- Fix the existing internal module map; turns out, it's invalid and not
supported for a
framework project internal module to have an umbrella header, since those are
meant to
comprise everything in a single directory, which isn't the case for the
structure of project
internal headers; it essentially was only "working" by happenstance.
Consequently, fix this
by explicitly creating all the sub-modules, and make them explicit for clarity
and to also
avoid any confusing implicit imports.
Misc. stuff:
- Fix compile time errors now that x86_64 compiles the Swift code
- Device.h needs to out-of-line the implementation of
`vertexBufferIndexForBindGroup` since
WebGPU cannot have a header file dependent on WGSL because WGSL is not a
well-formed library/
module.
* Source/WTF/Configurations/WTF.xcconfig:
* Source/WebGPU/Configurations/WebGPU.xcconfig:
* Source/WebGPU/WebGPU.xcodeproj/project.pbxproj:
* Source/WebGPU/WebGPU/Buffer.h:
* Source/WebGPU/WebGPU/Buffer.mm:
* Source/WebGPU/WebGPU/Buffer.swift:
(Buffer_copyFrom_thunk(_:from:offset:)):
(Buffer_getMappedRange_thunk(_:offset:size:)):
(WebGPU.getMappedRange(_:size:)):
* Source/WebGPU/WebGPU/CommandBuffer.h:
* Source/WebGPU/WebGPU/CommandEncoder.h:
* Source/WebGPU/WebGPU/CommandEncoder.mm:
* Source/WebGPU/WebGPU/CommandEncoder.swift:
(WebGPU.clearTextureIfNeeded(_:slice:)):
(resolveQuerySet(_:querySet:firstQuery:queryCount:destination:destinationOffset:)):
Deleted.
(CommandEncoder_copyBufferToBuffer_thunk(_:source:sourceOffset:destination:destinationOffset:size:)):
Deleted.
(WebGPU.clearTextureIfNeeded(_:slice:device:blitCommandEncoder:)): Deleted.
* Source/WebGPU/WebGPU/ComputePassEncoder.h:
* Source/WebGPU/WebGPU/CxxBridging.h:
* Source/WebGPU/WebGPU/CxxBridgingPublic.h: Copied from
Source/WebGPU/WebGPU/Internal/WebGPUSwiftInternal.h.
* Source/WebGPU/WebGPU/DDMesh.mm:
* Source/WebGPU/WebGPU/Device.h:
(WebGPU::Device::vertexBufferIndexForBindGroup const): Deleted.
* Source/WebGPU/WebGPU/Device.mm:
* Source/WebGPU/WebGPU/HardwareCapabilities.h:
* Source/WebGPU/WebGPU/Instance.mm:
* Source/WebGPU/WebGPU/Internal/module.modulemap:
* Source/WebGPU/WebGPU/QuerySet.h:
* Source/WebGPU/WebGPU/Queue.mm:
* Source/WebGPU/WebGPU/Queue.swift:
(Queue_writeBuffer_thunk(_:buffer:bufferOffset:data:)):
(WebGPU.writeBuffer(_:bufferOffset:data:)):
* Source/WebGPU/WebGPU/StdLibExtras.swift:
* Source/WebGPU/WebGPU/Texture.h:
* Source/WebGPU/WebGPU/TextureView.h:
* Source/WebGPU/WebGPU/USDModel.swift:
* Source/WebGPU/WebGPU/WGPUBufferImpl.h: Copied from
Source/WebGPU/WebGPU/Internal/WebGPUSwiftInternal.h.
* Source/WebGPU/WebGPU/WGPUQuerySetImpl.h: Copied from
Source/WebGPU/WebGPU/Internal/WebGPUSwiftInternal.h.
* Source/WebGPU/WebGPU/WGPUTextureImpl.h: Copied from
Source/WebGPU/WebGPU/Internal/WebGPUSwiftInternal.h.
* Source/WebGPU/WebGPU/WGPUTextureViewImpl.h: Renamed from
Source/WebGPU/WebGPU/Internal/WebGPUSwiftInternal.h.
* Source/WebGPU/WebGPU/WebGPU.h:
* Source/WebGPU/WebGPU/WebGPU.modulemap:
* Source/WebGPU/WebGPU/WebGPU_Private.modulemap: Added.
Canonical link: https://commits.webkit.org/304590@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications