Przeglądaj źródła

gl_rasterizer_cached: Implement RenderTargetFormat::B5G6R5_UNORM.

- Used by Super Mario Odyssey.
bunnei 8 lat temu
rodzic
commit
aaf8d9ac2f

+ 1 - 0
src/video_core/gpu.h

@@ -34,6 +34,7 @@ enum class RenderTargetFormat : u32 {
     RG16_FLOAT = 0xDE,
     RG16_FLOAT = 0xDE,
     R11G11B10_FLOAT = 0xE0,
     R11G11B10_FLOAT = 0xE0,
     R32_FLOAT = 0xE5,
     R32_FLOAT = 0xE5,
+    B5G6R5_UNORM = 0xE8,
     R16_FLOAT = 0xF2,
     R16_FLOAT = 0xF2,
     R8_UNORM = 0xF3,
     R8_UNORM = 0xF3,
 };
 };

+ 3 - 0
src/video_core/renderer_opengl/gl_rasterizer_cache.h

@@ -221,6 +221,8 @@ struct SurfaceParams {
             return PixelFormat::RG32F;
             return PixelFormat::RG32F;
         case Tegra::RenderTargetFormat::R11G11B10_FLOAT:
         case Tegra::RenderTargetFormat::R11G11B10_FLOAT:
             return PixelFormat::R11FG11FB10F;
             return PixelFormat::R11FG11FB10F;
+        case Tegra::RenderTargetFormat::B5G6R5_UNORM:
+            return PixelFormat::B5G6R5;
         case Tegra::RenderTargetFormat::RGBA32_UINT:
         case Tegra::RenderTargetFormat::RGBA32_UINT:
             return PixelFormat::RGBA32UI;
             return PixelFormat::RGBA32UI;
         case Tegra::RenderTargetFormat::R8_UNORM:
         case Tegra::RenderTargetFormat::R8_UNORM:
@@ -441,6 +443,7 @@ struct SurfaceParams {
         case Tegra::RenderTargetFormat::RGB10_A2_UNORM:
         case Tegra::RenderTargetFormat::RGB10_A2_UNORM:
         case Tegra::RenderTargetFormat::R8_UNORM:
         case Tegra::RenderTargetFormat::R8_UNORM:
         case Tegra::RenderTargetFormat::RG16_UNORM:
         case Tegra::RenderTargetFormat::RG16_UNORM:
+        case Tegra::RenderTargetFormat::B5G6R5_UNORM:
             return ComponentType::UNorm;
             return ComponentType::UNorm;
         case Tegra::RenderTargetFormat::RG16_SNORM:
         case Tegra::RenderTargetFormat::RG16_SNORM:
             return ComponentType::SNorm;
             return ComponentType::SNorm;