Skip to content

[MetalPerformanceShadersGraph] Update bindings up to Xcode 27.0 Beta 3 - #26204

Merged
dalexsoto merged 1 commit into
xcode27.0from
dev/alex/xc27-MetalPerformanceShadersGraph
Jul 22, 2026
Merged

[MetalPerformanceShadersGraph] Update bindings up to Xcode 27.0 Beta 3#26204
dalexsoto merged 1 commit into
xcode27.0from
dev/alex/xc27-MetalPerformanceShadersGraph

Conversation

@dalexsoto

Copy link
Copy Markdown
Member

Summary

  • Bind the new MPSGraphSdpaDescriptor and descriptor-based scaled dot product attention operation.
  • Add Metal 4 command queue execution overloads with accurate device-only simulator metadata.
  • Add DisableAutoLayoutConversion, deprecate ConvertLayoutToNhwc, and remove all resolved MetalPerformanceShadersGraph xtro todo files.
  • Teach bgen to accept simulator availability attributes on methods, with cross-platform regression coverage.

Validation

  • make world
  • bgen simulator availability tests: 4 passed
  • clean xtro regeneration/classification: sanity passed
  • clean cecil suite: 112 passed, 4 skipped
  • iOS 27.0 introspection: all tests pass after focused typo vocabulary update
  • tvOS 27.0 introspection: all tests pass after focused typo vocabulary update
  • macOS introspection: 32 passed, 2 expected host-version skips
  • Mac Catalyst selector/signature introspection: 6 passed; the full constructor suite hits the known host TCC abort when constructing CLLocationButton
  • clean app-size suite: 16 expected skips because Xcode 27 is beta

Bind the scaled dot product attention descriptor and descriptor-based graph operation, add Metal 4 command queue execution overloads, and update automatic layout conversion availability and deprecation metadata across all supported platforms.

Teach bgen to accept and emit simulator availability attributes on binding methods so the device-only Metal 4 selectors are represented accurately. Add focused cross-platform regression coverage, register the SDPA acronym for introspection spelling checks, and remove the resolved xtro todo files.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 88e6f604-b426-4046-8e83-37c8d94af74e
Copilot AI review requested due to automatic review settings July 20, 2026 23:58
@dalexsoto dalexsoto added this to the xcode27 milestone Jul 20, 2026
@dalexsoto
dalexsoto requested a review from rolfbjarne July 20, 2026 23:58

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the MetalPerformanceShadersGraph bindings and related tooling/tests to match Xcode 27.0 Beta 3, including new SDPA APIs and Metal 4 command queue execution overloads, while cleaning up resolved XTRO TODOs and expanding bgen simulator-availability attribute support.

Changes:

  • Added new MPSGraph SDPA descriptor binding and a descriptor-based scaled dot product attention API.
  • Added Metal 4 command queue Run/RunAsync overloads with device-only (unsupported on iOS/tvOS simulator) metadata, plus new/updated compilation descriptor APIs.
  • Extended bgen to accept simulator availability attributes on methods and added regression coverage; removed resolved XTRO TODO files.

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated no comments.

Show a summary per file
File Description
src/metalperformanceshadersgraph.cs Adds new SDPA descriptor + attention overloads, Metal 4 command-queue execution APIs, and the new/updated compilation descriptor members (including deprecation).
src/bgen/Generator.cs Allows simulator availability attributes on methods by treating them as recognized/allowed attributes during generation.
tests/bgen/tests/simulator-availability-attributes.cs Adds method-level [SupportedSimulator]/[UnsupportedSimulator] cases for bgen regression coverage.
tests/bgen/BGenTests.cs Verifies method-level simulator availability attributes are emitted for iOS/tvOS and not emitted for Mac platforms.
tests/introspection/ApiTypoTest.cs Allows “Sdpa” token to avoid false-positive typo failures for SDPA APIs.
tests/xtro-sharpie/api-annotations-dotnet/iOS-MetalPerformanceShadersGraph.todo Removes resolved XTRO TODO entries now covered by bindings/attributes.
tests/xtro-sharpie/api-annotations-dotnet/tvOS-MetalPerformanceShadersGraph.todo Removes resolved XTRO TODO entries now covered by bindings/attributes.
tests/xtro-sharpie/api-annotations-dotnet/macOS-MetalPerformanceShadersGraph.todo Removes resolved XTRO TODO entries now covered by bindings/attributes.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-MetalPerformanceShadersGraph.todo Removes resolved XTRO TODO entries now covered by bindings/attributes.

@vs-mobiletools-engineering-service2

Copy link
Copy Markdown
Collaborator

✅ API diff for current PR / commit

NET (empty diffs)

✅ API diff vs stable

NET (empty diffs)

ℹ️ Generator diff

Generator Diff: vsdrops (html) vsdrops (raw diff) gist (raw diff) - Please review changes)

Pipeline on Agent
Hash: e91862693a70d34dfd66bcc1d6967fe986fb464b [PR build]

@dalexsoto
dalexsoto enabled auto-merge (squash) July 21, 2026 01:43
@vs-mobiletools-engineering-service2

This comment has been minimized.

@dalexsoto

Copy link
Copy Markdown
Member Author

/azp run xamarin-macios-sim-pr-tests

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).

@vs-mobiletools-engineering-service2

This comment has been minimized.

@dalexsoto

Copy link
Copy Markdown
Member Author

/azp run xamarin-macios-sim-pr-tests

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

Copy link
Copy Markdown
Collaborator

🚀 [CI Build #e918626] Test results 🚀

Test results

✅ All tests passed on VSTS: test results.

🎉 All 195 tests passed 🎉

Tests counts

✅ assembly-processing: All 1 tests passed. Html Report (VSDrops) Download
✅ cecil: All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (iOS): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (MacCatalyst): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (macOS): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (Multiple platforms): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (tvOS): All 1 tests passed. Html Report (VSDrops) Download
✅ framework: All 2 tests passed. Html Report (VSDrops) Download
✅ fsharp: All 4 tests passed. [attempt 2] Html Report (VSDrops) Download
✅ generator: All 5 tests passed. Html Report (VSDrops) Download
✅ interdependent-binding-projects: All 4 tests passed. Html Report (VSDrops) Download
✅ introspection: All 6 tests passed. Html Report (VSDrops) Download
✅ linker (iOS): All 15 tests passed. Html Report (VSDrops) Download
✅ linker (MacCatalyst): All 15 tests passed. Html Report (VSDrops) Download
✅ linker (macOS): All 21 tests passed. [attempt 2] Html Report (VSDrops) Download
✅ linker (tvOS): All 15 tests passed. Html Report (VSDrops) Download
✅ monotouch (iOS): All 19 tests passed. Html Report (VSDrops) Download
✅ monotouch (MacCatalyst): All 18 tests passed. Html Report (VSDrops) Download
✅ monotouch (macOS): All 19 tests passed. Html Report (VSDrops) Download
✅ monotouch (tvOS): All 19 tests passed. Html Report (VSDrops) Download
✅ msbuild: All 2 tests passed. Html Report (VSDrops) Download
✅ sharpie: All 1 tests passed. [attempt 2] Html Report (VSDrops) Download
✅ windows: All 3 tests passed. Html Report (VSDrops) Download
✅ xcframework: All 4 tests passed. Html Report (VSDrops) Download
✅ xtro: All 1 tests passed. Html Report (VSDrops) Download

macOS tests

✅ Tests on macOS Sonoma (14): All 5 tests passed. [attempt 2] Html Report (VSDrops) Download
✅ Tests on macOS Sequoia (15): All 5 tests passed. [attempt 2] Html Report (VSDrops) Download
✅ Tests on macOS Tahoe (26): All 5 tests passed. [attempt 2] Html Report (VSDrops) Download
⚠️ Tests on macOS Golden Gate (27): Tests skipped, incorrect beta version. [attempt 2] Html Report (VSDrops) Download

Linux Build Verification

Linux build succeeded

Pipeline on Agent
Hash: e91862693a70d34dfd66bcc1d6967fe986fb464b [PR build]

@dalexsoto
dalexsoto merged commit 9afa3f5 into xcode27.0 Jul 22, 2026
56 checks passed
@dalexsoto
dalexsoto deleted the dev/alex/xc27-MetalPerformanceShadersGraph branch July 22, 2026 00:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants