Build Information
Successful build of fx-upscale, reference main (46601b), with Swift 6.4 for macOS (SPM) on 26 Sep 2026 12:21:13 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64Build Log
========================================
RunAll
========================================
Builder version: 5.1.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/finnvoor/fx-upscale.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/finnvoor/fx-upscale
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at 46601bd Preserve HDR when upscaling instead of crushing to SDR (#36)
Cloned https://github.com/finnvoor/fx-upscale.git
Revision (git rev-parse @):
46601bdcd5c8c62f9735210e9245efab2da4a5c9
SUCCESS checkout https://github.com/finnvoor/fx-upscale.git at main
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.4
Building package at path: $PWD
https://github.com/finnvoor/fx-upscale.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64
Building for debugging...
[Constructing description]
[Planning deferred tasks]
[53 / 95] fx-upscale_UpscalingTests
[55 / 95]
[58 / 98] ArgumentParserToolInfo
[62 / 102] ArgumentParserToolInfo
[69 / 103] SwiftTUI
[78 / 146]
[88 / 191]
[92 / 191]
[99 / 193] Upscaling
[109 / 247]
[113 / 247]
[114 / 247]
[117 / 247]
[123 / 247]
[129 / 247]
[135 / 247]
[141 / 247]
[145 / 247]
[154 / 247]
[155 / 247]
[158 / 247]
[161 / 247]
[164 / 247]
[166 / 247]
[175 / 247] SwiftTUI
[179 / 247] SwiftTUI
[185 / 247]
[186 / 247]
[187 / 247]
[190 / 247] ArgumentParser
[196 / 247]
[198 / 247]
[199 / 247]
[201 / 247]
[202 / 247] SwiftTUI-product
[214 / 247]
[215 / 247]
[216 / 247] ArgumentParser
[218 / 247] ArgumentParser
[226 / 247] Upscaling
[229 / 247] Upscaling
[231 / 247] ArgumentParser
[239 / 247]
[240 / 248] Upscaling
[240 / 248] fx-upscale-product
[242 / 252]
[244 / 252] fx-upscale-product
[248 / 252] fx-upscale-product
[250 / 252] fx-upscale-product
Build complete! (10.64 sec)
Fetching https://github.com/apple/swift-argument-parser.git
Fetching https://github.com/Finnvoor/SwiftTUI.git
[1/80] Fetching swifttui
[81/19026] Fetching swifttui, swift-argument-parser
Fetched https://github.com/apple/swift-argument-parser.git (1.80s)
Fetched https://github.com/Finnvoor/SwiftTUI.git (1.80s)
Computing version for https://github.com/Finnvoor/SwiftTUI.git
Computed https://github.com/Finnvoor/SwiftTUI.git at 1.0.4 (2.38s)
Computing version for https://github.com/apple/swift-argument-parser.git
Computed https://github.com/apple/swift-argument-parser.git at 1.8.2 (0.60s)
Creating working copy for https://github.com/apple/swift-argument-parser.git
Working copy of https://github.com/apple/swift-argument-parser.git resolved at 1.8.2
Creating working copy for https://github.com/Finnvoor/SwiftTUI.git
Working copy of https://github.com/Finnvoor/SwiftTUI.git resolved at 1.0.4
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:430:23: [1;33mwarning: [1;39mcapture of 'assetWriterInput' with non-Sendable type 'AVAssetWriterInput' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m428 |[0;0m )
[0;36m429 |[0;0m assetWriterInput.requestMediaDataWhenReady(on: queue) {
[0;36m430 |[0;0m while assetWriterInput.isReadyForMoreMediaData {
[0;36m|[0;0m `- [1;33mwarning: [1;39mcapture of 'assetWriterInput' with non-Sendable type 'AVAssetWriterInput' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m431 |[0;0m if let nextSampleBuffer = assetReaderOutput.copyNextSampleBuffer() {
[0;36m432 |[0;0m if nextSampleBuffer.presentationTimeStamp.isNumeric {
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetWriterInput.h:39:12: [1;39mnote: [1;39mclass 'AVAssetWriterInput' does not conform to the 'Sendable' protocol[0;0m
[0;36m37 |[0;0m NS_SWIFT_NONSENDABLE
[0;36m38 |[0;0m API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
[0;36m39 |[0;0m @interface AVAssetWriterInput : NSObject
[0;36m|[0;0m `- [1;39mnote: [1;39mclass 'AVAssetWriterInput' does not conform to the 'Sendable' protocol[0;0m
[0;36m40 |[0;0m {
[0;36m41 |[0;0m @private
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:431:47: [1;33mwarning: [1;39mcapture of 'assetReaderOutput' with non-Sendable type 'AVAssetReaderOutput' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m429 |[0;0m assetWriterInput.requestMediaDataWhenReady(on: queue) {
[0;36m430 |[0;0m while assetWriterInput.isReadyForMoreMediaData {
[0;36m431 |[0;0m if let nextSampleBuffer = assetReaderOutput.copyNextSampleBuffer() {
[0;36m|[0;0m `- [1;33mwarning: [1;39mcapture of 'assetReaderOutput' with non-Sendable type 'AVAssetReaderOutput' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m432 |[0;0m if nextSampleBuffer.presentationTimeStamp.isNumeric {
[0;36m433 |[0;0m let timestamp = Int64(nextSampleBuffer.presentationTimeStamp.seconds)
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetReaderOutput.h:43:12: [1;39mnote: [1;39mclass 'AVAssetReaderOutput' does not conform to the 'Sendable' protocol[0;0m
[0;36m41 |[0;0m NS_SWIFT_NONSENDABLE
[0;36m42 |[0;0m API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
[0;36m43 |[0;0m @interface AVAssetReaderOutput : NSObject
[0;36m|[0;0m `- [1;39mnote: [1;39mclass 'AVAssetReaderOutput' does not conform to the 'Sendable' protocol[0;0m
[0;36m44 |[0;0m {
[0;36m45 |[0;0m @private
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:478:38: [1;33mwarning: [1;39mcapture of 'assetReaderOutput' with non-Sendable type 'AVAssetReaderOutput' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m476 |[0;0m qos: .userInitiated
[0;36m477 |[0;0m ).async {
[0;36m478 |[0;0m while let sampleBuffer = assetReaderOutput.copyNextSampleBuffer() {
[0;36m|[0;0m `- [1;33mwarning: [1;39mcapture of 'assetReaderOutput' with non-Sendable type 'AVAssetReaderOutput' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m479 |[0;0m guard let imageBuffer = sampleBuffer.imageBuffer else {
[0;36m480 |[0;0m channel.finish(throwing: Error.missingImageBuffer)
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetReaderOutput.h:43:12: [1;39mnote: [1;39mclass 'AVAssetReaderOutput' does not conform to the 'Sendable' protocol[0;0m
[0;36m41 |[0;0m NS_SWIFT_NONSENDABLE
[0;36m42 |[0;0m API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
[0;36m43 |[0;0m @interface AVAssetReaderOutput : NSObject
[0;36m|[0;0m `- [1;39mnote: [1;39mclass 'AVAssetReaderOutput' does not conform to the 'Sendable' protocol[0;0m
[0;36m44 |[0;0m {
[0;36m45 |[0;0m @private
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:480:21: [1;33mwarning: [1;39mcapture of 'channel' with non-Sendable type 'FrameChannel<CVPixelBuffer>' (aka 'FrameChannel<CVBuffer>') in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m478 |[0;0m while let sampleBuffer = assetReaderOutput.copyNextSampleBuffer() {
[0;36m479 |[0;0m guard let imageBuffer = sampleBuffer.imageBuffer else {
[0;36m480 |[0;0m channel.finish(throwing: Error.missingImageBuffer)
[0;36m|[0;0m `- [1;33mwarning: [1;39mcapture of 'channel' with non-Sendable type 'FrameChannel<CVPixelBuffer>' (aka 'FrameChannel<CVBuffer>') in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m481 |[0;0m return
[0;36m482 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/FrameChannel.swift:11:13: [1;39mnote: [1;39mgeneric class 'FrameChannel' does not conform to the 'Sendable' protocol[0;0m
[0;36m9 |[0;0m /// at capacity) then `fulfill`s it from the GPU completion handler; the consumer
[0;36m10 |[0;0m /// `dequeue`s and `wait`s for each. Either side can stop the other.
[0;36m11 |[0;0m final class FrameChannel<Value> {
[0;36m|[0;0m `- [1;39mnote: [1;39mgeneric class 'FrameChannel' does not conform to the 'Sendable' protocol[0;0m
[0;36m12 |[0;0m // MARK: Lifecycle
[0;36m13 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:487:17: [1;33mwarning: [1;39mcapture of 'upscaler' with non-Sendable type 'Upscaler' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m485 |[0;0m )
[0;36m486 |[0;0m guard channel.enqueue(frame) else { return }
[0;36m487 |[0;0m upscaler.upscale(imageBuffer, pixelBufferPool: adaptor.pixelBufferPool) { upscaled in
[0;36m|[0;0m `- [1;33mwarning: [1;39mcapture of 'upscaler' with non-Sendable type 'Upscaler' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m488 |[0;0m frame.fulfill(upscaled)
[0;36m489 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/Upscaler.swift:11:20: [1;39mnote: [1;39mclass 'Upscaler' does not conform to the 'Sendable' protocol[0;0m
[0;36m9 |[0;0m // MARK: - Upscaler
[0;36m10 |[0;0m
[0;36m11 |[0;0m public final class Upscaler {
[0;36m|[0;0m `- [1;39mnote: [1;39mclass 'Upscaler' does not conform to the 'Sendable' protocol[0;0m
[0;36m12 |[0;0m // MARK: Lifecycle
[0;36m13 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:487:64: [1;33mwarning: [1;39mcapture of 'adaptor' with non-Sendable type 'AVAssetWriterInputPixelBufferAdaptor' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m485 |[0;0m )
[0;36m486 |[0;0m guard channel.enqueue(frame) else { return }
[0;36m487 |[0;0m upscaler.upscale(imageBuffer, pixelBufferPool: adaptor.pixelBufferPool) { upscaled in
[0;36m|[0;0m `- [1;33mwarning: [1;39mcapture of 'adaptor' with non-Sendable type 'AVAssetWriterInputPixelBufferAdaptor' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m488 |[0;0m frame.fulfill(upscaled)
[0;36m489 |[0;0m }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetWriterInput.h:554:12: [1;39mnote: [1;39mclass 'AVAssetWriterInputPixelBufferAdaptor' does not conform to the 'Sendable' protocol[0;0m
[0;36m552 |[0;0m API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
[0;36m553 |[0;0m #endif
[0;36m554 |[0;0m @interface AVAssetWriterInputPixelBufferAdaptor : NSObject
[0;36m|[0;0m `- [1;39mnote: [1;39mclass 'AVAssetWriterInputPixelBufferAdaptor' does not conform to the 'Sendable' protocol[0;0m
[0;36m555 |[0;0m {
[0;36m556 |[0;0m @private
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:500:23: [1;33mwarning: [1;39mcapture of 'assetWriterInput' with non-Sendable type 'AVAssetWriterInput' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m498 |[0;0m )
[0;36m499 |[0;0m assetWriterInput.requestMediaDataWhenReady(on: queue) {
[0;36m500 |[0;0m while assetWriterInput.isReadyForMoreMediaData {
[0;36m|[0;0m `- [1;33mwarning: [1;39mcapture of 'assetWriterInput' with non-Sendable type 'AVAssetWriterInput' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m501 |[0;0m guard let frame = channel.dequeue() else {
[0;36m502 |[0;0m assetWriterInput.markAsFinished()
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetWriterInput.h:39:12: [1;39mnote: [1;39mclass 'AVAssetWriterInput' does not conform to the 'Sendable' protocol[0;0m
[0;36m37 |[0;0m NS_SWIFT_NONSENDABLE
[0;36m38 |[0;0m API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
[0;36m39 |[0;0m @interface AVAssetWriterInput : NSObject
[0;36m|[0;0m `- [1;39mnote: [1;39mclass 'AVAssetWriterInput' does not conform to the 'Sendable' protocol[0;0m
[0;36m40 |[0;0m {
[0;36m41 |[0;0m @private
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:501:39: [1;33mwarning: [1;39mcapture of 'channel' with non-Sendable type 'FrameChannel<CVPixelBuffer>' (aka 'FrameChannel<CVBuffer>') in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m499 |[0;0m assetWriterInput.requestMediaDataWhenReady(on: queue) {
[0;36m500 |[0;0m while assetWriterInput.isReadyForMoreMediaData {
[0;36m501 |[0;0m guard let frame = channel.dequeue() else {
[0;36m|[0;0m `- [1;33mwarning: [1;39mcapture of 'channel' with non-Sendable type 'FrameChannel<CVPixelBuffer>' (aka 'FrameChannel<CVBuffer>') in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m502 |[0;0m assetWriterInput.markAsFinished()
[0;36m503 |[0;0m if let error = channel.terminationError {
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/FrameChannel.swift:11:13: [1;39mnote: [1;39mgeneric class 'FrameChannel' does not conform to the 'Sendable' protocol[0;0m
[0;36m9 |[0;0m /// at capacity) then `fulfill`s it from the GPU completion handler; the consumer
[0;36m10 |[0;0m /// `dequeue`s and `wait`s for each. Either side can stop the other.
[0;36m11 |[0;0m final class FrameChannel<Value> {
[0;36m|[0;0m `- [1;39mnote: [1;39mgeneric class 'FrameChannel' does not conform to the 'Sendable' protocol[0;0m
[0;36m12 |[0;0m // MARK: Lifecycle
[0;36m13 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:515:27: [1;33mwarning: [1;39mcapture of 'adaptor' with non-Sendable type 'AVAssetWriterInputPixelBufferAdaptor' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m513 |[0;0m DispatchQueue.main.async { progress.completedUnitCount = timestamp }
[0;36m514 |[0;0m }
[0;36m515 |[0;0m guard adaptor.append(
[0;36m|[0;0m `- [1;33mwarning: [1;39mcapture of 'adaptor' with non-Sendable type 'AVAssetWriterInputPixelBufferAdaptor' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m516 |[0;0m upscaledImageBuffer,
[0;36m517 |[0;0m withPresentationTime: frame.time
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetWriterInput.h:554:12: [1;39mnote: [1;39mclass 'AVAssetWriterInputPixelBufferAdaptor' does not conform to the 'Sendable' protocol[0;0m
[0;36m552 |[0;0m API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
[0;36m553 |[0;0m #endif
[0;36m554 |[0;0m @interface AVAssetWriterInputPixelBufferAdaptor : NSObject
[0;36m|[0;0m `- [1;39mnote: [1;39mclass 'AVAssetWriterInputPixelBufferAdaptor' does not conform to the 'Sendable' protocol[0;0m
[0;36m555 |[0;0m {
[0;36m556 |[0;0m @private
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:553:38: [1;33mwarning: [1;39mcapture of 'assetReaderOutput' with non-Sendable type 'AVAssetReaderOutput' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m551 |[0;0m )
[0;36m552 |[0;0m readerQueue.async {
[0;36m553 |[0;0m while let sampleBuffer = assetReaderOutput.copyNextSampleBuffer() {
[0;36m|[0;0m `- [1;33mwarning: [1;39mcapture of 'assetReaderOutput' with non-Sendable type 'AVAssetReaderOutput' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m554 |[0;0m guard let taggedBuffers = sampleBuffer.taggedBuffers else {
[0;36m555 |[0;0m channel.finish(throwing: Error.missingTaggedBuffers)
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetReaderOutput.h:43:12: [1;39mnote: [1;39mclass 'AVAssetReaderOutput' does not conform to the 'Sendable' protocol[0;0m
[0;36m41 |[0;0m NS_SWIFT_NONSENDABLE
[0;36m42 |[0;0m API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
[0;36m43 |[0;0m @interface AVAssetReaderOutput : NSObject
[0;36m|[0;0m `- [1;39mnote: [1;39mclass 'AVAssetReaderOutput' does not conform to the 'Sendable' protocol[0;0m
[0;36m44 |[0;0m {
[0;36m45 |[0;0m @private
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:555:21: [1;33mwarning: [1;39mcapture of 'channel' with non-Sendable type 'FrameChannel<(CVPixelBuffer, CVPixelBuffer)>' (aka 'FrameChannel<(CVBuffer, CVBuffer)>') in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m553 |[0;0m while let sampleBuffer = assetReaderOutput.copyNextSampleBuffer() {
[0;36m554 |[0;0m guard let taggedBuffers = sampleBuffer.taggedBuffers else {
[0;36m555 |[0;0m channel.finish(throwing: Error.missingTaggedBuffers)
[0;36m|[0;0m `- [1;33mwarning: [1;39mcapture of 'channel' with non-Sendable type 'FrameChannel<(CVPixelBuffer, CVPixelBuffer)>' (aka 'FrameChannel<(CVBuffer, CVBuffer)>') in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m556 |[0;0m return
[0;36m557 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/FrameChannel.swift:11:13: [1;39mnote: [1;39mgeneric class 'FrameChannel' does not conform to the 'Sendable' protocol[0;0m
[0;36m9 |[0;0m /// at capacity) then `fulfill`s it from the GPU completion handler; the consumer
[0;36m10 |[0;0m /// `dequeue`s and `wait`s for each. Either side can stop the other.
[0;36m11 |[0;0m final class FrameChannel<Value> {
[0;36m|[0;0m `- [1;39mnote: [1;39mgeneric class 'FrameChannel' does not conform to the 'Sendable' protocol[0;0m
[0;36m12 |[0;0m // MARK: Lifecycle
[0;36m13 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:579:17: [1;33mwarning: [1;39mcapture of 'upscaler' with non-Sendable type 'Upscaler' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m577 |[0;0m var upscaledRight: CVPixelBuffer?
[0;36m578 |[0;0m group.enter()
[0;36m579 |[0;0m upscaler.upscale(leftEyePixelBuffer, pixelBufferPool: adaptor.pixelBufferPool) {
[0;36m|[0;0m `- [1;33mwarning: [1;39mcapture of 'upscaler' with non-Sendable type 'Upscaler' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m580 |[0;0m upscaledLeft = $0
[0;36m581 |[0;0m group.leave()
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/Upscaler.swift:11:20: [1;39mnote: [1;39mclass 'Upscaler' does not conform to the 'Sendable' protocol[0;0m
[0;36m9 |[0;0m // MARK: - Upscaler
[0;36m10 |[0;0m
[0;36m11 |[0;0m public final class Upscaler {
[0;36m|[0;0m `- [1;39mnote: [1;39mclass 'Upscaler' does not conform to the 'Sendable' protocol[0;0m
[0;36m12 |[0;0m // MARK: Lifecycle
[0;36m13 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:579:71: [1;33mwarning: [1;39mcapture of 'adaptor' with non-Sendable type 'AVAssetWriterInputTaggedPixelBufferGroupAdaptor' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m577 |[0;0m var upscaledRight: CVPixelBuffer?
[0;36m578 |[0;0m group.enter()
[0;36m579 |[0;0m upscaler.upscale(leftEyePixelBuffer, pixelBufferPool: adaptor.pixelBufferPool) {
[0;36m|[0;0m `- [1;33mwarning: [1;39mcapture of 'adaptor' with non-Sendable type 'AVAssetWriterInputTaggedPixelBufferGroupAdaptor' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m580 |[0;0m upscaledLeft = $0
[0;36m581 |[0;0m group.leave()
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetWriterInput.h:648:12: [1;39mnote: [1;39mclass 'AVAssetWriterInputTaggedPixelBufferGroupAdaptor' does not conform to the 'Sendable' protocol[0;0m
[0;36m646 |[0;0m API_AVAILABLE(macos(14.0), ios(17.0), visionos(1.0)) API_UNAVAILABLE(tvos, watchos)
[0;36m647 |[0;0m #endif
[0;36m648 |[0;0m @interface AVAssetWriterInputTaggedPixelBufferGroupAdaptor : NSObject
[0;36m|[0;0m `- [1;39mnote: [1;39mclass 'AVAssetWriterInputTaggedPixelBufferGroupAdaptor' does not conform to the 'Sendable' protocol[0;0m
[0;36m649 |[0;0m AV_INIT_UNAVAILABLE
[0;36m650 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:601:23: [1;33mwarning: [1;39mcapture of 'assetWriterInput' with non-Sendable type 'AVAssetWriterInput' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m599 |[0;0m )
[0;36m600 |[0;0m assetWriterInput.requestMediaDataWhenReady(on: queue) {
[0;36m601 |[0;0m while assetWriterInput.isReadyForMoreMediaData {
[0;36m|[0;0m `- [1;33mwarning: [1;39mcapture of 'assetWriterInput' with non-Sendable type 'AVAssetWriterInput' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m602 |[0;0m guard let frame = channel.dequeue() else {
[0;36m603 |[0;0m assetWriterInput.markAsFinished()
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetWriterInput.h:39:12: [1;39mnote: [1;39mclass 'AVAssetWriterInput' does not conform to the 'Sendable' protocol[0;0m
[0;36m37 |[0;0m NS_SWIFT_NONSENDABLE
[0;36m38 |[0;0m API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
[0;36m39 |[0;0m @interface AVAssetWriterInput : NSObject
[0;36m|[0;0m `- [1;39mnote: [1;39mclass 'AVAssetWriterInput' does not conform to the 'Sendable' protocol[0;0m
[0;36m40 |[0;0m {
[0;36m41 |[0;0m @private
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:602:39: [1;33mwarning: [1;39mcapture of 'channel' with non-Sendable type 'FrameChannel<(CVPixelBuffer, CVPixelBuffer)>' (aka 'FrameChannel<(CVBuffer, CVBuffer)>') in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m600 |[0;0m assetWriterInput.requestMediaDataWhenReady(on: queue) {
[0;36m601 |[0;0m while assetWriterInput.isReadyForMoreMediaData {
[0;36m602 |[0;0m guard let frame = channel.dequeue() else {
[0;36m|[0;0m `- [1;33mwarning: [1;39mcapture of 'channel' with non-Sendable type 'FrameChannel<(CVPixelBuffer, CVPixelBuffer)>' (aka 'FrameChannel<(CVBuffer, CVBuffer)>') in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m603 |[0;0m assetWriterInput.markAsFinished()
[0;36m604 |[0;0m if let error = channel.terminationError {
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/FrameChannel.swift:11:13: [1;39mnote: [1;39mgeneric class 'FrameChannel' does not conform to the 'Sendable' protocol[0;0m
[0;36m9 |[0;0m /// at capacity) then `fulfill`s it from the GPU completion handler; the consumer
[0;36m10 |[0;0m /// `dequeue`s and `wait`s for each. Either side can stop the other.
[0;36m11 |[0;0m final class FrameChannel<Value> {
[0;36m|[0;0m `- [1;39mnote: [1;39mgeneric class 'FrameChannel' does not conform to the 'Sendable' protocol[0;0m
[0;36m12 |[0;0m // MARK: Lifecycle
[0;36m13 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:624:27: [1;33mwarning: [1;39mcapture of 'adaptor' with non-Sendable type 'AVAssetWriterInputTaggedPixelBufferGroupAdaptor' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m622 |[0;0m pixelBuffer: upscaledRightEyePixelBuffer
[0;36m623 |[0;0m )
[0;36m624 |[0;0m guard adaptor.appendTaggedBuffers(
[0;36m|[0;0m `- [1;33mwarning: [1;39mcapture of 'adaptor' with non-Sendable type 'AVAssetWriterInputTaggedPixelBufferGroupAdaptor' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m625 |[0;0m [leftEyeTaggedBuffer, rightEyeTaggedBuffer],
[0;36m626 |[0;0m withPresentationTime: frame.time
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetWriterInput.h:648:12: [1;39mnote: [1;39mclass 'AVAssetWriterInputTaggedPixelBufferGroupAdaptor' does not conform to the 'Sendable' protocol[0;0m
[0;36m646 |[0;0m API_AVAILABLE(macos(14.0), ios(17.0), visionos(1.0)) API_UNAVAILABLE(tvos, watchos)
[0;36m647 |[0;0m #endif
[0;36m648 |[0;0m @interface AVAssetWriterInputTaggedPixelBufferGroupAdaptor : NSObject
[0;36m|[0;0m `- [1;39mnote: [1;39mclass 'AVAssetWriterInputTaggedPixelBufferGroupAdaptor' does not conform to the 'Sendable' protocol[0;0m
[0;36m649 |[0;0m AV_INIT_UNAVAILABLE
[0;36m650 |[0;0m
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
Build complete.
{
"dependencies" : [
{
"identity" : "swift-argument-parser",
"requirement" : {
"range" : [
{
"lower_bound" : "1.2.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-argument-parser.git"
},
{
"identity" : "swifttui",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.4",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/Finnvoor/SwiftTUI.git"
}
],
"manifest_display_name" : "fx-upscale",
"name" : "fx-upscale",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "13.0"
},
{
"name" : "ios",
"version" : "16.0"
}
],
"products" : [
{
"name" : "fx-upscale",
"targets" : [
"fx-upscale"
],
"type" : {
"executable" : null
}
},
{
"name" : "Upscaling",
"targets" : [
"Upscaling"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "fx_upscale",
"module_type" : "SwiftTarget",
"name" : "fx-upscale",
"path" : "Sources/fx-upscale",
"product_dependencies" : [
"ArgumentParser",
"SwiftTUI"
],
"product_memberships" : [
"fx-upscale"
],
"sources" : [
"FXUpscale.swift"
],
"target_dependencies" : [
"Upscaling"
],
"type" : "executable"
},
{
"c99name" : "UpscalingTests",
"module_type" : "SwiftTarget",
"name" : "UpscalingTests",
"path" : "Tests/UpscalingTests",
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/UpscalingTests/Resources/ladybird.jpg",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/UpscalingTests/Resources/test.png",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"UpscalingTests.swift"
],
"target_dependencies" : [
"Upscaling"
],
"type" : "test"
},
{
"c99name" : "Upscaling",
"module_type" : "SwiftTarget",
"name" : "Upscaling",
"path" : "Sources/Upscaling",
"product_memberships" : [
"fx-upscale",
"Upscaling"
],
"sources" : [
"CoreImage/UpscalingFilter.swift",
"CoreImage/UpscalingImageProcessorKernel.swift",
"Extensions/AVVideoCodecType+Extensions.swift",
"Extensions/CMFormatDescription+Extensions.swift",
"Extensions/CVPixelBuffer+Extensions.swift",
"Extensions/MTLFXSpatialScaler+Extensions.swift",
"Extensions/MTLFXSpatialScalerDescriptor+Extensions.swift",
"Extensions/MTLTexture+Extensions.swift",
"Extensions/URL+Extensions.swift",
"FrameChannel.swift",
"Upscaler.swift",
"UpscalingExportSession.swift"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
Done.