mirror of
				https://git.suyu.dev/suyu/suyu
				synced 2025-10-26 05:32:46 -05:00 
			
		
		
		
	Merge pull request #2966 from FernandoS27/astc-formats
Implement a series of ASTC formats and R4G4B4A4 format
This commit is contained in:
		| @@ -93,6 +93,7 @@ static constexpr ConversionArray morton_to_linear_fns = { | |||||||
|     MortonCopy<true, PixelFormat::DXT23_SRGB>, |     MortonCopy<true, PixelFormat::DXT23_SRGB>, | ||||||
|     MortonCopy<true, PixelFormat::DXT45_SRGB>, |     MortonCopy<true, PixelFormat::DXT45_SRGB>, | ||||||
|     MortonCopy<true, PixelFormat::BC7U_SRGB>, |     MortonCopy<true, PixelFormat::BC7U_SRGB>, | ||||||
|  |     MortonCopy<true, PixelFormat::R4G4B4A4U>, | ||||||
|     MortonCopy<true, PixelFormat::ASTC_2D_4X4_SRGB>, |     MortonCopy<true, PixelFormat::ASTC_2D_4X4_SRGB>, | ||||||
|     MortonCopy<true, PixelFormat::ASTC_2D_8X8_SRGB>, |     MortonCopy<true, PixelFormat::ASTC_2D_8X8_SRGB>, | ||||||
|     MortonCopy<true, PixelFormat::ASTC_2D_8X5_SRGB>, |     MortonCopy<true, PixelFormat::ASTC_2D_8X5_SRGB>, | ||||||
| @@ -101,6 +102,16 @@ static constexpr ConversionArray morton_to_linear_fns = { | |||||||
|     MortonCopy<true, PixelFormat::ASTC_2D_5X5_SRGB>, |     MortonCopy<true, PixelFormat::ASTC_2D_5X5_SRGB>, | ||||||
|     MortonCopy<true, PixelFormat::ASTC_2D_10X8>, |     MortonCopy<true, PixelFormat::ASTC_2D_10X8>, | ||||||
|     MortonCopy<true, PixelFormat::ASTC_2D_10X8_SRGB>, |     MortonCopy<true, PixelFormat::ASTC_2D_10X8_SRGB>, | ||||||
|  |     MortonCopy<true, PixelFormat::ASTC_2D_6X6>, | ||||||
|  |     MortonCopy<true, PixelFormat::ASTC_2D_6X6_SRGB>, | ||||||
|  |     MortonCopy<true, PixelFormat::ASTC_2D_10X10>, | ||||||
|  |     MortonCopy<true, PixelFormat::ASTC_2D_10X10_SRGB>, | ||||||
|  |     MortonCopy<true, PixelFormat::ASTC_2D_12X12>, | ||||||
|  |     MortonCopy<true, PixelFormat::ASTC_2D_12X12_SRGB>, | ||||||
|  |     MortonCopy<true, PixelFormat::ASTC_2D_8X6>, | ||||||
|  |     MortonCopy<true, PixelFormat::ASTC_2D_8X6_SRGB>, | ||||||
|  |     MortonCopy<true, PixelFormat::ASTC_2D_6X5>, | ||||||
|  |     MortonCopy<true, PixelFormat::ASTC_2D_6X5_SRGB>, | ||||||
|     MortonCopy<true, PixelFormat::Z32F>, |     MortonCopy<true, PixelFormat::Z32F>, | ||||||
|     MortonCopy<true, PixelFormat::Z16>, |     MortonCopy<true, PixelFormat::Z16>, | ||||||
|     MortonCopy<true, PixelFormat::Z24S8>, |     MortonCopy<true, PixelFormat::Z24S8>, | ||||||
| @@ -162,6 +173,17 @@ static constexpr ConversionArray linear_to_morton_fns = { | |||||||
|     MortonCopy<false, PixelFormat::DXT23_SRGB>, |     MortonCopy<false, PixelFormat::DXT23_SRGB>, | ||||||
|     MortonCopy<false, PixelFormat::DXT45_SRGB>, |     MortonCopy<false, PixelFormat::DXT45_SRGB>, | ||||||
|     MortonCopy<false, PixelFormat::BC7U_SRGB>, |     MortonCopy<false, PixelFormat::BC7U_SRGB>, | ||||||
|  |     MortonCopy<false, PixelFormat::R4G4B4A4U>, | ||||||
|  |     nullptr, | ||||||
|  |     nullptr, | ||||||
|  |     nullptr, | ||||||
|  |     nullptr, | ||||||
|  |     nullptr, | ||||||
|  |     nullptr, | ||||||
|  |     nullptr, | ||||||
|  |     nullptr, | ||||||
|  |     nullptr, | ||||||
|  |     nullptr, | ||||||
|     nullptr, |     nullptr, | ||||||
|     nullptr, |     nullptr, | ||||||
|     nullptr, |     nullptr, | ||||||
|   | |||||||
| @@ -112,6 +112,7 @@ constexpr std::array<FormatTuple, VideoCore::Surface::MaxPixelFormat> tex_format | |||||||
|      true}, // DXT45_SRGB |      true}, // DXT45_SRGB | ||||||
|     {GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM, GL_RGBA, GL_UNSIGNED_INT_8_8_8_8, ComponentType::UNorm, |     {GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM, GL_RGBA, GL_UNSIGNED_INT_8_8_8_8, ComponentType::UNorm, | ||||||
|      true},                                                                          // BC7U_SRGB |      true},                                                                          // BC7U_SRGB | ||||||
|  |     {GL_RGBA4, GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4_REV, ComponentType::UNorm, false}, // R4G4B4A4U | ||||||
|     {GL_SRGB8_ALPHA8, GL_RGBA, GL_UNSIGNED_BYTE, ComponentType::UNorm, false}, // ASTC_2D_4X4_SRGB |     {GL_SRGB8_ALPHA8, GL_RGBA, GL_UNSIGNED_BYTE, ComponentType::UNorm, false}, // ASTC_2D_4X4_SRGB | ||||||
|     {GL_SRGB8_ALPHA8, GL_RGBA, GL_UNSIGNED_BYTE, ComponentType::UNorm, false}, // ASTC_2D_8X8_SRGB |     {GL_SRGB8_ALPHA8, GL_RGBA, GL_UNSIGNED_BYTE, ComponentType::UNorm, false}, // ASTC_2D_8X8_SRGB | ||||||
|     {GL_SRGB8_ALPHA8, GL_RGBA, GL_UNSIGNED_BYTE, ComponentType::UNorm, false}, // ASTC_2D_8X5_SRGB |     {GL_SRGB8_ALPHA8, GL_RGBA, GL_UNSIGNED_BYTE, ComponentType::UNorm, false}, // ASTC_2D_8X5_SRGB | ||||||
| @@ -120,6 +121,16 @@ constexpr std::array<FormatTuple, VideoCore::Surface::MaxPixelFormat> tex_format | |||||||
|     {GL_SRGB8_ALPHA8, GL_RGBA, GL_UNSIGNED_BYTE, ComponentType::UNorm, false}, // ASTC_2D_5X5_SRGB |     {GL_SRGB8_ALPHA8, GL_RGBA, GL_UNSIGNED_BYTE, ComponentType::UNorm, false}, // ASTC_2D_5X5_SRGB | ||||||
|     {GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE, ComponentType::UNorm, false},        // ASTC_2D_10X8 |     {GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE, ComponentType::UNorm, false},        // ASTC_2D_10X8 | ||||||
|     {GL_SRGB8_ALPHA8, GL_RGBA, GL_UNSIGNED_BYTE, ComponentType::UNorm, false}, // ASTC_2D_10X8_SRGB |     {GL_SRGB8_ALPHA8, GL_RGBA, GL_UNSIGNED_BYTE, ComponentType::UNorm, false}, // ASTC_2D_10X8_SRGB | ||||||
|  |     {GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE, ComponentType::UNorm, false},        // ASTC_2D_6X6 | ||||||
|  |     {GL_SRGB8_ALPHA8, GL_RGBA, GL_UNSIGNED_BYTE, ComponentType::UNorm, false}, // ASTC_2D_6X6_SRGB | ||||||
|  |     {GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE, ComponentType::UNorm, false},        // ASTC_2D_10X10 | ||||||
|  |     {GL_SRGB8_ALPHA8, GL_RGBA, GL_UNSIGNED_BYTE, ComponentType::UNorm, false}, // ASTC_2D_10X10_SRGB | ||||||
|  |     {GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE, ComponentType::UNorm, false},        // ASTC_2D_12X12 | ||||||
|  |     {GL_SRGB8_ALPHA8, GL_RGBA, GL_UNSIGNED_BYTE, ComponentType::UNorm, false}, // ASTC_2D_12X12_SRGB | ||||||
|  |     {GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE, ComponentType::UNorm, false},        // ASTC_2D_8X6 | ||||||
|  |     {GL_SRGB8_ALPHA8, GL_RGBA, GL_UNSIGNED_BYTE, ComponentType::UNorm, false}, // ASTC_2D_8X6_SRGB | ||||||
|  |     {GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE, ComponentType::UNorm, false},        // ASTC_2D_6X5 | ||||||
|  |     {GL_SRGB8_ALPHA8, GL_RGBA, GL_UNSIGNED_BYTE, ComponentType::UNorm, false}, // ASTC_2D_6X5_SRGB | ||||||
|  |  | ||||||
|     // Depth formats |     // Depth formats | ||||||
|     {GL_DEPTH_COMPONENT32F, GL_DEPTH_COMPONENT, GL_FLOAT, ComponentType::Float, false}, // Z32F |     {GL_DEPTH_COMPONENT32F, GL_DEPTH_COMPONENT, GL_FLOAT, ComponentType::Float, false}, // Z32F | ||||||
|   | |||||||
| @@ -212,6 +212,14 @@ PixelFormat PixelFormatFromTextureFormat(Tegra::Texture::TextureFormat format, | |||||||
|             break; |             break; | ||||||
|         } |         } | ||||||
|         break; |         break; | ||||||
|  |     case Tegra::Texture::TextureFormat::A4B4G4R4: | ||||||
|  |         switch (component_type) { | ||||||
|  |         case Tegra::Texture::ComponentType::UNORM: | ||||||
|  |             return PixelFormat::R4G4B4A4U; | ||||||
|  |         default: | ||||||
|  |             break; | ||||||
|  |         } | ||||||
|  |         break; | ||||||
|     case Tegra::Texture::TextureFormat::R8: |     case Tegra::Texture::TextureFormat::R8: | ||||||
|         switch (component_type) { |         switch (component_type) { | ||||||
|         case Tegra::Texture::ComponentType::UNORM: |         case Tegra::Texture::ComponentType::UNORM: | ||||||
| @@ -351,6 +359,16 @@ PixelFormat PixelFormatFromTextureFormat(Tegra::Texture::TextureFormat format, | |||||||
|         return is_srgb ? PixelFormat::ASTC_2D_8X5_SRGB : PixelFormat::ASTC_2D_8X5; |         return is_srgb ? PixelFormat::ASTC_2D_8X5_SRGB : PixelFormat::ASTC_2D_8X5; | ||||||
|     case Tegra::Texture::TextureFormat::ASTC_2D_10X8: |     case Tegra::Texture::TextureFormat::ASTC_2D_10X8: | ||||||
|         return is_srgb ? PixelFormat::ASTC_2D_10X8_SRGB : PixelFormat::ASTC_2D_10X8; |         return is_srgb ? PixelFormat::ASTC_2D_10X8_SRGB : PixelFormat::ASTC_2D_10X8; | ||||||
|  |     case Tegra::Texture::TextureFormat::ASTC_2D_6X6: | ||||||
|  |         return is_srgb ? PixelFormat::ASTC_2D_6X6_SRGB : PixelFormat::ASTC_2D_6X6; | ||||||
|  |     case Tegra::Texture::TextureFormat::ASTC_2D_10X10: | ||||||
|  |         return is_srgb ? PixelFormat::ASTC_2D_10X10_SRGB : PixelFormat::ASTC_2D_10X10; | ||||||
|  |     case Tegra::Texture::TextureFormat::ASTC_2D_12X12: | ||||||
|  |         return is_srgb ? PixelFormat::ASTC_2D_12X12_SRGB : PixelFormat::ASTC_2D_12X12; | ||||||
|  |     case Tegra::Texture::TextureFormat::ASTC_2D_8X6: | ||||||
|  |         return is_srgb ? PixelFormat::ASTC_2D_8X6_SRGB : PixelFormat::ASTC_2D_8X6; | ||||||
|  |     case Tegra::Texture::TextureFormat::ASTC_2D_6X5: | ||||||
|  |         return is_srgb ? PixelFormat::ASTC_2D_6X5_SRGB : PixelFormat::ASTC_2D_6X5; | ||||||
|     case Tegra::Texture::TextureFormat::R16_G16: |     case Tegra::Texture::TextureFormat::R16_G16: | ||||||
|         switch (component_type) { |         switch (component_type) { | ||||||
|         case Tegra::Texture::ComponentType::FLOAT: |         case Tegra::Texture::ComponentType::FLOAT: | ||||||
| @@ -511,6 +529,16 @@ bool IsPixelFormatASTC(PixelFormat format) { | |||||||
|     case PixelFormat::ASTC_2D_8X5_SRGB: |     case PixelFormat::ASTC_2D_8X5_SRGB: | ||||||
|     case PixelFormat::ASTC_2D_10X8: |     case PixelFormat::ASTC_2D_10X8: | ||||||
|     case PixelFormat::ASTC_2D_10X8_SRGB: |     case PixelFormat::ASTC_2D_10X8_SRGB: | ||||||
|  |     case PixelFormat::ASTC_2D_6X6: | ||||||
|  |     case PixelFormat::ASTC_2D_6X6_SRGB: | ||||||
|  |     case PixelFormat::ASTC_2D_10X10: | ||||||
|  |     case PixelFormat::ASTC_2D_10X10_SRGB: | ||||||
|  |     case PixelFormat::ASTC_2D_12X12: | ||||||
|  |     case PixelFormat::ASTC_2D_12X12_SRGB: | ||||||
|  |     case PixelFormat::ASTC_2D_8X6: | ||||||
|  |     case PixelFormat::ASTC_2D_8X6_SRGB: | ||||||
|  |     case PixelFormat::ASTC_2D_6X5: | ||||||
|  |     case PixelFormat::ASTC_2D_6X5_SRGB: | ||||||
|         return true; |         return true; | ||||||
|     default: |     default: | ||||||
|         return false; |         return false; | ||||||
| @@ -531,6 +559,11 @@ bool IsPixelFormatSRGB(PixelFormat format) { | |||||||
|     case PixelFormat::ASTC_2D_5X4_SRGB: |     case PixelFormat::ASTC_2D_5X4_SRGB: | ||||||
|     case PixelFormat::ASTC_2D_5X5_SRGB: |     case PixelFormat::ASTC_2D_5X5_SRGB: | ||||||
|     case PixelFormat::ASTC_2D_10X8_SRGB: |     case PixelFormat::ASTC_2D_10X8_SRGB: | ||||||
|  |     case PixelFormat::ASTC_2D_6X6_SRGB: | ||||||
|  |     case PixelFormat::ASTC_2D_10X10_SRGB: | ||||||
|  |     case PixelFormat::ASTC_2D_12X12_SRGB: | ||||||
|  |     case PixelFormat::ASTC_2D_8X6_SRGB: | ||||||
|  |     case PixelFormat::ASTC_2D_6X5_SRGB: | ||||||
|         return true; |         return true; | ||||||
|     default: |     default: | ||||||
|         return false; |         return false; | ||||||
|   | |||||||
| @@ -67,27 +67,38 @@ enum class PixelFormat { | |||||||
|     DXT23_SRGB = 49, |     DXT23_SRGB = 49, | ||||||
|     DXT45_SRGB = 50, |     DXT45_SRGB = 50, | ||||||
|     BC7U_SRGB = 51, |     BC7U_SRGB = 51, | ||||||
|     ASTC_2D_4X4_SRGB = 52, |     R4G4B4A4U = 52, | ||||||
|     ASTC_2D_8X8_SRGB = 53, |     ASTC_2D_4X4_SRGB = 53, | ||||||
|     ASTC_2D_8X5_SRGB = 54, |     ASTC_2D_8X8_SRGB = 54, | ||||||
|     ASTC_2D_5X4_SRGB = 55, |     ASTC_2D_8X5_SRGB = 55, | ||||||
|     ASTC_2D_5X5 = 56, |     ASTC_2D_5X4_SRGB = 56, | ||||||
|     ASTC_2D_5X5_SRGB = 57, |     ASTC_2D_5X5 = 57, | ||||||
|     ASTC_2D_10X8 = 58, |     ASTC_2D_5X5_SRGB = 58, | ||||||
|     ASTC_2D_10X8_SRGB = 59, |     ASTC_2D_10X8 = 59, | ||||||
|  |     ASTC_2D_10X8_SRGB = 60, | ||||||
|  |     ASTC_2D_6X6 = 61, | ||||||
|  |     ASTC_2D_6X6_SRGB = 62, | ||||||
|  |     ASTC_2D_10X10 = 63, | ||||||
|  |     ASTC_2D_10X10_SRGB = 64, | ||||||
|  |     ASTC_2D_12X12 = 65, | ||||||
|  |     ASTC_2D_12X12_SRGB = 66, | ||||||
|  |     ASTC_2D_8X6 = 67, | ||||||
|  |     ASTC_2D_8X6_SRGB = 68, | ||||||
|  |     ASTC_2D_6X5 = 69, | ||||||
|  |     ASTC_2D_6X5_SRGB = 70, | ||||||
|  |  | ||||||
|     MaxColorFormat, |     MaxColorFormat, | ||||||
|  |  | ||||||
|     // Depth formats |     // Depth formats | ||||||
|     Z32F = 60, |     Z32F = 71, | ||||||
|     Z16 = 61, |     Z16 = 72, | ||||||
|  |  | ||||||
|     MaxDepthFormat, |     MaxDepthFormat, | ||||||
|  |  | ||||||
|     // DepthStencil formats |     // DepthStencil formats | ||||||
|     Z24S8 = 62, |     Z24S8 = 73, | ||||||
|     S8Z24 = 63, |     S8Z24 = 74, | ||||||
|     Z32FS8 = 64, |     Z32FS8 = 75, | ||||||
|  |  | ||||||
|     MaxDepthStencilFormat, |     MaxDepthStencilFormat, | ||||||
|  |  | ||||||
| @@ -177,6 +188,7 @@ constexpr std::array<u32, MaxPixelFormat> compression_factor_shift_table = {{ | |||||||
|     2, // DXT23_SRGB |     2, // DXT23_SRGB | ||||||
|     2, // DXT45_SRGB |     2, // DXT45_SRGB | ||||||
|     2, // BC7U_SRGB |     2, // BC7U_SRGB | ||||||
|  |     0, // R4G4B4A4U | ||||||
|     2, // ASTC_2D_4X4_SRGB |     2, // ASTC_2D_4X4_SRGB | ||||||
|     2, // ASTC_2D_8X8_SRGB |     2, // ASTC_2D_8X8_SRGB | ||||||
|     2, // ASTC_2D_8X5_SRGB |     2, // ASTC_2D_8X5_SRGB | ||||||
| @@ -185,6 +197,16 @@ constexpr std::array<u32, MaxPixelFormat> compression_factor_shift_table = {{ | |||||||
|     2, // ASTC_2D_5X5_SRGB |     2, // ASTC_2D_5X5_SRGB | ||||||
|     2, // ASTC_2D_10X8 |     2, // ASTC_2D_10X8 | ||||||
|     2, // ASTC_2D_10X8_SRGB |     2, // ASTC_2D_10X8_SRGB | ||||||
|  |     2, // ASTC_2D_6X6 | ||||||
|  |     2, // ASTC_2D_6X6_SRGB | ||||||
|  |     2, // ASTC_2D_10X10 | ||||||
|  |     2, // ASTC_2D_10X10_SRGB | ||||||
|  |     2, // ASTC_2D_12X12 | ||||||
|  |     2, // ASTC_2D_12X12_SRGB | ||||||
|  |     2, // ASTC_2D_8X6 | ||||||
|  |     2, // ASTC_2D_8X6_SRGB | ||||||
|  |     2, // ASTC_2D_6X5 | ||||||
|  |     2, // ASTC_2D_6X5_SRGB | ||||||
|     0, // Z32F |     0, // Z32F | ||||||
|     0, // Z16 |     0, // Z16 | ||||||
|     0, // Z24S8 |     0, // Z24S8 | ||||||
| @@ -261,6 +283,7 @@ constexpr std::array<u32, MaxPixelFormat> block_width_table = {{ | |||||||
|     4,  // DXT23_SRGB |     4,  // DXT23_SRGB | ||||||
|     4,  // DXT45_SRGB |     4,  // DXT45_SRGB | ||||||
|     4,  // BC7U_SRGB |     4,  // BC7U_SRGB | ||||||
|  |     1,  // R4G4B4A4U | ||||||
|     4,  // ASTC_2D_4X4_SRGB |     4,  // ASTC_2D_4X4_SRGB | ||||||
|     8,  // ASTC_2D_8X8_SRGB |     8,  // ASTC_2D_8X8_SRGB | ||||||
|     8,  // ASTC_2D_8X5_SRGB |     8,  // ASTC_2D_8X5_SRGB | ||||||
| @@ -269,6 +292,16 @@ constexpr std::array<u32, MaxPixelFormat> block_width_table = {{ | |||||||
|     5,  // ASTC_2D_5X5_SRGB |     5,  // ASTC_2D_5X5_SRGB | ||||||
|     10, // ASTC_2D_10X8 |     10, // ASTC_2D_10X8 | ||||||
|     10, // ASTC_2D_10X8_SRGB |     10, // ASTC_2D_10X8_SRGB | ||||||
|  |     6,  // ASTC_2D_6X6 | ||||||
|  |     6,  // ASTC_2D_6X6_SRGB | ||||||
|  |     10, // ASTC_2D_10X10 | ||||||
|  |     10, // ASTC_2D_10X10_SRGB | ||||||
|  |     12, // ASTC_2D_12X12 | ||||||
|  |     12, // ASTC_2D_12X12_SRGB | ||||||
|  |     8,  // ASTC_2D_8X6 | ||||||
|  |     8,  // ASTC_2D_8X6_SRGB | ||||||
|  |     6,  // ASTC_2D_6X5 | ||||||
|  |     6,  // ASTC_2D_6X5_SRGB | ||||||
|     1,  // Z32F |     1,  // Z32F | ||||||
|     1,  // Z16 |     1,  // Z16 | ||||||
|     1,  // Z24S8 |     1,  // Z24S8 | ||||||
| @@ -337,6 +370,7 @@ constexpr std::array<u32, MaxPixelFormat> block_height_table = {{ | |||||||
|     4,  // DXT23_SRGB |     4,  // DXT23_SRGB | ||||||
|     4,  // DXT45_SRGB |     4,  // DXT45_SRGB | ||||||
|     4,  // BC7U_SRGB |     4,  // BC7U_SRGB | ||||||
|  |     1,  // R4G4B4A4U | ||||||
|     4,  // ASTC_2D_4X4_SRGB |     4,  // ASTC_2D_4X4_SRGB | ||||||
|     8,  // ASTC_2D_8X8_SRGB |     8,  // ASTC_2D_8X8_SRGB | ||||||
|     5,  // ASTC_2D_8X5_SRGB |     5,  // ASTC_2D_8X5_SRGB | ||||||
| @@ -345,6 +379,16 @@ constexpr std::array<u32, MaxPixelFormat> block_height_table = {{ | |||||||
|     5,  // ASTC_2D_5X5_SRGB |     5,  // ASTC_2D_5X5_SRGB | ||||||
|     8,  // ASTC_2D_10X8 |     8,  // ASTC_2D_10X8 | ||||||
|     8,  // ASTC_2D_10X8_SRGB |     8,  // ASTC_2D_10X8_SRGB | ||||||
|  |     6,  // ASTC_2D_6X6 | ||||||
|  |     6,  // ASTC_2D_6X6_SRGB | ||||||
|  |     10, // ASTC_2D_10X10 | ||||||
|  |     10, // ASTC_2D_10X10_SRGB | ||||||
|  |     12, // ASTC_2D_12X12 | ||||||
|  |     12, // ASTC_2D_12X12_SRGB | ||||||
|  |     6,  // ASTC_2D_8X6 | ||||||
|  |     6,  // ASTC_2D_8X6_SRGB | ||||||
|  |     5,  // ASTC_2D_6X5 | ||||||
|  |     5,  // ASTC_2D_6X5_SRGB | ||||||
|     1,  // Z32F |     1,  // Z32F | ||||||
|     1,  // Z16 |     1,  // Z16 | ||||||
|     1,  // Z24S8 |     1,  // Z24S8 | ||||||
| @@ -413,6 +457,7 @@ constexpr std::array<u32, MaxPixelFormat> bpp_table = {{ | |||||||
|     128, // DXT23_SRGB |     128, // DXT23_SRGB | ||||||
|     128, // DXT45_SRGB |     128, // DXT45_SRGB | ||||||
|     128, // BC7U |     128, // BC7U | ||||||
|  |     16,  // R4G4B4A4U | ||||||
|     128, // ASTC_2D_4X4_SRGB |     128, // ASTC_2D_4X4_SRGB | ||||||
|     128, // ASTC_2D_8X8_SRGB |     128, // ASTC_2D_8X8_SRGB | ||||||
|     128, // ASTC_2D_8X5_SRGB |     128, // ASTC_2D_8X5_SRGB | ||||||
| @@ -421,6 +466,16 @@ constexpr std::array<u32, MaxPixelFormat> bpp_table = {{ | |||||||
|     128, // ASTC_2D_5X5_SRGB |     128, // ASTC_2D_5X5_SRGB | ||||||
|     128, // ASTC_2D_10X8 |     128, // ASTC_2D_10X8 | ||||||
|     128, // ASTC_2D_10X8_SRGB |     128, // ASTC_2D_10X8_SRGB | ||||||
|  |     128, // ASTC_2D_6X6 | ||||||
|  |     128, // ASTC_2D_6X6_SRGB | ||||||
|  |     128, // ASTC_2D_10X10 | ||||||
|  |     128, // ASTC_2D_10X10_SRGB | ||||||
|  |     128, // ASTC_2D_12X12 | ||||||
|  |     128, // ASTC_2D_12X12_SRGB | ||||||
|  |     128, // ASTC_2D_8X6 | ||||||
|  |     128, // ASTC_2D_8X6_SRGB | ||||||
|  |     128, // ASTC_2D_6X5 | ||||||
|  |     128, // ASTC_2D_6X5_SRGB | ||||||
|     32,  // Z32F |     32,  // Z32F | ||||||
|     16,  // Z16 |     16,  // Z16 | ||||||
|     32,  // Z24S8 |     32,  // Z24S8 | ||||||
| @@ -504,6 +559,7 @@ constexpr std::array<SurfaceCompression, MaxPixelFormat> compression_type_table | |||||||
|     SurfaceCompression::Compressed, // DXT23_SRGB |     SurfaceCompression::Compressed, // DXT23_SRGB | ||||||
|     SurfaceCompression::Compressed, // DXT45_SRGB |     SurfaceCompression::Compressed, // DXT45_SRGB | ||||||
|     SurfaceCompression::Compressed, // BC7U_SRGB |     SurfaceCompression::Compressed, // BC7U_SRGB | ||||||
|  |     SurfaceCompression::None,       // R4G4B4A4U | ||||||
|     SurfaceCompression::Converted,  // ASTC_2D_4X4_SRGB |     SurfaceCompression::Converted,  // ASTC_2D_4X4_SRGB | ||||||
|     SurfaceCompression::Converted,  // ASTC_2D_8X8_SRGB |     SurfaceCompression::Converted,  // ASTC_2D_8X8_SRGB | ||||||
|     SurfaceCompression::Converted,  // ASTC_2D_8X5_SRGB |     SurfaceCompression::Converted,  // ASTC_2D_8X5_SRGB | ||||||
| @@ -512,6 +568,16 @@ constexpr std::array<SurfaceCompression, MaxPixelFormat> compression_type_table | |||||||
|     SurfaceCompression::Converted,  // ASTC_2D_5X5_SRGB |     SurfaceCompression::Converted,  // ASTC_2D_5X5_SRGB | ||||||
|     SurfaceCompression::Converted,  // ASTC_2D_10X8 |     SurfaceCompression::Converted,  // ASTC_2D_10X8 | ||||||
|     SurfaceCompression::Converted,  // ASTC_2D_10X8_SRGB |     SurfaceCompression::Converted,  // ASTC_2D_10X8_SRGB | ||||||
|  |     SurfaceCompression::Converted,  // ASTC_2D_6X6 | ||||||
|  |     SurfaceCompression::Converted,  // ASTC_2D_6X6_SRGB | ||||||
|  |     SurfaceCompression::Converted,  // ASTC_2D_10X10 | ||||||
|  |     SurfaceCompression::Converted,  // ASTC_2D_10X10_SRGB | ||||||
|  |     SurfaceCompression::Converted,  // ASTC_2D_12X12 | ||||||
|  |     SurfaceCompression::Converted,  // ASTC_2D_12X12_SRGB | ||||||
|  |     SurfaceCompression::Converted,  // ASTC_2D_8X6 | ||||||
|  |     SurfaceCompression::Converted,  // ASTC_2D_8X6_SRGB | ||||||
|  |     SurfaceCompression::Converted,  // ASTC_2D_6X5 | ||||||
|  |     SurfaceCompression::Converted,  // ASTC_2D_6X5_SRGB | ||||||
|     SurfaceCompression::None,       // Z32F |     SurfaceCompression::None,       // Z32F | ||||||
|     SurfaceCompression::None,       // Z16 |     SurfaceCompression::None,       // Z16 | ||||||
|     SurfaceCompression::None,       // Z24S8 |     SurfaceCompression::None,       // Z24S8 | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Rodrigo Locatti
					Rodrigo Locatti