PVRTC format and legacy ETC compressor deprecation in Unity 6.1

Hi everyone!

Unity has increased the iOS Player minimum specs to iOS13 and above on Unity 6, thus removing support for iPhone 5/5c. OpenGLES 2.0 support was also removed, requiring GLES3.0+ for Android Players.

While the legacy PVRTC texture compression format was the only compressed option for older Power-VR based phones, the recommended formats for newer phones are the newer ETC and ASTC formats as they both provide improved quality. To learn more about the recommended compression format per platform, see https://docs.unity3d.com/6000.0/Documentation/Manual/texture-choose-format-by-platform.html.

Both PVRTC and the legacy ETC encoder require the use of 3rd party PVRTexTool utility, which may no longer be supported for newer macOS versions. As a result, we have decided to deprecate the PVRTC format and the opt-in legacy ETC compressor the Unity 6.1 release, and aim to soon remove those.

This will reduce our developers’ maintenance overhead, allowing us to spend more time on meaningful improvements to performance and stability, as well as new features.

Note: ETC is still supported through the default Texture Compressor setting (Edit->Project Settings->Editor->Other->Texture Compressors)

Our analytics data indicate that ETC and ASTC are the most used formats on Unity Editor. However, to ensure no negative impact on users, we are also investigating and evaluating all possible dependencies on PVRTC.

Your feedback is essential - so if you are currently using PVRTC and don’t envision switching to ETC or ASTC, please let us know your use cases and share any insights you would like us to consider moving forward!

14 Likes

Does that mean the new default for Android will be ETC2? Or is ETC and legacy ETC different?

Actually the default for Android does not change. It’s just the opt-in Legacy ETC compressor that is being removed. The regular ETC compressor is still the default for the ETC format.

2 Likes

Got it! I didn’t know there was a legacy compressor.

Might I ask why ETC still is the default and not ETC2? ETC2 seems superior. GLES3 is also the default graphics API, and has ETC2 support built in.

If people are building for iOS with pvrtc with modern Unity versions, it probably is by mistake. They should be using ASTC.

Which one is the legacy etc compressor btw? etcpak? (and is Etc2Comp the “regular” one?)

If GLES 2.0 support is being removed not sure why you are keeping ETC1 around. Get rid of it and default to ETC2. The part that people might not like is removing GLES 2.0 support (I personally don’t mind) and you’re doing that nonchalantly, not sure what’s the point of stressing over compression options.

3 Likes

Small bump for after the holidays (:

Unity defaults to ASTC. When you as a user actively select ETC, you have a choice of selecting ETC1 or ETC2. Unity supports both.

1 Like

The legacy ETC compressor is PVRTexTool.
OpenGL ES 2.0 support removal was actually announced previously here. The post was a reminder, but I should have included a link to the previous post.

1 Like