Hello. I’m trying to pack tangent-space normal maps. I’ve tried a lot of different combinations of options to toktx utilitity but it still gives me weird results
Shortly, I want to check 3 cases: hardware has BC5, EAC RG11, or BC3 and transcode the texture in that format for later use with appropriate underlying GL or Vulkan format for that compression. I check these capabilities in that order and there’s a fallback RGBA32 if none of these formats are supported on the hardware

All testings of the output of compressed textures I make in RenderDoc

If I use BCMP (etc1s, right?):

  1. options --t2 --2d --genmipmap --lower_left_maps_to_s0t0 --normal_map --target_type RG gives me good results for BC5 and EAC RG11. BC5 is swizzled as rrrg
  2. options --t2 --2d --genmipmap --lower_left_maps_to_s0t0 --target_type RG gives me the same result as the previous one
  3. options --t2 --2d --genmipmap --lower_left_maps_to_s0t0 gives me a good result for BC3 but BC5 and EAC R11 are swizzled as r101 (according to the RenderDoc output)

If I use ASTC as a primary compression scheme things become more interesting
There is no --normal_map option available:

  1. options --t2 --2d --genmipmap --lower_left_maps_to_s0t0 --target_type RG gives me a good result for BC3 with swizzle rg00 which is fine for me but both BC5 and EAC RG11 are swizzled as r101 (according to the RenderDoc output again)

According to Basis Universal repo readme it says

ETC1S textures work best on images, photos, map data, or albedo/specular/etc. textures, but don’t work as well on normal maps.

but it doesn’t work also with ASTC for me

If I messed up some terminology then mention it, please. I’m a new to GPU compression and all its workflow