macOS 10.13
This article summarizes the key developer-related features introduced in macOS 10.13, which runs on currently shipping Macs. The article also lists the documents that describe new features in more detail.
For late-breaking news and information about known issues, see macOS 10.13 High Sierra Release Notes.
For a complete list of new, modified, and deprecated APIs, see Apple Developer Documentation.
To learn about what’s new in Swift, see Swift Language in What’s New in Xcode and The Swift Programming Language (Swift 4).
General
-
New in macOS 10.13 - Support for binary (nontext) barcodes.
-
Added APIs to AV Foundation, Core Image, and SiriKit to support detection, decoding, and creation of barcodes with binary content.
-
Added a new barcode descriptor object,
CIBarcodeDescriptor
to Core Image to provide interoperability with AV Foundation and the Vision APIs.
-
App Frameworks
-
New in macOS 10.13 - Download font assets.
-
Added a font asset request API to App Kit. Use
NSFontAssetRequest
to request asynchronous downloading of font assets. Download progress can be tracked usingNSProgress
.
-
Improved API for available storage space.
Added new keys to the
URL
class for different usage scenarios.The
volumeAvailableCapacityForImportantUsageKey
key returns total amount of bytes available for operations explicitly requested by user or essential to proper functioning of your apps.The
volumeAvailableCapacityForOpportunisticUsageKey
key returns total amount of bytes available for storing nonessential items, such as content predownloaded for performance that may or may not get used by the user.
Graphics and Games
New in macOS 10.13 - High performance image analysis.
Added the Vision framework for detecting faces, bar codes, text, image horizon, and rectangular regions.
Provided support for integrating the Vision framework with Core ML to run custom models on images.
Added object-tracking in video.
Added support for image registration.
New in macOS 10.13 - Ability to write custom image blending kernels for Core Image.
Added
CIBlendKernel
, a special type ofCIColorKernel
to blend two images (supported byCIRenderDestination
andCIImageAccumulator
).Added
init(functionName:fromMetalLibraryData:)
toCIKernel
for writing kernels using Metal to benefit from the improved language features and the reduced compile time.
-
New in macOS 10.13 - Lightweight render destination.
Added
CIRenderDestination
, an object for creating renderers that return to the caller after the work has been issued. You can specify all the destination attributes of the renderer for different destinations, including a surface (IOSurface
), Core Video pixel buffer (CVPixelBuffer
), GL textures, Metal textures, and memory.
-
Added new Core Image filters
CITextImageGenerator
,CIColorCurves
,CILabDeltaE
,CIBokehBlur
,CIMinMaxRed
, andCIBicubicScaleTransform
.
Metal 2
Metal 2 contains significant additions and updates to Metal, the Metal Shading Language, and the Metal Performance Shaders framework. Items below indicate where the updates occur:
– MTL: An update in the Metal framework.
– MSL: An update in the Metal Shading Language.
– MPS: An update in the Metal Performance Shaders framework.
MTL: New in macOS 10.13 - VR support.
Added support for displaying Metal content on head-mounted displays (HMDs).
Added a direct-to-display fast path to bypass the macOS window server.
Improved performance to help target 90 FPS frame rates.
MPS: New in Metal 2 - Cross-platform Metal Performance Shaders support.
All Metal Performance Shaders functionality is available in iOS 11.0, tvOS 11.0, and macOS 10.13.
MPS: New in macOS 10.13 - Neural network support.
Added support for neural networks to the Metal Performance Shaders framework.
Added graphs to offer a higher level API for simplifying the creation of neural networks, including objects that allow state to be transferred between nodes in a neural network.
Added convolutional neural networks (CNN) to support implementing and running deep learning using previously obtained training data.
Added recurrent neural networks for implementing inference on images and matrices.
New in macOS 10.13 - Argument Buffers. Group your resources into an argument buffer (AB) to reduce CPU overhead.
MSL: Added the
[[id(n)]]
attribute qualifier to identify resources in an AB structure.MTL: Added the
MTLArgumentEncoder
protocol to encode resources into an AB.
MTL: New in macOS 10.13 - Programmable sample positions. Configure the position of samples when rendering to a multisampled render target.
Updated the
MTLRenderPassDescriptor
class to set and get sample positions for a render pass.
MSL: New in macOS 10.13 - Uniform type.
Added the
uniform
type to declare variables that are uniform for all threads that execute the graphics or compute function of a draw or dispatch call.
MSL: New in macOS 10.13 - Array of samplers.
Added the
array<sampler, size_t N>
type to store an array of samplers.
MTL: New in macOS 10.13 - BGR10A2 pixel format.
Added the
bgr10A2Unorm
pixel format to present wide color content on P3 displays.
MSL: New in macOS 10.13 - Raster order groups.
Added support for organizing access to fragment function resources by using explicit raster order groups.
Added the
[[raster_order_group(index)]]
attribute qualifier to assign resources to a raster order group.
MTL: New in macOS 10.13 - Nonuniform threadgroup size.
Added the
dispatchThreads(_:threadsPerThreadgroup:)
method to theMTLComputeCommandEncoder
protocol to execute a compute pass that uses a grid with an arbitrary number of threads.
New in macOS 10.13 - Multiple viewports.
Added support for multiple active viewports for a draw call and for selective drawing to separate areas of a render target.
MTL: Added the
setViewports(_:count:)
method to theMTLRenderCommandEncoder
protocol to specify an array of viewports for a render pass.MSL: Added the
[[viewport_array_index]]
attribute qualifier to select a specific viewport for transformation and clip operations.
MTL: New in macOS 10.13 - Device notifications.
Added
MTLNotificationName
values for Metal apps to respond to a GPU that is added to or removed from the system.
MPS: Added new filters.
Added filters for image statistics, such as computing the mean and variance for an image region.
Added filters for combining two images together, such as an element-wise sum.
Added filters for matrix decomposition and solving, such as decomposition using Cholesky or LU (lower upper) factorization.
MSL: Extended function specialization. Members of a structure used in a graphics, compute, or user function can be used with function constants.
Extended
[[color(n)]]
and[[raster_order_group(index)]]
attribute qualifiers to work with function constants.
MTL: Extended vertex formats.
Added new
MTLVertexFormat
values for small formats such aschar
,short
, andhalf
.
MTL: Updated the Metal framework to support resource heaps on macOS.
MSL: Updated the Metal Shading Language to support arrays of textures on macOS.
Added the
array<typename T, size_t N>
type to store an array of textures.
MTL: Updated the Metal framework to support linear textures on macOS.
Added the
makeTexture(descriptor:offset:bytesPerRow:)
method to theMTLBuffer
protocol to create 2D linear textures that share their storage with a source buffer.
MSL: Extended SIMD-group thread synchronization.
Added new functions and attribute qualifiers for SIMD-group variables for SIMD-group threads.
App Services
-
New in macOS 10.13 - Support for machine learning models.
Added the Core ML framework for easily integrating machine learning models into apps.
-
Updated MapKit for clearer display of developer data.
-
Added
mutedStandard
, a new map display mode that emphasizes developer data. -
Added properties to customize how annotations behave when collisions occur. Developers use a combination of
displayPriority
,collisionMode
, andclusteringIdentifier
to influence which annotations remain on the map.
-
Media and Web
-
New in macOS 10.13 - Support for High Efficiency Video Coding (HEVC). High Efficiency Video Coding (HEVC) is a new standard for video encoding that offers substantially better compression than H.264 at the same level of visual quality.
-
Added support for using AV Foundation to play back movies containing HEVC-encoded tracks, and to capture and export videos.
-
Added support for using
VideoToolbox
clients to encode and decode HEVC video bitstreams.
-
-
New in macOS 10.13 - Support for adding project creation extensions to the Photos app.
-
Added
com.apple.photo-project
, a new extension point that enables adding project creation features to the Photos app. -
Added
PHProject
andPHProjectInfo
to the Photos framework for adding and managing photo creation projects. -
Added
PHProjectChangeRequest
, an object for saving session state of photo creation projects. -
Added
PHAsset
,PHPhotoLibrary
, andPHFetchRequest
to enable fetching of assets for a project.
-
-
New in macOS 10.13 - AirPlay 2.
-
Improved AirPlay reliability for some audio playback interfaces in AV Foundation. To take advantage of the increased reliability, play audio using
AVPlayer
or the newAVSampleBufferAudioRenderer
object. -
Added multiple speaker support to AirPlay for long-form audio such as music and podcasts. To mark your application as presenting long-form audio, invoke the
AVAudioSession
method-setRouteSharingPolicy:error:
and useAVAudioSessionRouteSharingPolicyLongForm
as the parameter value. Added
AVRoutePickerView
to the AVKit framework andAVRouteDetector
to the AVFoundation framework for enabling users to choose the route for playing content when multiple routes are available. UseAVRouteDetector
to determine if multiple routes are available when route detection is enabled. If multiple routes are available, useAVRoutePickerView
to present an interface for the user to choose the routes.
-
-
Added FairPlay streaming key management.
-
Improved the functionality of
AVContentKeySession
. UseAVContentKeySession
to initiate content key requests independent of playback or downloading of media assets. Objects conforming to theAVContentKeyRecipient
protocol, such asAVURLAsset
, can be added as a recipient toAVContentKeySession
to obtain access to existing content keys and initiate new content key requests.
-
System
-
New in macOS 10.13 - APFS support. The OS Installer will automatically convert your system/root volume to APFS as a part of the installation process. The following formats are converted to APFS: plain HFS+, CoreStorage, and FileVault encrypted systems.
-
Added support for APFS as a boot volume with full, native EFI support.
-
Added full support for File Vault.
-
Added support for case-insensitive and case-sensitive variants.
-
Added support for an on-disk format change to allow for normalization-insensitive Case Sensitive volumes. This means that file names in either Unicode NFC or NFD will point to the same files.
Updated the volume format for APFS to be normalization insensitive. File names in either Unicode NFC or NFD point to the same files.
-
Added backup support for APFS source volumes. The backup destination should still remain HFS+ in this release.
-
APFS supports up to Unicode revision 9 for filenames. HFS+ supported only up to revision 3.2.
-
APFS supports exporting of volumes over SMB and NFS.
-
-
Updated the APIs in the Core Bluetooth framework to match across iOS, tvOS, watchOS, and macOS, and marked the platform availability of each API.
Copyright © 2005, 2017 Apple Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2017-09-19