Graphics & Games

Level up your apps and games with Metal 3.

Sessions

  • Add accessibility to your Unity games

    8:00 a.m.

    Learn how you can make your Unity games accessible on Apple platforms using our open source Accessibility plug-in. Follow along as we add support for assistive technologies like VoiceOver and Switch Control to a sample Unity game project. We'll show you how you can automatically scale text with Dynamic Type, support interface accommodations like reduced transparency or increased contrast, and more.

    Watch

  • Bring your world into augmented reality

    8:00 a.m.

    Follow along as we demonstrate how you can use Object Capture and RealityKit to bring real-world objects into an augmented reality game. We'll show you how to capture detailed items using the Object Capture framework, add them to a RealityKit project in Xcode, apply stylized shaders and animations, and use them as part of an AR experience. We'll also share best practices when working with ARKit, RealityKit, and Object Capture. To get the most out of this session, we recommend first watching "Dive into RealityKit 2" and "Create 3D models with Object Capture" from WWDC21.

    Watch

  • Discover Metal 3

    8:00 a.m.

    Harness the full potential of Apple silicon in your app with Metal 3. We'll introduce you to the latest features, improvements, and tooling. We'll also explore how you can use advanced features and compiler tools to load resources faster, compile shader binaries at build time, process complex geometry with mesh shaders, render high-resolution graphics in less time, train machine learning networks faster, and more.

    Watch

  • Load resources faster with Metal 3

    8:00 a.m.

    Discover how you can use fast resource streaming in Metal 3 to quickly load assets. We'll show you how to use an asynchronous set-it-and-forget-it workflow in your app to take advantage of the speed of SSD storage and the throughput of Apple silicon’s unified memory architecture. We'll also explore how you can create separate queues that run parallel to — and synchronize with — your GPU render and compute work. Finally, we'll share how to designate assets like audio with high-priority queues to help you load data with lower latency.

    Watch

  • Plug-in and play: Add Apple frameworks to your Unity game projects

    8:00 a.m.

    Help make your Unity app or game an even better experience on Apple platforms. Learn how you can add Apple technologies directly to your projects with six plug-ins: Apple.Core, Game Center, Game Controller, Accessibility, Core Haptics, and PHASE. We'll show you how you can add new gameplay mechanics, make your games more accessible, and tap into the latest Apple features and services.

    Watch

  • Program Metal in C++ with metal-cpp

    8:00 a.m.

    Your C++ games and apps can now tap into the power of Metal. We'll show you how metal-cpp helps you bridge your C++ code to Metal, explore how each manages object lifecycles, and demonstrate utilities that can help these language cooperate in your app. We'll also share best practices for designing app architecture to elegantly integrate Objective-C and C++ together.

    Watch

Labs

  • USD and AR Quick Look lab

    Tuesday @ 9:00 - 11:00 a.m.

    USD and USDZ enable the production-grade description of 3D scenes and delivery into AR Quick Look and apps for AR. Request an appointment with an Apple engineer for guidance and conversation around these file formats, best practices for creating AR experiences for AR Quick Look, and more.

  • RealityKit and Reality Composer lab

    Tuesday @ 3:00 - 5:00 p.m.

    RealityKit is Apple’s rendering, animation, physics, and audio engine for augmented reality. Request an appointment with an Apple engineer for guidance and conversation about RealityKit and Reality Composer, best practices, and more.

Digital Lounges

  • Q&A: RealityKit and Reality Composer

    Tuesday @ 9:00 - 11:00 a.m.

    Ask Apple engineers about RealityKit and Reality Composer during this 2 hour text-based Q&A. Stop in to request guidance on a code-level question, ask for clarifications, or learn from others in a group setting.

  • Meet the Presenter: Discover Metal 3

    Tuesday @ 9:00 - 10:00 a.m.

    Meet the presenter of “Discover Metal 3” and join a text-based watch party for the session, followed by a short Q&A. The watch party begins 5 minutes after the start of this activity — so don’t be late!

  • Meet the Presenter: Add Apple frameworks to your Unity game projects

    Tuesday @ 11:00 - 12:00 p.m.

    Meet the presenter of “Plug-in and play: Add Apple frameworks to your Unity game projects” and join a text-based watch party for the session, followed by a short Q&A. The watch party begins 5 minutes after the start of this activity — so don’t be late!

  • Meet the Presenter: Add accessibility to your Unity games

    Tuesday @ 2:00 - 3:00 p.m.

    Meet the presenter of “Add accessibility to your Unity games” and join a text-based watch party for the session, followed by a short Q&A. The watch party begins 5 minutes after the start of this activity — so don’t be late!

  • Q&A: Object Capture

    Tuesday @ 3:00 - 5:00 p.m.

    Ask Apple engineers about Object Capture during this 2 hour text-based Q&A. Stop in to request guidance on a code-level question, ask for clarifications, or learn from others in a group setting.

  • Q&A: Games technologies

    Tuesday @ 4:00 - 6:00 p.m.

    Ask Apple engineers about Games technologies during this 2 hour text-based Q&A. Stop in to request guidance on a code-level question, ask for clarifications, or learn from others in a group setting.

  • Q&A: USD

    Tuesday @ 5:00 - 7:00 p.m.

    Ask Apple engineers about USD during this 2 hour text-based Q&A. Stop in to request guidance on a code-level question, ask for clarifications, or learn from others in a group setting.

Sessions

  • Boost performance with MetalFX Upscaling

    8:00 a.m.

    Discover MetalFX, a new API that provides platform optimized graphics effects for Metal applications. With MetalFX Upscaling, your application can now render frames at a lower resolution, reducing rendering time, without compromising rendering quality. We'll also show you how and when to use its two effects: spatial upscaling, which delivers substantial performance gains, and temporal AA and upscaling, which delivers the highest quality rendering.

    Watch

  • Explore EDR on iOS

    8:00 a.m.

    EDR is Apple's High Dynamic Range representation and rendering pipeline. Explore how you can render HDR content using EDR in your app and unleash the dynamic range capabilities of HDR displays on iPhone and iPad. We'll show how you can take advantage of the native EDR APIs on iOS, provide best practices to help you decide when HDR is appropriate, and share tips for tone-mapping and HDR content rendering. We'll also introduce you to Reference Mode and highlight how it provides a reference response to enable color-critical workflows such as color grading, editing, and content review.

    Watch

  • Explore USD tools and rendering

    8:00 a.m.

    Discover the latest advancements in tooling to help you generate, inspect, and convert Universal Scene Description (USD) assets. We'll learn about updates to these tools and help you integrate them into your content creation pipeline. We'll also explore the power of USD Hydra rendering, and show how you can integrate it into your own apps. For an introduction to USD, watch "Understand USD fundamentals" from WWDC22.

    Watch

  • Meet ScreenCaptureKit

    8:00 a.m.

    Learn how ScreenCaptureKit can deliver high-performance screen capture for your macOS screen sharing applications, video conferencing apps, game streaming services, and more. We'll explore the building blocks of this API, learn how to configure streams to capture on-screen video and audio content, and share tips for integrating it into your existing apps.

    Watch

  • Take ScreenCaptureKit to the next level

    8:00 a.m.

    Discover how you can support complex screen capture experiences for people using your app with ScreenCaptureKit. We’ll explore many of the advanced options you can incorporate including fine tuning content filters, frame metadata interpretation, window pickers, and more. We’ll also show you how you can configure your stream for optimal performance.

    Watch

  • Target and optimize GPU binaries with Metal 3

    8:00 a.m.

    Discover how you can reduce in-app stutters, first launch times, and new level load times when you generate your GPU binaries entirely at project build time with offline compilation. We'll also show you how to improve total compile time and binary size for larger GPU programs using the "Optimize for size" compiler option.

    Watch

  • Understand USD fundamentals

    8:00 a.m.

    Discover the fundamentals of Pixar's Universal Scene Description (USD) and learn how it can help you build great 3D assets and workflows. We'll introduce you to the core concepts behind USD and explore how you can integrate the format into your content creation pipeline. We'll also show you how to harness the power of USD by using composition to create flexible and versatile assets.

    Watch

Labs

  • Object Capture lab

    Wednesday @ 9:00 - 11:00 a.m.

    Object Capture is a photogrammetry technology for MacOS that enables the creation of lifelike 3D models with no prior 3D experience. Request an appointment with an Apple engineer for guidance and conversation about the Object Capture API, best practices, and more.

  • Game Center lab

    Wednesday @ 9:00 - 11:00 a.m.

    Request an appointment with an Apple engineer for guidance and conversation about your app, the GameKit API, best practices, and more.

  • Core Graphics lab

    Wednesday @ 2:00 - 4:00 p.m.

    Request an appointment with an Apple engineer for guidance and conversation on Core Graphics, ColorSync, PDFKit, ImageIO, or Image Capture.

  • Metal lab

    Wednesday @ 3:00 - 5:00 p.m.

    Request an appointment with an Apple engineer for guidance and conversation about your app, the latest Metal APIs, best practices, and more.

  • USD and AR Quick Look lab

    Wednesday @ 3:00 - 5:00 p.m.

    USD and USDZ enable the production-grade description of 3D scenes and delivery into AR Quick Look and apps for AR. Request an appointment with an Apple engineer for guidance and conversation around these file formats, best practices for creating AR experiences for AR Quick Look, and more.

Digital Lounges

  • Q&A: RoomPlan

    Wednesday @ 9:00 - 11:00 a.m.

    Ask Apple engineers about RoomPlan during this 2 hour text-based Q&A. Stop in to request guidance on a code-level question, ask for clarifications, or learn from others in a group setting.

  • Q&A: Metal

    Wednesday @ 9:00 - 11:00 a.m.

    Ask Apple engineers about Metal during this 2 hour text-based Q&A. Stop in to request guidance on a code-level question, ask for clarifications, or learn from others in a group setting.

  • Study Hall: Draw with metal-cpp

    Wednesday @ 9:00 - 6:00 p.m.

    Get ready to render: We're inviting you to try out metal-cpp and render your own triangle, sphere, or even a mesh in Xcode. Visit the Graphics & Games Study Hall to collaborate on the “Draw with metal-cpp” coding challenge. Ask questions, connect with other developers, and share your creations.

  • Meet the Presenter: Meet ScreenCaptureKit

    Wednesday @ 11:00 - 12:00 p.m.

    Meet the presenter of “Meet ScreenCaptureKit” and join a text-based watch party for the session, followed by a short Q&A. The watch party begins 5 minutes after the start of this activity — so don’t be late!

  • Meet the Presenter: Boost your performance with MetalFX Upscaling

    Wednesday @ 1:00 - 2:00 p.m.

    Meet the presenter of “Boost your performance with MetalFX Upscaling” and join a text-based watch party for the session, followed by a short Q&A. The watch party begins 5 minutes after the start of this activity — so don’t be late!

  • Meet the Presenter: Take ScreenCaptureKit to the next level

    Wednesday @ 3:00 - 4:00 p.m.

    Meet the presenters of “Take ScreenCaptureKit to the next level” and join a text-based watch party for the session, followed by a short Q&A. The watch party begins 5 minutes after the start of this activity — so don’t be late!

  • Q&A: RealityKit and Reality Composer

    Wednesday @ 3:00 - 5:00 p.m.

    Ask Apple engineers about RealityKit and Reality Composer during this 2 hour text-based Q&A. Stop in to request guidance on a code-level question, ask for clarifications, or learn from others in a group setting.

  • Q&A: RoomPlan

    Wednesday @ 4:00 - 6:00 p.m.

    Ask Apple engineers about RoomPlan during this 2 hour text-based Q&A. Stop in to request guidance on a code-level question, ask for clarifications, or learn from others in a group setting.

  • Icebreaker: Graphics and Games

    Wednesday @ 5:00 - 6:00 p.m.

    Meet the Graphics & Games engineers for a 1 hour text-based chat about your favorite sessions, share tips and tricks, and more.

Sessions

  • Display EDR content with Core Image, Metal, and SwiftUI

    8:00 a.m.

    Discover how you can add support for rendering in Extended Dynamic Range (EDR) from a Core Image based multi-platform SwiftUI application. We'll outline best practices for displaying CIImages to a MTKView using ViewRepresentable. We'll also share the simple steps to enable EDR rendering and explore some of the over 150 built-in CIFilters that support EDR.

    Watch

  • Display HDR video in EDR with AVFoundation and Metal

    8:00 a.m.

    Learn how you can take advantage of AVFoundation and Metal to build an efficient EDR pipeline. Follow along as we demonstrate how you can use AVPlayer to display HDR video as EDR, add playback into an app view, render it with Metal, and use Core Image or custom Metal shaders to add video effects such as keying or color management. Whether you develop games or pro apps, we'll help you decide which frameworks to use and share best practices for selecting transports, colorspaces, and pixelbuffer formats.

    Watch

  • Go bindless with Metal 3

    8:00 a.m.

    Learn how you can unleash powerful rendering techniques like ray tracing when you go bindless with Metal 3. We'll show you how to make your app’s bindless journey a joy by simplifying argument buffers, allocating acceleration structures from heaps, and benefitting from the improvements to the Metal’s validation layer and Debugger Tools. We'll also explore how you can command more CPU and GPU performance with long-term resource structures.

    Watch

  • Maximize your Metal ray tracing performance

    8:00 a.m.

    Learn how to simplify your ray tracing code and increase performance with the power of Metal 3. We’ll explore the GPU debugging and profiling tools that can help you tune your ray tracing applications. We'll also show you how you can speed up intersection tests and reduce shader code memory accesses and indirections with per-primitive data in an acceleration structure. And we'll help you implement faster acceleration structure builds and refits to reduce load times and per-frame overhead.

    Watch

  • Reach new players with Game Center dashboard

    8:00 a.m.

    Meet the Game Center activity dashboard and discover how it can help your game reach new players. We'll introduce you to the dashboard and profiles and explore how they can track player achievements, high scores, and leaderboard changes for your game. We'll also show you how to add Game Center to your Unity game project using the Game Center plug-in.

    Watch

  • Transform your geometry with Metal mesh shaders

    8:00 a.m.

    Meet Metal mesh shaders — a modern and flexible pipeline in Metal for GPU-driven geometry creation and processing. We'll explore how this API can improve and add flexibility to your render pipeline, and share some of the opportunities that GPU-driven work can create. Discover how you can create procedural geometry — like hair rendering — on the GPU using mesh shaders, and build single render passes without additional compute passes or intermediate buffers. We'll also show you how to improve scene processing and rendering through GPU-driven meshlet culling.

    Watch

Labs

  • Metal lab

    Thursday @ 8:00 - 10:00 a.m.

    Request an appointment with an Apple engineer for guidance and conversation about your app, the latest Metal APIs, best practices, and more.

  • RoomPlan lab

    Thursday @ 9:00 - 11:00 a.m.

    RoomPlan can help your app quickly create simplified parametric 3D scans of a room. Request an appointment with an Apple engineer for guidance and conversation about the RoomPlan API, best practices, and more.

  • HDR and EDR lab

    Thursday @ 9:00 - 11:00 a.m.

    EDR is Apple’s High Dynamic Range representation and rendering pipeline. Request an appointment with an Apple engineer for guidance and conversation around rendering HDR video content using EDR in your app, best practices, and more.

  • RealityKit and Reality Composer lab

    Thursday @ 9:00 - 11:00 a.m.

    RealityKit is Apple’s rendering, animation, physics, and audio engine for augmented reality. Request an appointment with an Apple engineer for guidance and conversation about RealityKit and Reality Composer, best practices, and more.

  • Games lab

    Thursday @ 1:00 - 3:00 p.m.

    Have a question about games technology on Apple platforms? Request an appointment with an Apple engineer for guidance and conversation about HDR/EDR, frame pacing, Unity plug-ins, game controllers and input remapping, accessibility, code signing and notarization, SpriteKit, and more.

  • RoomPlan lab

    Thursday @ 3:00 - 5:00 p.m.

    RoomPlan can help your app quickly create simplified parametric 3D scans of a room. Request an appointment with an Apple engineer for guidance and conversation about the RoomPlan API, best practices, and more.

  • Object Capture lab

    Thursday @ 3:00 - 5:00 p.m.

    Object Capture is a photogrammetry technology for MacOS that enables the creation of lifelike 3D models with no prior 3D experience. Request an appointment with an Apple engineer for guidance and conversation about the Object Capture API, best practices, and more.

Digital Lounges

  • Study Hall: Bindless ray tracing

    Thursday @ 9:00 - 6:00 p.m.

    Get ready to shine a light on this challenge: We're inviting you to explore bindless rendering in Metal 3 and reflect rays on mirrored surfaces. Visit the Graphics & Games Study Hall to collaborate on the “Bindless ray tracing” coding challenge. Ask questions, connect with other developers, and share your creations.

  • Meet the Presenter: Reach new players with Game Center dashboard

    Thursday @ 11:00 - 12:00 p.m.

    Meet the presenter of “Reach new players with Game Center dashboard” and join a text-based watch party for the session, followed by a short Q&A. The watch party begins 5 minutes after the start of this activity — so don’t be late!

  • Q&A: ARKit

    Thursday @ 3:00 - 5:00 p.m.

    Ask Apple engineers about ARKit during this 2 hour text-based Q&A. Stop in to request guidance on a code-level question, ask for clarifications, or learn from others in a group setting.

  • Q&A: ScreenCaptureKit

    Thursday @ 4:00 - 6:00 p.m.

    Ask Apple engineers about ScreenCaptureKit during this 2 hour text-based Q&A. Stop in to request guidance on a code-level question, ask for clarifications, or learn from others in a group setting.

Sessions

  • Accelerate machine learning with Metal

    8:00 a.m.

    Discover how you can use Metal to accelerate your PyTorch model training on macOS. We'll take you through updates to TensorFlow training support, explore the latest features and operations of MPS Graph, and share best practices to help you achieve great performance for all your machine learning needs. For more on using Metal with machine learning, watch "Accelerate machine learning with Metal Performance Shaders Graph" from WWDC21.

    Watch

  • Profile and optimize your game's memory

    8:00 a.m.

    Learn how Apple platforms calculate and allocate memory for your game. We'll show you how to use Instruments and the Game Memory template to profile your game, take a memory graph to monitor current memory use, and analyze it using Xcode Memory Debugger and command line tools. We'll also explore Metal resources in Metal Debugger and provide tips and tricks to further help you optimize memory usage.

    Watch

  • Scale compute workloads across Apple GPUs

    8:00 a.m.

    Discover how you can create compute workloads that scale efficiently across Apple GPUs. Learn how to saturate the GPU by improving your work distribution, minimize GPU timeline gaps with effective pipelining and concurrent dispatches, and use atomic operations effectively. We'll also take you through the latest counters and tools in Xcode and Instruments that can help you optimize spatial and temporal memory access patterns.

    Watch

Labs

  • Core Image lab

    Friday @ 9:00 - 11:00 a.m.

    Request an appointment with an Apple engineer for guidance and conversation about Core Image, including how to use CIFilters with Extended Dynamic Range (EDR) headroom, methods to add kernels written in the Metal Shading Language, best practices for rendering to MTKViews, and more.

  • ScreenCaptureKit lab

    Friday @ 9:00 - 11:00 a.m.

    Request an appointment with an Apple engineer for guidance and conversation about your app, the ScreenCaptureKit API, best practices, and more.

  • Core Graphics lab

    Friday @ 9:00 - 11:00 a.m.

    Request an appointment with an Apple engineer for guidance and conversation on Core Graphics, ColorSync, PDFKit, ImageIO, or Image Capture.

  • Background Assets lab

    Friday @ 10:00 - 12:00 p.m.

    Request an appointment with an Apple engineer for guidance and conversation about your app and the Background Assets APIs, best practices, and more.

  • ReplayKit lab

    Friday @ 1:00 - 3:00 p.m.

    Request an appointment with an Apple engineer for guidance and conversation about your app, the ReplayKit API, best practices, and more.

  • Game Center lab

    Friday @ 1:00 - 3:00 p.m.

    Request an appointment with an Apple engineer for guidance and conversation about your app, the GameKit API, best practices, and more.

Digital Lounges

  • Q&A: ARKit

    Friday @ 9:00 - 11:00 a.m.

    Ask Apple engineers about ARKit during this 2 hour text-based Q&A. Stop in to request guidance on a code-level question, ask for clarifications, or learn from others in a group setting.

  • Q&A: Games technologies

    Friday @ 9:00 - 11:00 a.m.

    Ask Apple engineers about Games technologies during this 2 hour text-based Q&A. Stop in to request guidance on a code-level question, ask for clarifications, or learn from others in a group setting.

  • Q&A: Object Capture

    Friday @ 10:00 - 12:00 p.m.

    Ask Apple engineers about Object Capture during this 2 hour text-based Q&A. Stop in to request guidance on a code-level question, ask for clarifications, or learn from others in a group setting.

  • Q&A: Metal

    Friday @ 1:00 - 3:00 p.m.

    Ask Apple engineers about Metal during this 2 hour text-based Q&A. Stop in to request guidance on a code-level question, ask for clarifications, or learn from others in a group setting.