Search Unity

UnityEditor.MobileTextureSubtarget.ATC deprecated: why?

Discussion in '2018.1 Beta' started by dtaralla, Apr 16, 2018.

  1. dtaralla

    dtaralla

    Joined:
    Jan 1, 2016
    Posts:
    16
    Hello!
    From what I see in the official UnityCsReference git, it seems this has been deprecated since you guys started working on 2018.1. Why is that? I could not find any information about the reasons making you deprecate this texture subtarget... Qualcomm Snapdragons are still a thing, right?
    In the source code, the Obsolete message says we should use MobileTextureSubtarget.ETC instead. But this is less optimised for ATC-enabled devices, isn't it? Why would you ninja-deprecate something like this? Even Google does not know about it :D

    PS: We build our games in 4 different formats on Android: ATC, ASTC, PVRTC and DXT (no generic ETC package); we chose to do this to optimize textures rendering as much as we could... Is it really safe to replace ATC by ETC in our case?
     
  2. Yury-Habets

    Yury-Habets

    Unity Technologies

    Joined:
    Nov 18, 2013
    Posts:
    1,069
    The message is pretty clear - please use ETC. It's not "less optimized for ATC-enabled devices".
    It's up to you to decide your own strategy on the supported formats, but may be worth checking on how much demand is here for, for instance, DXT or PVRTC.

    ETC2 is a part of GLES3 specification. ETC1 is supported on all GLES2 devices (but has no alpha channel). It makes total sense to adopt them.
     
  3. dtaralla

    dtaralla

    Joined:
    Jan 1, 2016
    Posts:
    16
    Thank you for your quick response!
    Maybe we misunderstood each other :)

    I don't really get why it makes so much sense to deprecate ATC and not ASTC or DXT for instance... Do you plan to deprecate the others then?

    Would you have a list of devices that supports ATC and not ETC2? Is it because this list is so short that it makes no sense supporting ATC while ETC2 is good enough for 90% of Adreno-powered devices? If the list is long, our company can't afford to lose compatibility with these devices... By compatibility, I mean the inflation in memory use this would lead to (the compressed version along the uncompressed one in RGBA16 is a no-go). We just want to understand the exact reasons why Unity thinks it's OK to not do ATC builds anymore :)
     
  4. Yury-Habets

    Yury-Habets

    Unity Technologies

    Joined:
    Nov 18, 2013
    Posts:
    1,069
    ASTC is a modern, effective, non-vendor-specific texture compression format supported on Android and iOS - there's no reason deprecating it! It's the future :)

    As I said, ETC2 is a part of GLES3 spec, so it's supported on all GLES3-enabled Adreno GPUs (Adreno 3xx and up). I think the only chips (supported by Unity) which support ATC and don't support ETC2 are Adreno 2xx series which are at least ~6 years old.
     
    Jes28 and dtaralla like this.