mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu-mainline.git
				synced 2025-03-21 01:53:15 +00:00 
			
		
		
		
	Merge pull request #3037 from FernandoS27/new-formats
video_core: Implement texture format E5B9G9R9_SHAREDEXP.
This commit is contained in:
		
						commit
						c5d9589942
					
				| @ -112,6 +112,7 @@ static constexpr ConversionArray morton_to_linear_fns = { | |||||||
|     MortonCopy<true, PixelFormat::ASTC_2D_8X6_SRGB>, |     MortonCopy<true, PixelFormat::ASTC_2D_8X6_SRGB>, | ||||||
|     MortonCopy<true, PixelFormat::ASTC_2D_6X5>, |     MortonCopy<true, PixelFormat::ASTC_2D_6X5>, | ||||||
|     MortonCopy<true, PixelFormat::ASTC_2D_6X5_SRGB>, |     MortonCopy<true, PixelFormat::ASTC_2D_6X5_SRGB>, | ||||||
|  |     MortonCopy<true, PixelFormat::E5B9G9R9F>, | ||||||
|     MortonCopy<true, PixelFormat::Z32F>, |     MortonCopy<true, PixelFormat::Z32F>, | ||||||
|     MortonCopy<true, PixelFormat::Z16>, |     MortonCopy<true, PixelFormat::Z16>, | ||||||
|     MortonCopy<true, PixelFormat::Z24S8>, |     MortonCopy<true, PixelFormat::Z24S8>, | ||||||
| @ -192,6 +193,7 @@ static constexpr ConversionArray linear_to_morton_fns = { | |||||||
|     nullptr, |     nullptr, | ||||||
|     nullptr, |     nullptr, | ||||||
|     nullptr, |     nullptr, | ||||||
|  |     MortonCopy<false, PixelFormat::E5B9G9R9F>, | ||||||
|     MortonCopy<false, PixelFormat::Z32F>, |     MortonCopy<false, PixelFormat::Z32F>, | ||||||
|     MortonCopy<false, PixelFormat::Z16>, |     MortonCopy<false, PixelFormat::Z16>, | ||||||
|     MortonCopy<false, PixelFormat::Z24S8>, |     MortonCopy<false, PixelFormat::Z24S8>, | ||||||
|  | |||||||
| @ -131,6 +131,7 @@ constexpr std::array<FormatTuple, VideoCore::Surface::MaxPixelFormat> tex_format | |||||||
|     {GL_SRGB8_ALPHA8, GL_RGBA, GL_UNSIGNED_BYTE, ComponentType::UNorm, false}, // ASTC_2D_8X6_SRGB
 |     {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_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
 |     {GL_SRGB8_ALPHA8, GL_RGBA, GL_UNSIGNED_BYTE, ComponentType::UNorm, false}, // ASTC_2D_6X5_SRGB
 | ||||||
|  |     {GL_RGB9_E5, GL_RGB, GL_UNSIGNED_INT_5_9_9_9_REV, ComponentType::Float, false}, // E5B9G9R9F
 | ||||||
| 
 | 
 | ||||||
|     // 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
 | ||||||
|  | |||||||
| @ -315,6 +315,14 @@ PixelFormat PixelFormatFromTextureFormat(Tegra::Texture::TextureFormat format, | |||||||
|             break; |             break; | ||||||
|         } |         } | ||||||
|         break; |         break; | ||||||
|  |     case Tegra::Texture::TextureFormat::E5B9G9R9_SHAREDEXP: | ||||||
|  |         switch (component_type) { | ||||||
|  |         case Tegra::Texture::ComponentType::FLOAT: | ||||||
|  |             return PixelFormat::E5B9G9R9F; | ||||||
|  |         default: | ||||||
|  |             break; | ||||||
|  |         } | ||||||
|  |         break; | ||||||
|     case Tegra::Texture::TextureFormat::ZF32: |     case Tegra::Texture::TextureFormat::ZF32: | ||||||
|         return PixelFormat::Z32F; |         return PixelFormat::Z32F; | ||||||
|     case Tegra::Texture::TextureFormat::Z16: |     case Tegra::Texture::TextureFormat::Z16: | ||||||
|  | |||||||
| @ -86,19 +86,20 @@ enum class PixelFormat { | |||||||
|     ASTC_2D_8X6_SRGB = 68, |     ASTC_2D_8X6_SRGB = 68, | ||||||
|     ASTC_2D_6X5 = 69, |     ASTC_2D_6X5 = 69, | ||||||
|     ASTC_2D_6X5_SRGB = 70, |     ASTC_2D_6X5_SRGB = 70, | ||||||
|  |     E5B9G9R9F = 71, | ||||||
| 
 | 
 | ||||||
|     MaxColorFormat, |     MaxColorFormat, | ||||||
| 
 | 
 | ||||||
|     // Depth formats
 |     // Depth formats
 | ||||||
|     Z32F = 71, |     Z32F = 72, | ||||||
|     Z16 = 72, |     Z16 = 73, | ||||||
| 
 | 
 | ||||||
|     MaxDepthFormat, |     MaxDepthFormat, | ||||||
| 
 | 
 | ||||||
|     // DepthStencil formats
 |     // DepthStencil formats
 | ||||||
|     Z24S8 = 73, |     Z24S8 = 74, | ||||||
|     S8Z24 = 74, |     S8Z24 = 75, | ||||||
|     Z32FS8 = 75, |     Z32FS8 = 76, | ||||||
| 
 | 
 | ||||||
|     MaxDepthStencilFormat, |     MaxDepthStencilFormat, | ||||||
| 
 | 
 | ||||||
| @ -207,6 +208,7 @@ constexpr std::array<u32, MaxPixelFormat> compression_factor_shift_table = {{ | |||||||
|     2, // ASTC_2D_8X6_SRGB
 |     2, // ASTC_2D_8X6_SRGB
 | ||||||
|     2, // ASTC_2D_6X5
 |     2, // ASTC_2D_6X5
 | ||||||
|     2, // ASTC_2D_6X5_SRGB
 |     2, // ASTC_2D_6X5_SRGB
 | ||||||
|  |     0, // E5B9G9R9F
 | ||||||
|     0, // Z32F
 |     0, // Z32F
 | ||||||
|     0, // Z16
 |     0, // Z16
 | ||||||
|     0, // Z24S8
 |     0, // Z24S8
 | ||||||
| @ -302,6 +304,7 @@ constexpr std::array<u32, MaxPixelFormat> block_width_table = {{ | |||||||
|     8,  // ASTC_2D_8X6_SRGB
 |     8,  // ASTC_2D_8X6_SRGB
 | ||||||
|     6,  // ASTC_2D_6X5
 |     6,  // ASTC_2D_6X5
 | ||||||
|     6,  // ASTC_2D_6X5_SRGB
 |     6,  // ASTC_2D_6X5_SRGB
 | ||||||
|  |     1,  // E5B9G9R9F
 | ||||||
|     1,  // Z32F
 |     1,  // Z32F
 | ||||||
|     1,  // Z16
 |     1,  // Z16
 | ||||||
|     1,  // Z24S8
 |     1,  // Z24S8
 | ||||||
| @ -389,6 +392,7 @@ constexpr std::array<u32, MaxPixelFormat> block_height_table = {{ | |||||||
|     6,  // ASTC_2D_8X6_SRGB
 |     6,  // ASTC_2D_8X6_SRGB
 | ||||||
|     5,  // ASTC_2D_6X5
 |     5,  // ASTC_2D_6X5
 | ||||||
|     5,  // ASTC_2D_6X5_SRGB
 |     5,  // ASTC_2D_6X5_SRGB
 | ||||||
|  |     1,  // E5B9G9R9F
 | ||||||
|     1,  // Z32F
 |     1,  // Z32F
 | ||||||
|     1,  // Z16
 |     1,  // Z16
 | ||||||
|     1,  // Z24S8
 |     1,  // Z24S8
 | ||||||
| @ -476,6 +480,7 @@ constexpr std::array<u32, MaxPixelFormat> bpp_table = {{ | |||||||
|     128, // ASTC_2D_8X6_SRGB
 |     128, // ASTC_2D_8X6_SRGB
 | ||||||
|     128, // ASTC_2D_6X5
 |     128, // ASTC_2D_6X5
 | ||||||
|     128, // ASTC_2D_6X5_SRGB
 |     128, // ASTC_2D_6X5_SRGB
 | ||||||
|  |     32,  // E5B9G9R9F
 | ||||||
|     32,  // Z32F
 |     32,  // Z32F
 | ||||||
|     16,  // Z16
 |     16,  // Z16
 | ||||||
|     32,  // Z24S8
 |     32,  // Z24S8
 | ||||||
| @ -578,6 +583,7 @@ constexpr std::array<SurfaceCompression, MaxPixelFormat> compression_type_table | |||||||
|     SurfaceCompression::Converted,  // ASTC_2D_8X6_SRGB
 |     SurfaceCompression::Converted,  // ASTC_2D_8X6_SRGB
 | ||||||
|     SurfaceCompression::Converted,  // ASTC_2D_6X5
 |     SurfaceCompression::Converted,  // ASTC_2D_6X5
 | ||||||
|     SurfaceCompression::Converted,  // ASTC_2D_6X5_SRGB
 |     SurfaceCompression::Converted,  // ASTC_2D_6X5_SRGB
 | ||||||
|  |     SurfaceCompression::None,       // E5B9G9R9F
 | ||||||
|     SurfaceCompression::None,       // Z32F
 |     SurfaceCompression::None,       // Z32F
 | ||||||
|     SurfaceCompression::None,       // Z16
 |     SurfaceCompression::None,       // Z16
 | ||||||
|     SurfaceCompression::None,       // Z24S8
 |     SurfaceCompression::None,       // Z24S8
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Rodrigo Locatti
						Rodrigo Locatti