MacOS Support for BC Texture Formats

I noticed the MTLDevice API for MacOS 11 includes an API to check for BC texture support (supportsBCTextureCompression), which suggests BC formats are not necessarily supported on some MacOS systems regardless of GPU family. This could obviously impact what textures need to be shipped with my application since I was planning on including only ASTC formats for iOS and BC formats for MacOS to help reduce the package size.

I have a few questions around this:

  1. Under what circumstances are BC formats NOT supported on MacOS?
  2. What compressed formats are available on a MacOS system that doesn't support BC compression?
  3. Does a Catalyst app need different texture formats when running on iPadOS vs. MacOS? (This question is largely academic since I don't plan on shipping a Catalyst app.)

Also, any links to documentation that outlines different scenarios would be greatly appreciated.

Accepted Reply

Hi dwn,

Here are some short answers:

  1. BC textures are always supported on macOS (see the Metal Feature Set Tables)
  2. See answer 1: BC is always supported on MacOS, so there is no need for a fallback path. M1 based Macs do additionally also support ASTC.
  3. No, Catalyst apps do not require different textures when running on MacOS.

The supportsBCTextureCompression can be used for code that is shared between iOS and macOS, where as iOS devices generally lack BC support.

  • Thanks for the clarification. The docs claim supportsBCTextureCompression is only available on MacOS, hence the confusion.

Add a Comment

Replies

Hi dwn,

Here are some short answers:

  1. BC textures are always supported on macOS (see the Metal Feature Set Tables)
  2. See answer 1: BC is always supported on MacOS, so there is no need for a fallback path. M1 based Macs do additionally also support ASTC.
  3. No, Catalyst apps do not require different textures when running on MacOS.

The supportsBCTextureCompression can be used for code that is shared between iOS and macOS, where as iOS devices generally lack BC support.

  • Thanks for the clarification. The docs claim supportsBCTextureCompression is only available on MacOS, hence the confusion.

Add a Comment