From 5638c3e70ee72f7dc5af2c8f2665a3fdb92e119c Mon Sep 17 00:00:00 2001 From: Moayad Date: Thu, 30 Apr 2026 19:05:30 +0300 Subject: [PATCH] Fix orientation drop + map missing square ASTC formats - KtxTexture.LoadTexture2D: copy m_Ktx.orientation to result.orientation in the direct-format branch (was only set in the transcoding branch), fixing IsYFlipped() returning true for files explicitly authored Y-up. - KtxNativeInstance.GetGraphicsFormat: add cases for ASTC_4x4, 5x5, 6x6, 10x10, 12x12 (sRGB and UNorm) and remove them from the unsupported fall-through. Previously only ASTC_8x8 loaded; other square ASTC files hit 'untested/unsupported format'. --- Runtime/Scripts/KtxNativeInstance.cs | 20 ++++++++++---------- Runtime/Scripts/KtxTexture.cs | 1 + 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/Runtime/Scripts/KtxNativeInstance.cs b/Runtime/Scripts/KtxNativeInstance.cs index a393279..1880796 100644 --- a/Runtime/Scripts/KtxNativeInstance.cs +++ b/Runtime/Scripts/KtxNativeInstance.cs @@ -317,8 +317,18 @@ public void Unload() { static GraphicsFormat GetGraphicsFormat(VkFormat vkFormat) { switch (vkFormat) { + case VkFormat.Astc4X4SrgbBlock: return GraphicsFormat.RGBA_ASTC4X4_SRGB; + case VkFormat.Astc4X4UNormBlock: return GraphicsFormat.RGBA_ASTC4X4_UNorm; + case VkFormat.Astc5X5SrgbBlock: return GraphicsFormat.RGBA_ASTC5X5_SRGB; + case VkFormat.Astc5X5UNormBlock: return GraphicsFormat.RGBA_ASTC5X5_UNorm; + case VkFormat.Astc6X6SrgbBlock: return GraphicsFormat.RGBA_ASTC6X6_SRGB; + case VkFormat.Astc6X6UNormBlock: return GraphicsFormat.RGBA_ASTC6X6_UNorm; case VkFormat.Astc8X8SrgbBlock: return GraphicsFormat.RGBA_ASTC8X8_SRGB; case VkFormat.Astc8X8UNormBlock: return GraphicsFormat.RGBA_ASTC8X8_UNorm; + case VkFormat.Astc10X10SrgbBlock: return GraphicsFormat.RGBA_ASTC10X10_SRGB; + case VkFormat.Astc10X10UNormBlock: return GraphicsFormat.RGBA_ASTC10X10_UNorm; + case VkFormat.Astc12X12SrgbBlock: return GraphicsFormat.RGBA_ASTC12X12_SRGB; + case VkFormat.Astc12X12UNormBlock: return GraphicsFormat.RGBA_ASTC12X12_UNorm; case VkFormat.B10G11R11UFloatPack32: return GraphicsFormat.B10G11R11_UFloatPack32; case VkFormat.BC2SrgbBlock: return GraphicsFormat.RGBA_DXT3_SRGB; case VkFormat.BC2UNormBlock: return GraphicsFormat.RGBA_DXT3_UNorm; @@ -362,8 +372,6 @@ static GraphicsFormat GetGraphicsFormat(VkFormat vkFormat) { case VkFormat.A8B8G8R8UNormPack32: case VkFormat.A8B8G8R8UScaledPack32: case VkFormat.Astc10X10SFloatBlockExt: - case VkFormat.Astc10X10SrgbBlock: - case VkFormat.Astc10X10UNormBlock: case VkFormat.Astc10X5SFloatBlockExt: case VkFormat.Astc10X5SrgbBlock: case VkFormat.Astc10X5UNormBlock: @@ -377,8 +385,6 @@ static GraphicsFormat GetGraphicsFormat(VkFormat vkFormat) { case VkFormat.Astc12X10SrgbBlock: case VkFormat.Astc12X10UNormBlock: case VkFormat.Astc12X12SFloatBlockExt: - case VkFormat.Astc12X12SrgbBlock: - case VkFormat.Astc12X12UNormBlock: case VkFormat.Astc3X3X3SFloatBlockExt: case VkFormat.Astc3X3X3SrgbBlockExt: case VkFormat.Astc3X3X3UNormBlockExt: @@ -386,8 +392,6 @@ static GraphicsFormat GetGraphicsFormat(VkFormat vkFormat) { case VkFormat.Astc4X3X3SrgbBlockExt: case VkFormat.Astc4X3X3UNormBlockExt: case VkFormat.Astc4X4SFloatBlockExt: - case VkFormat.Astc4X4SrgbBlock: - case VkFormat.Astc4X4UNormBlock: case VkFormat.Astc4X4X3SFloatBlockExt: case VkFormat.Astc4X4X3SrgbBlockExt: case VkFormat.Astc4X4X3UNormBlockExt: @@ -401,8 +405,6 @@ static GraphicsFormat GetGraphicsFormat(VkFormat vkFormat) { case VkFormat.Astc5X4X4SrgbBlockExt: case VkFormat.Astc5X4X4UNormBlockExt: case VkFormat.Astc5X5SFloatBlockExt: - case VkFormat.Astc5X5SrgbBlock: - case VkFormat.Astc5X5UNormBlock: case VkFormat.Astc5X5X4SFloatBlockExt: case VkFormat.Astc5X5X4SrgbBlockExt: case VkFormat.Astc5X5X4UNormBlockExt: @@ -416,8 +418,6 @@ static GraphicsFormat GetGraphicsFormat(VkFormat vkFormat) { case VkFormat.Astc6X5X5SrgbBlockExt: case VkFormat.Astc6X5X5UNormBlockExt: case VkFormat.Astc6X6SFloatBlockExt: - case VkFormat.Astc6X6SrgbBlock: - case VkFormat.Astc6X6UNormBlock: case VkFormat.Astc6X6X5SFloatBlockExt: case VkFormat.Astc6X6X5SrgbBlockExt: case VkFormat.Astc6X6X5UNormBlockExt: diff --git a/Runtime/Scripts/KtxTexture.cs b/Runtime/Scripts/KtxTexture.cs index a12e6c6..6312ecc 100644 --- a/Runtime/Scripts/KtxTexture.cs +++ b/Runtime/Scripts/KtxTexture.cs @@ -76,6 +76,7 @@ public override async Task LoadTexture2D( result.errorCode = ErrorCode.FormatUnsupportedBySystem; } } + result.orientation = m_Ktx.orientation; } } else { result.errorCode = ErrorCode.UnsupportedVersion;