Преглед на файлове

Merge pull request #346 from bunnei/misc-gpu-improvements

Misc gpu improvements
bunnei преди 8 години
родител
ревизия
c93ea96366
променени са 4 файла, в които са добавени 11 реда и са изтрити 2 реда
  1. 2 1
      src/video_core/engines/maxwell_3d.cpp
  2. 3 0
      src/video_core/gpu.h
  3. 3 0
      src/video_core/renderer_opengl/gl_rasterizer_cache.h
  4. 3 1
      src/video_core/textures/texture.h

+ 2 - 1
src/video_core/engines/maxwell_3d.cpp

@@ -221,7 +221,8 @@ Texture::TICEntry Maxwell3D::GetTICEntry(u32 tic_index) const {
     ASSERT_MSG(tic_entry.header_version == Texture::TICHeaderVersion::BlockLinear,
                "TIC versions other than BlockLinear are unimplemented");
 
-    ASSERT_MSG(tic_entry.texture_type == Texture::TextureType::Texture2D,
+    ASSERT_MSG((tic_entry.texture_type == Texture::TextureType::Texture2D) ||
+                   (tic_entry.texture_type == Texture::TextureType::Texture2DNoMipmap),
                "Texture types other than Texture2D are unimplemented");
 
     auto r_type = tic_entry.r_type.Value();

+ 3 - 0
src/video_core/gpu.h

@@ -15,7 +15,10 @@ namespace Tegra {
 
 enum class RenderTargetFormat : u32 {
     NONE = 0x0,
+    RGBA16_FLOAT = 0xCA,
+    RGB10_A2_UNORM = 0xD1,
     RGBA8_UNORM = 0xD5,
+    RGBA8_SRGB = 0xD6,
 };
 
 class DebugContext;

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

@@ -87,6 +87,7 @@ struct SurfaceParams {
         case Tegra::RenderTargetFormat::RGBA8_UNORM:
             return PixelFormat::RGBA8;
         default:
+            NGLOG_CRITICAL(HW_GPU, "Unimplemented format={}", static_cast<u32>(format));
             UNREACHABLE();
         }
     }
@@ -96,6 +97,7 @@ struct SurfaceParams {
         case Tegra::FramebufferConfig::PixelFormat::ABGR8:
             return PixelFormat::RGBA8;
         default:
+            NGLOG_CRITICAL(HW_GPU, "Unimplemented format={}", static_cast<u32>(format));
             UNREACHABLE();
         }
     }
@@ -108,6 +110,7 @@ struct SurfaceParams {
         case Tegra::Texture::TextureFormat::DXT1:
             return PixelFormat::DXT1;
         default:
+            NGLOG_CRITICAL(HW_GPU, "Unimplemented format={}", static_cast<u32>(format));
             UNREACHABLE();
         }
     }

+ 3 - 1
src/video_core/textures/texture.h

@@ -13,8 +13,10 @@ namespace Tegra {
 namespace Texture {
 
 enum class TextureFormat : u32 {
-    A8R8G8B8 = 8,
+    A8R8G8B8 = 0x8,
     DXT1 = 0x24,
+    DXT23 = 0x25,
+    DXT45 = 0x26,
 };
 
 enum class TextureType : u32 {