The Swift Package Index logo.Swift Package Index

Build Information

Successful build of fx-upscale, reference 1.3.2 (46601b), with Swift 6.2 for macOS (SPM) on 24 Jul 2026 00:25:41 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-26.3.0.app xcrun swift build --arch arm64

Build 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: 1.3.2
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/finnvoor/fx-upscale
 * tag               1.3.2      -> FETCH_HEAD
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 1.3.2
========================================
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
[5/12] Write fx-upscale-entitlement.plist
[5/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 Key.swift
[16/83] Compiling SwiftTUI Cursor.swift
[17/83] Compiling SwiftTUI CommandLine.swift
[18/83] Emitting module SwiftTUI
[19/83] Compiling SwiftTUI ActivityIndicator.swift
[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 InputOrigin.swift
[28/88] Compiling ArgumentParser Name.swift
[29/88] Compiling ArgumentParser Parsed.swift
[30/88] Compiling ArgumentParser ParsedValues.swift
[31/88] Compiling ArgumentParser ParserError.swift
[32/88] Compiling ArgumentParser CodingKeyValidator.swift
[33/88] Compiling ArgumentParser NonsenseFlagsValidator.swift
[34/88] Compiling ArgumentParser ParsableArgumentsValidation.swift
[35/88] Compiling ArgumentParser PositionalArgumentsValidator.swift
[36/88] Compiling ArgumentParser UniqueNamesValidator.swift
[37/88] Compiling ArgumentParser BashCompletionsGenerator.swift
[38/88] Compiling ArgumentParser CompletionsGenerator.swift
[39/88] Compiling ArgumentParser FishCompletionsGenerator.swift
[40/88] Compiling ArgumentParser ZshCompletionsGenerator.swift
[41/88] Compiling ArgumentParser Argument.swift
[42/88] Compiling ArgumentParser ArgumentDiscussion.swift
[43/88] Compiling ArgumentParser SplitArguments.swift
[44/88] Compiling ArgumentParser DumpHelpGenerator.swift
[45/88] Compiling ArgumentParser HelpCommand.swift
[46/88] Compiling ArgumentParser HelpGenerator.swift
[47/88] Compiling ArgumentParser MessageInfo.swift
[48/88] Compiling ArgumentParser UsageGenerator.swift
[49/88] Compiling ArgumentParser CollectionExtensions.swift
[50/88] Compiling ArgumentParser Foundation.swift
[51/88] Compiling ArgumentParser Mutex.swift
[52/88] Compiling ArgumentParser Platform.swift
[53/88] Compiling ArgumentParser ArgumentHelp.swift
[54/88] Compiling ArgumentParser ArgumentVisibility.swift
[55/88] Compiling ArgumentParser CompletionKind.swift
[56/88] Compiling ArgumentParser Errors.swift
[57/88] Compiling ArgumentParser Flag.swift
[58/88] Compiling ArgumentParser NameSpecification.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 ArgumentDecoder.swift
[65/88] Compiling ArgumentParser ArgumentDefinition.swift
[66/88] Compiling ArgumentParser ArgumentSet.swift
[67/88] Compiling ArgumentParser CommandParser.swift
[68/88] Compiling ArgumentParser InputKey.swift
[69/88] Compiling ArgumentParser SequenceExtensions.swift
[70/88] Compiling ArgumentParser StringExtensions.swift
[71/88] Compiling ArgumentParser SwiftExtensions.swift
[72/88] Compiling ArgumentParser Tree.swift
[73/88] Compiling ArgumentParser AsyncCompletionsValidator.swift
[74/88] Compiling Upscaling MTLFXSpatialScalerDescriptor+Extensions.swift
[75/88] Compiling Upscaling CVPixelBuffer+Extensions.swift
[76/88] Compiling Upscaling MTLFXSpatialScaler+Extensions.swift
[77/89] Compiling Upscaling MTLTexture+Extensions.swift
[78/89] Compiling Upscaling URL+Extensions.swift
[79/89] Compiling Upscaling Upscaler.swift
[80/89] Compiling Upscaling FrameChannel.swift
[83/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! (18.34s)
Fetching https://github.com/apple/swift-argument-parser.git
Fetching https://github.com/Finnvoor/SwiftTUI.git
[1/80] Fetching swifttui
[81/18295] Fetching swifttui, swift-argument-parser
Fetched https://github.com/Finnvoor/SwiftTUI.git from cache (1.84s)
Fetched https://github.com/apple/swift-argument-parser.git from cache (1.84s)
Computing version for https://github.com/Finnvoor/SwiftTUI.git
Computed https://github.com/Finnvoor/SwiftTUI.git at 1.0.4 (2.40s)
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.55s)
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.