Build Information
Successful build of fx-upscale, reference main (46601b), with Swift 6.2 for macOS (SPM) on 24 Jul 2026 19:06:07 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-26.3.0.app xcrun swift build --arch arm64Build Log
========================================
RunAll
========================================
Builder version: undefined version: run 'make version' to update
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.2
Building package at path: $PWD
https://github.com/finnvoor/fx-upscale.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.3.0.app xcrun swift build --arch arm64
[1/1] Compiling plugin GenerateManual
[2/2] Compiling plugin GenerateDoccReference
Building for debugging...
[2/12] Write sources
[3/12] Write fx-upscale-entitlement.plist
[3/12] Write sources
[8/12] Write swift-version--3CB7CFEC50E0D141.txt
[10/35] Compiling ArgumentParserToolInfo ToolInfo.swift
[11/35] Emitting module ArgumentParserToolInfo
[12/83] Compiling SwiftTUI Window.swift
[13/83] Compiling SwiftTUI Termios.swift
[14/83] Compiling SwiftTUI String+ANSI.swift
[15/83] Compiling SwiftTUI ActivityIndicator.swift
[16/83] Compiling SwiftTUI CommandLine.swift
[17/83] Compiling SwiftTUI Key.swift
[18/83] Compiling SwiftTUI Cursor.swift
[19/83] Emitting module SwiftTUI
[20/83] Compiling SwiftTUI ProgressBar.swift
[21/83] Emitting module ArgumentParser
[22/88] Compiling ArgumentParser CommandGroup.swift
[23/88] Compiling ArgumentParser EnumerableFlag.swift
[24/88] Compiling ArgumentParser ExpressibleByArgument.swift
[25/88] Compiling ArgumentParser ParsableArguments.swift
[26/88] Compiling ArgumentParser ParsableCommand.swift
[27/88] Compiling ArgumentParser SequenceExtensions.swift
[28/88] Compiling ArgumentParser StringExtensions.swift
[29/88] Compiling ArgumentParser SwiftExtensions.swift
[30/88] Compiling ArgumentParser Tree.swift
[31/88] Compiling ArgumentParser AsyncCompletionsValidator.swift
[32/88] Compiling ArgumentParser ArgumentHelp.swift
[33/88] Compiling ArgumentParser ArgumentVisibility.swift
[34/88] Compiling ArgumentParser CompletionKind.swift
[35/88] Compiling ArgumentParser Errors.swift
[36/88] Compiling ArgumentParser Flag.swift
[37/88] Compiling ArgumentParser NameSpecification.swift
[38/88] Compiling ArgumentParser UsageGenerator.swift
[39/88] Compiling ArgumentParser CollectionExtensions.swift
[40/88] Compiling ArgumentParser Foundation.swift
[41/88] Compiling ArgumentParser Mutex.swift
[42/88] Compiling ArgumentParser Platform.swift
[43/88] Compiling ArgumentParser CodingKeyValidator.swift
[44/88] Compiling ArgumentParser NonsenseFlagsValidator.swift
[45/88] Compiling ArgumentParser ParsableArgumentsValidation.swift
[46/88] Compiling ArgumentParser PositionalArgumentsValidator.swift
[47/88] Compiling ArgumentParser UniqueNamesValidator.swift
[48/88] Compiling ArgumentParser BashCompletionsGenerator.swift
[49/88] Compiling ArgumentParser CompletionsGenerator.swift
[50/88] Compiling ArgumentParser FishCompletionsGenerator.swift
[51/88] Compiling ArgumentParser ZshCompletionsGenerator.swift
[52/88] Compiling ArgumentParser Argument.swift
[53/88] Compiling ArgumentParser ArgumentDiscussion.swift
[54/88] Compiling ArgumentParser SplitArguments.swift
[55/88] Compiling ArgumentParser DumpHelpGenerator.swift
[56/88] Compiling ArgumentParser HelpCommand.swift
[57/88] Compiling ArgumentParser HelpGenerator.swift
[58/88] Compiling ArgumentParser MessageInfo.swift
[59/88] Compiling ArgumentParser Option.swift
[60/88] Compiling ArgumentParser OptionGroup.swift
[61/88] Compiling ArgumentParser ParentCommand.swift
[62/88] Compiling ArgumentParser AsyncParsableCommand.swift
[63/88] Compiling ArgumentParser CommandConfiguration.swift
[64/88] Compiling ArgumentParser InputOrigin.swift
[65/88] Compiling ArgumentParser Name.swift
[66/88] Compiling ArgumentParser Parsed.swift
[67/88] Compiling ArgumentParser ParsedValues.swift
[68/88] Compiling ArgumentParser ParserError.swift
[69/88] Compiling ArgumentParser ArgumentDecoder.swift
[70/88] Compiling ArgumentParser ArgumentDefinition.swift
[71/88] Compiling ArgumentParser ArgumentSet.swift
[72/88] Compiling ArgumentParser CommandParser.swift
[73/88] Compiling ArgumentParser InputKey.swift
[74/88] Compiling Upscaling MTLTexture+Extensions.swift
[75/89] Compiling Upscaling MTLFXSpatialScalerDescriptor+Extensions.swift
[76/89] Compiling Upscaling MTLFXSpatialScaler+Extensions.swift
[77/89] Compiling Upscaling CVPixelBuffer+Extensions.swift
[78/89] Compiling Upscaling URL+Extensions.swift
[79/89] Compiling Upscaling FrameChannel.swift
[80/89] Compiling Upscaling Upscaler.swift
[81/89] Emitting module Upscaling
[86/89] Compiling Upscaling UpscalingExportSession.swift
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:430:23: warning: capture of 'assetWriterInput' with non-Sendable type 'AVAssetWriterInput' in a '@Sendable' closure [#SendableClosureCaptures]
428 | )
429 | assetWriterInput.requestMediaDataWhenReady(on: queue) {
430 | while assetWriterInput.isReadyForMoreMediaData {
| `- warning: capture of 'assetWriterInput' with non-Sendable type 'AVAssetWriterInput' in a '@Sendable' closure [#SendableClosureCaptures]
431 | if let nextSampleBuffer = assetReaderOutput.copyNextSampleBuffer() {
432 | if nextSampleBuffer.presentationTimeStamp.isNumeric {
/Applications/Xcode-26.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.2.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetWriterInput.h:39:12: note: class 'AVAssetWriterInput' does not conform to the 'Sendable' protocol
37 | NS_SWIFT_NONSENDABLE
38 | API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
39 | @interface AVAssetWriterInput : NSObject
| `- note: class 'AVAssetWriterInput' does not conform to the 'Sendable' protocol
40 | {
41 | @private
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:431:47: warning: capture of 'assetReaderOutput' with non-Sendable type 'AVAssetReaderOutput' in a '@Sendable' closure [#SendableClosureCaptures]
429 | assetWriterInput.requestMediaDataWhenReady(on: queue) {
430 | while assetWriterInput.isReadyForMoreMediaData {
431 | if let nextSampleBuffer = assetReaderOutput.copyNextSampleBuffer() {
| `- warning: capture of 'assetReaderOutput' with non-Sendable type 'AVAssetReaderOutput' in a '@Sendable' closure [#SendableClosureCaptures]
432 | if nextSampleBuffer.presentationTimeStamp.isNumeric {
433 | let timestamp = Int64(nextSampleBuffer.presentationTimeStamp.seconds)
/Applications/Xcode-26.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.2.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetReaderOutput.h:43:12: note: class 'AVAssetReaderOutput' does not conform to the 'Sendable' protocol
41 | NS_SWIFT_NONSENDABLE
42 | API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
43 | @interface AVAssetReaderOutput : NSObject
| `- note: class 'AVAssetReaderOutput' does not conform to the 'Sendable' protocol
44 | {
45 | @private
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:478:38: warning: capture of 'assetReaderOutput' with non-Sendable type 'AVAssetReaderOutput' in a '@Sendable' closure [#SendableClosureCaptures]
476 | qos: .userInitiated
477 | ).async {
478 | while let sampleBuffer = assetReaderOutput.copyNextSampleBuffer() {
| `- warning: capture of 'assetReaderOutput' with non-Sendable type 'AVAssetReaderOutput' in a '@Sendable' closure [#SendableClosureCaptures]
479 | guard let imageBuffer = sampleBuffer.imageBuffer else {
480 | channel.finish(throwing: Error.missingImageBuffer)
/Applications/Xcode-26.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.2.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetReaderOutput.h:43:12: note: class 'AVAssetReaderOutput' does not conform to the 'Sendable' protocol
41 | NS_SWIFT_NONSENDABLE
42 | API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
43 | @interface AVAssetReaderOutput : NSObject
| `- note: class 'AVAssetReaderOutput' does not conform to the 'Sendable' protocol
44 | {
45 | @private
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:480:21: warning: capture of 'channel' with non-Sendable type 'FrameChannel<CVPixelBuffer>' (aka 'FrameChannel<CVBuffer>') in a '@Sendable' closure [#SendableClosureCaptures]
478 | while let sampleBuffer = assetReaderOutput.copyNextSampleBuffer() {
479 | guard let imageBuffer = sampleBuffer.imageBuffer else {
480 | channel.finish(throwing: Error.missingImageBuffer)
| `- warning: capture of 'channel' with non-Sendable type 'FrameChannel<CVPixelBuffer>' (aka 'FrameChannel<CVBuffer>') in a '@Sendable' closure [#SendableClosureCaptures]
481 | return
482 | }
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/FrameChannel.swift:11:13: note: generic class 'FrameChannel' does not conform to the 'Sendable' protocol
9 | /// at capacity) then `fulfill`s it from the GPU completion handler; the consumer
10 | /// `dequeue`s and `wait`s for each. Either side can stop the other.
11 | final class FrameChannel<Value> {
| `- note: generic class 'FrameChannel' does not conform to the 'Sendable' protocol
12 | // MARK: Lifecycle
13 |
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:487:17: warning: capture of 'upscaler' with non-Sendable type 'Upscaler' in a '@Sendable' closure [#SendableClosureCaptures]
485 | )
486 | guard channel.enqueue(frame) else { return }
487 | upscaler.upscale(imageBuffer, pixelBufferPool: adaptor.pixelBufferPool) { upscaled in
| `- warning: capture of 'upscaler' with non-Sendable type 'Upscaler' in a '@Sendable' closure [#SendableClosureCaptures]
488 | frame.fulfill(upscaled)
489 | }
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/Upscaler.swift:11:20: note: class 'Upscaler' does not conform to the 'Sendable' protocol
9 | // MARK: - Upscaler
10 |
11 | public final class Upscaler {
| `- note: class 'Upscaler' does not conform to the 'Sendable' protocol
12 | // MARK: Lifecycle
13 |
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:487:64: warning: capture of 'adaptor' with non-Sendable type 'AVAssetWriterInputPixelBufferAdaptor' in a '@Sendable' closure [#SendableClosureCaptures]
485 | )
486 | guard channel.enqueue(frame) else { return }
487 | upscaler.upscale(imageBuffer, pixelBufferPool: adaptor.pixelBufferPool) { upscaled in
| `- warning: capture of 'adaptor' with non-Sendable type 'AVAssetWriterInputPixelBufferAdaptor' in a '@Sendable' closure [#SendableClosureCaptures]
488 | frame.fulfill(upscaled)
489 | }
/Applications/Xcode-26.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.2.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetWriterInput.h:554:12: note: class 'AVAssetWriterInputPixelBufferAdaptor' does not conform to the 'Sendable' protocol
552 | API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
553 | #endif
554 | @interface AVAssetWriterInputPixelBufferAdaptor : NSObject
| `- note: class 'AVAssetWriterInputPixelBufferAdaptor' does not conform to the 'Sendable' protocol
555 | {
556 | @private
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:500:23: warning: capture of 'assetWriterInput' with non-Sendable type 'AVAssetWriterInput' in a '@Sendable' closure [#SendableClosureCaptures]
498 | )
499 | assetWriterInput.requestMediaDataWhenReady(on: queue) {
500 | while assetWriterInput.isReadyForMoreMediaData {
| `- warning: capture of 'assetWriterInput' with non-Sendable type 'AVAssetWriterInput' in a '@Sendable' closure [#SendableClosureCaptures]
501 | guard let frame = channel.dequeue() else {
502 | assetWriterInput.markAsFinished()
/Applications/Xcode-26.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.2.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetWriterInput.h:39:12: note: class 'AVAssetWriterInput' does not conform to the 'Sendable' protocol
37 | NS_SWIFT_NONSENDABLE
38 | API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
39 | @interface AVAssetWriterInput : NSObject
| `- note: class 'AVAssetWriterInput' does not conform to the 'Sendable' protocol
40 | {
41 | @private
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:501:39: warning: capture of 'channel' with non-Sendable type 'FrameChannel<CVPixelBuffer>' (aka 'FrameChannel<CVBuffer>') in a '@Sendable' closure [#SendableClosureCaptures]
499 | assetWriterInput.requestMediaDataWhenReady(on: queue) {
500 | while assetWriterInput.isReadyForMoreMediaData {
501 | guard let frame = channel.dequeue() else {
| `- warning: capture of 'channel' with non-Sendable type 'FrameChannel<CVPixelBuffer>' (aka 'FrameChannel<CVBuffer>') in a '@Sendable' closure [#SendableClosureCaptures]
502 | assetWriterInput.markAsFinished()
503 | if let error = channel.terminationError {
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/FrameChannel.swift:11:13: note: generic class 'FrameChannel' does not conform to the 'Sendable' protocol
9 | /// at capacity) then `fulfill`s it from the GPU completion handler; the consumer
10 | /// `dequeue`s and `wait`s for each. Either side can stop the other.
11 | final class FrameChannel<Value> {
| `- note: generic class 'FrameChannel' does not conform to the 'Sendable' protocol
12 | // MARK: Lifecycle
13 |
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:515:27: warning: capture of 'adaptor' with non-Sendable type 'AVAssetWriterInputPixelBufferAdaptor' in a '@Sendable' closure [#SendableClosureCaptures]
513 | DispatchQueue.main.async { progress.completedUnitCount = timestamp }
514 | }
515 | guard adaptor.append(
| `- warning: capture of 'adaptor' with non-Sendable type 'AVAssetWriterInputPixelBufferAdaptor' in a '@Sendable' closure [#SendableClosureCaptures]
516 | upscaledImageBuffer,
517 | withPresentationTime: frame.time
/Applications/Xcode-26.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.2.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetWriterInput.h:554:12: note: class 'AVAssetWriterInputPixelBufferAdaptor' does not conform to the 'Sendable' protocol
552 | API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
553 | #endif
554 | @interface AVAssetWriterInputPixelBufferAdaptor : NSObject
| `- note: class 'AVAssetWriterInputPixelBufferAdaptor' does not conform to the 'Sendable' protocol
555 | {
556 | @private
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:553:38: warning: capture of 'assetReaderOutput' with non-Sendable type 'AVAssetReaderOutput' in a '@Sendable' closure [#SendableClosureCaptures]
551 | )
552 | readerQueue.async {
553 | while let sampleBuffer = assetReaderOutput.copyNextSampleBuffer() {
| `- warning: capture of 'assetReaderOutput' with non-Sendable type 'AVAssetReaderOutput' in a '@Sendable' closure [#SendableClosureCaptures]
554 | guard let taggedBuffers = sampleBuffer.taggedBuffers else {
555 | channel.finish(throwing: Error.missingTaggedBuffers)
/Applications/Xcode-26.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.2.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetReaderOutput.h:43:12: note: class 'AVAssetReaderOutput' does not conform to the 'Sendable' protocol
41 | NS_SWIFT_NONSENDABLE
42 | API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
43 | @interface AVAssetReaderOutput : NSObject
| `- note: class 'AVAssetReaderOutput' does not conform to the 'Sendable' protocol
44 | {
45 | @private
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:555:21: warning: capture of 'channel' with non-Sendable type 'FrameChannel<(CVPixelBuffer, CVPixelBuffer)>' (aka 'FrameChannel<(CVBuffer, CVBuffer)>') in a '@Sendable' closure [#SendableClosureCaptures]
553 | while let sampleBuffer = assetReaderOutput.copyNextSampleBuffer() {
554 | guard let taggedBuffers = sampleBuffer.taggedBuffers else {
555 | channel.finish(throwing: Error.missingTaggedBuffers)
| `- warning: capture of 'channel' with non-Sendable type 'FrameChannel<(CVPixelBuffer, CVPixelBuffer)>' (aka 'FrameChannel<(CVBuffer, CVBuffer)>') in a '@Sendable' closure [#SendableClosureCaptures]
556 | return
557 | }
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/FrameChannel.swift:11:13: note: generic class 'FrameChannel' does not conform to the 'Sendable' protocol
9 | /// at capacity) then `fulfill`s it from the GPU completion handler; the consumer
10 | /// `dequeue`s and `wait`s for each. Either side can stop the other.
11 | final class FrameChannel<Value> {
| `- note: generic class 'FrameChannel' does not conform to the 'Sendable' protocol
12 | // MARK: Lifecycle
13 |
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:579:17: warning: capture of 'upscaler' with non-Sendable type 'Upscaler' in a '@Sendable' closure [#SendableClosureCaptures]
577 | var upscaledRight: CVPixelBuffer?
578 | group.enter()
579 | upscaler.upscale(leftEyePixelBuffer, pixelBufferPool: adaptor.pixelBufferPool) {
| `- warning: capture of 'upscaler' with non-Sendable type 'Upscaler' in a '@Sendable' closure [#SendableClosureCaptures]
580 | upscaledLeft = $0
581 | group.leave()
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/Upscaler.swift:11:20: note: class 'Upscaler' does not conform to the 'Sendable' protocol
9 | // MARK: - Upscaler
10 |
11 | public final class Upscaler {
| `- note: class 'Upscaler' does not conform to the 'Sendable' protocol
12 | // MARK: Lifecycle
13 |
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:579:71: warning: capture of 'adaptor' with non-Sendable type 'AVAssetWriterInputTaggedPixelBufferGroupAdaptor' in a '@Sendable' closure [#SendableClosureCaptures]
577 | var upscaledRight: CVPixelBuffer?
578 | group.enter()
579 | upscaler.upscale(leftEyePixelBuffer, pixelBufferPool: adaptor.pixelBufferPool) {
| `- warning: capture of 'adaptor' with non-Sendable type 'AVAssetWriterInputTaggedPixelBufferGroupAdaptor' in a '@Sendable' closure [#SendableClosureCaptures]
580 | upscaledLeft = $0
581 | group.leave()
/Applications/Xcode-26.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.2.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetWriterInput.h:648:12: note: class 'AVAssetWriterInputTaggedPixelBufferGroupAdaptor' does not conform to the 'Sendable' protocol
646 | API_AVAILABLE(macos(14.0), ios(17.0), visionos(1.0)) API_UNAVAILABLE(tvos, watchos)
647 | #endif
648 | @interface AVAssetWriterInputTaggedPixelBufferGroupAdaptor : NSObject
| `- note: class 'AVAssetWriterInputTaggedPixelBufferGroupAdaptor' does not conform to the 'Sendable' protocol
649 | AV_INIT_UNAVAILABLE
650 |
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:601:23: warning: capture of 'assetWriterInput' with non-Sendable type 'AVAssetWriterInput' in a '@Sendable' closure [#SendableClosureCaptures]
599 | )
600 | assetWriterInput.requestMediaDataWhenReady(on: queue) {
601 | while assetWriterInput.isReadyForMoreMediaData {
| `- warning: capture of 'assetWriterInput' with non-Sendable type 'AVAssetWriterInput' in a '@Sendable' closure [#SendableClosureCaptures]
602 | guard let frame = channel.dequeue() else {
603 | assetWriterInput.markAsFinished()
/Applications/Xcode-26.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.2.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetWriterInput.h:39:12: note: class 'AVAssetWriterInput' does not conform to the 'Sendable' protocol
37 | NS_SWIFT_NONSENDABLE
38 | API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
39 | @interface AVAssetWriterInput : NSObject
| `- note: class 'AVAssetWriterInput' does not conform to the 'Sendable' protocol
40 | {
41 | @private
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:602:39: warning: capture of 'channel' with non-Sendable type 'FrameChannel<(CVPixelBuffer, CVPixelBuffer)>' (aka 'FrameChannel<(CVBuffer, CVBuffer)>') in a '@Sendable' closure [#SendableClosureCaptures]
600 | assetWriterInput.requestMediaDataWhenReady(on: queue) {
601 | while assetWriterInput.isReadyForMoreMediaData {
602 | guard let frame = channel.dequeue() else {
| `- warning: capture of 'channel' with non-Sendable type 'FrameChannel<(CVPixelBuffer, CVPixelBuffer)>' (aka 'FrameChannel<(CVBuffer, CVBuffer)>') in a '@Sendable' closure [#SendableClosureCaptures]
603 | assetWriterInput.markAsFinished()
604 | if let error = channel.terminationError {
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/FrameChannel.swift:11:13: note: generic class 'FrameChannel' does not conform to the 'Sendable' protocol
9 | /// at capacity) then `fulfill`s it from the GPU completion handler; the consumer
10 | /// `dequeue`s and `wait`s for each. Either side can stop the other.
11 | final class FrameChannel<Value> {
| `- note: generic class 'FrameChannel' does not conform to the 'Sendable' protocol
12 | // MARK: Lifecycle
13 |
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:624:27: warning: capture of 'adaptor' with non-Sendable type 'AVAssetWriterInputTaggedPixelBufferGroupAdaptor' in a '@Sendable' closure [#SendableClosureCaptures]
622 | pixelBuffer: upscaledRightEyePixelBuffer
623 | )
624 | guard adaptor.appendTaggedBuffers(
| `- warning: capture of 'adaptor' with non-Sendable type 'AVAssetWriterInputTaggedPixelBufferGroupAdaptor' in a '@Sendable' closure [#SendableClosureCaptures]
625 | [leftEyeTaggedBuffer, rightEyeTaggedBuffer],
626 | withPresentationTime: frame.time
/Applications/Xcode-26.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.2.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetWriterInput.h:648:12: note: class 'AVAssetWriterInputTaggedPixelBufferGroupAdaptor' does not conform to the 'Sendable' protocol
646 | API_AVAILABLE(macos(14.0), ios(17.0), visionos(1.0)) API_UNAVAILABLE(tvos, watchos)
647 | #endif
648 | @interface AVAssetWriterInputTaggedPixelBufferGroupAdaptor : NSObject
| `- note: class 'AVAssetWriterInputTaggedPixelBufferGroupAdaptor' does not conform to the 'Sendable' protocol
649 | AV_INIT_UNAVAILABLE
650 |
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[87/91] Emitting module fx_upscale
[88/91] Compiling fx_upscale FXUpscale.swift
[88/91] Write Objects.LinkFileList
[89/91] Linking fx-upscale
[90/91] Applying fx-upscale
Build complete! (19.19s)
Fetching https://github.com/apple/swift-argument-parser.git
Fetching https://github.com/Finnvoor/SwiftTUI.git
[1/18215] Fetching swift-argument-parser
[184/18295] Fetching swift-argument-parser, swifttui
Fetched https://github.com/Finnvoor/SwiftTUI.git from cache (1.81s)
Fetched https://github.com/apple/swift-argument-parser.git from cache (1.81s)
Computing version for https://github.com/Finnvoor/SwiftTUI.git
Computed https://github.com/Finnvoor/SwiftTUI.git at 1.0.4 (2.39s)
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.61s)
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
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.