The Swift Package Index logo.Swift Package Index

Build Information

Successful build of fx-upscale, reference main (46601b), with Swift 6.3 for macOS (SPM) on 24 Jul 2026 19:00:28 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-26.4.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: 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
Fetching https://github.com/Finnvoor/SwiftTUI.git
Fetching https://github.com/apple/swift-argument-parser.git
[1/80] Fetching swifttui
[81/18295] Fetching swifttui, swift-argument-parser
Fetched https://github.com/apple/swift-argument-parser.git from cache (1.56s)
Fetched https://github.com/Finnvoor/SwiftTUI.git from cache (1.56s)
Computing version for https://github.com/Finnvoor/SwiftTUI.git
Computed https://github.com/Finnvoor/SwiftTUI.git at 1.0.4 (2.15s)
Computing version for https://github.com/apple/swift-argument-parser.git
Computed https://github.com/apple/swift-argument-parser.git at 1.3.0 (0.58s)
Creating working copy for https://github.com/Finnvoor/SwiftTUI.git
Working copy of https://github.com/Finnvoor/SwiftTUI.git resolved at 1.0.4
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.3.0
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
  "identity": ".resolve-product-dependencies",
  "name": "resolve-dependencies",
  "url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "version": "unspecified",
  "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "traits": [
    "default"
  ],
  "dependencies": [
    {
      "identity": "fx-upscale",
      "name": "fx-upscale",
      "url": "https://github.com/finnvoor/fx-upscale.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/fx-upscale",
      "traits": [
        "default"
      ],
      "dependencies": [
        {
          "identity": "swift-argument-parser",
          "name": "swift-argument-parser",
          "url": "https://github.com/apple/swift-argument-parser.git",
          "version": "1.8.2",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-argument-parser",
          "traits": [
            "default"
          ],
          "dependencies": [
          ]
        },
        {
          "identity": "swifttui",
          "name": "SwiftTUI",
          "url": "https://github.com/Finnvoor/SwiftTUI.git",
          "version": "1.0.4",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/SwiftTUI",
          "traits": [
            "default"
          ],
          "dependencies": [
          ]
        }
      ]
    }
  ]
}
Fetching https://github.com/finnvoor/fx-upscale.git
[1/419] Fetching fx-upscale
Fetched https://github.com/finnvoor/fx-upscale.git from cache (1.17s)
Fetching https://github.com/apple/swift-argument-parser.git from cache
Fetching https://github.com/Finnvoor/SwiftTUI.git from cache
Fetched https://github.com/apple/swift-argument-parser.git from cache (0.65s)
Fetched https://github.com/Finnvoor/SwiftTUI.git from cache (0.65s)
Computing version for https://github.com/Finnvoor/SwiftTUI.git
Computed https://github.com/Finnvoor/SwiftTUI.git at 1.0.4 (0.70s)
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.53s)
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/fx-upscale.git
Working copy of https://github.com/finnvoor/fx-upscale.git resolved at main (46601bd)
Creating working copy for https://github.com/Finnvoor/SwiftTUI.git
Working copy of https://github.com/Finnvoor/SwiftTUI.git resolved at 1.0.4
Found 2 product dependencies
  - swift-argument-parser
  - SwiftTUI
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.3
Building package at path:  $PWD
https://github.com/finnvoor/fx-upscale.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.4.0.app xcrun swift build --arch arm64
[1/1] Compiling plugin GenerateManual
Building for debugging...
[1/11] Write sources
[3/11] Write fx-upscale-entitlement.plist
[3/11] Write sources
[7/11] Write swift-version--6988338F2F200930.txt
[9/34] Emitting module ArgumentParserToolInfo
[10/34] Compiling ArgumentParserToolInfo ToolInfo.swift
[11/72] Compiling SwiftTUI Window.swift
[12/72] Compiling SwiftTUI Termios.swift
[13/72] Compiling SwiftTUI String+ANSI.swift
[14/72] Compiling SwiftTUI Key.swift
[15/72] Compiling SwiftTUI Cursor.swift
[16/72] Compiling SwiftTUI CommandLine.swift
[17/72] Compiling SwiftTUI ActivityIndicator.swift
[18/72] Emitting module SwiftTUI
[19/72] Compiling SwiftTUI ProgressBar.swift
[20/72] Compiling ArgumentParser Flag.swift
[21/72] Compiling ArgumentParser NameSpecification.swift
[22/72] Compiling ArgumentParser Option.swift
[23/72] Compiling ArgumentParser OptionGroup.swift
[24/76] Emitting module ArgumentParser
[25/76] Compiling ArgumentParser BashCompletionsGenerator.swift
[26/76] Compiling ArgumentParser CompletionsGenerator.swift
[27/76] Compiling ArgumentParser FishCompletionsGenerator.swift
[28/76] Compiling ArgumentParser ZshCompletionsGenerator.swift
[29/76] Compiling ArgumentParser Argument.swift
[30/76] Compiling ArgumentParser ParserError.swift
[31/76] Compiling ArgumentParser SplitArguments.swift
[32/76] Compiling ArgumentParser DumpHelpGenerator.swift
[33/76] Compiling ArgumentParser HelpCommand.swift
[34/76] Compiling ArgumentParser ParsableArguments.swift
[35/76] Compiling ArgumentParser ParsableArgumentsValidation.swift
[36/76] Compiling ArgumentParser ParsableCommand.swift
[37/76] Compiling ArgumentParser ArgumentDecoder.swift
[38/76] Compiling ArgumentParser AsyncParsableCommand.swift
[39/76] Compiling ArgumentParser CommandConfiguration.swift
[40/76] Compiling ArgumentParser EnumerableFlag.swift
[41/76] Compiling ArgumentParser ExpressibleByArgument.swift
[42/76] Compiling ArgumentParser HelpGenerator.swift
[43/76] Compiling ArgumentParser MessageInfo.swift
[44/76] Compiling ArgumentParser UsageGenerator.swift
[45/76] Compiling ArgumentParser CollectionExtensions.swift
[46/76] Compiling ArgumentParser ArgumentHelp.swift
[47/76] Compiling ArgumentParser ArgumentVisibility.swift
[48/76] Compiling ArgumentParser CompletionKind.swift
[49/76] Compiling ArgumentParser Errors.swift
[50/76] Compiling ArgumentParser InputOrigin.swift
[51/76] Compiling ArgumentParser Name.swift
[52/76] Compiling ArgumentParser Parsed.swift
[53/76] Compiling ArgumentParser ParsedValues.swift
[54/76] Compiling ArgumentParser ArgumentDefinition.swift
[55/76] Compiling ArgumentParser ArgumentSet.swift
[56/76] Compiling ArgumentParser CommandParser.swift
[57/76] Compiling ArgumentParser InputKey.swift
[58/76] Compiling ArgumentParser Platform.swift
[59/76] Compiling ArgumentParser SequenceExtensions.swift
[60/76] Compiling ArgumentParser StringExtensions.swift
[61/76] Compiling ArgumentParser Tree.swift
[62/76] Compiling Upscaling MTLTexture+Extensions.swift
[63/77] Compiling Upscaling MTLFXSpatialScalerDescriptor+Extensions.swift
[64/77] Compiling Upscaling MTLFXSpatialScaler+Extensions.swift
[65/77] Compiling Upscaling CVPixelBuffer+Extensions.swift
[66/77] Compiling Upscaling URL+Extensions.swift
[69/77] Emitting module Upscaling
[72/77] Compiling Upscaling FrameChannel.swift
[73/77] Compiling Upscaling Upscaler.swift
[74/77] 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.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.4.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.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.4.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.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.4.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.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.4.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.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.4.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.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.4.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.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.4.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.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.4.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.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.4.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.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.4.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>
[75/79] Compiling fx_upscale FXUpscale.swift
[76/79] Emitting module fx_upscale
[76/79] Write Objects.LinkFileList
[77/79] Linking fx-upscale
[78/79] Applying fx-upscale
Build complete! (14.46s)
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.