diff options
Diffstat (limited to 'src/video_core')
| -rw-r--r-- | src/video_core/morton.cpp | 2 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/gl_texture_cache.cpp | 1 | ||||
| -rw-r--r-- | src/video_core/renderer_vulkan/maxwell_to_vk.cpp | 1 | ||||
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_device.cpp | 1 | ||||
| -rw-r--r-- | src/video_core/surface.h | 72 | ||||
| -rw-r--r-- | src/video_core/texture_cache/format_lookup_table.cpp | 3 | 
6 files changed, 46 insertions, 34 deletions
diff --git a/src/video_core/morton.cpp b/src/video_core/morton.cpp index 2f2fe6859..f2c83266e 100644 --- a/src/video_core/morton.cpp +++ b/src/video_core/morton.cpp @@ -85,6 +85,7 @@ static constexpr ConversionArray morton_to_linear_fns = {      MortonCopy<true, PixelFormat::RG32UI>,      MortonCopy<true, PixelFormat::RGBX16F>,      MortonCopy<true, PixelFormat::R32UI>, +    MortonCopy<true, PixelFormat::R32I>,      MortonCopy<true, PixelFormat::ASTC_2D_8X8>,      MortonCopy<true, PixelFormat::ASTC_2D_8X5>,      MortonCopy<true, PixelFormat::ASTC_2D_5X4>, @@ -166,6 +167,7 @@ static constexpr ConversionArray linear_to_morton_fns = {      MortonCopy<false, PixelFormat::RG32UI>,      MortonCopy<false, PixelFormat::RGBX16F>,      MortonCopy<false, PixelFormat::R32UI>, +    MortonCopy<false, PixelFormat::R32I>,      nullptr,      nullptr,      nullptr, diff --git a/src/video_core/renderer_opengl/gl_texture_cache.cpp b/src/video_core/renderer_opengl/gl_texture_cache.cpp index d4b81cd87..c9d8aeca9 100644 --- a/src/video_core/renderer_opengl/gl_texture_cache.cpp +++ b/src/video_core/renderer_opengl/gl_texture_cache.cpp @@ -87,6 +87,7 @@ constexpr std::array<FormatTuple, VideoCore::Surface::MaxPixelFormat> tex_format      {GL_RG32UI, GL_RG_INTEGER, GL_UNSIGNED_INT, false},                             // RG32UI      {GL_RGB16F, GL_RGBA, GL_HALF_FLOAT, false},                                     // RGBX16F      {GL_R32UI, GL_RED_INTEGER, GL_UNSIGNED_INT, false},                             // R32UI +    {GL_R32I, GL_RED_INTEGER, GL_INT, false},                                       // R32I      {GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE, false},                                   // ASTC_2D_8X8      {GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE, false},                                   // ASTC_2D_8X5      {GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE, false},                                   // ASTC_2D_5X4 diff --git a/src/video_core/renderer_vulkan/maxwell_to_vk.cpp b/src/video_core/renderer_vulkan/maxwell_to_vk.cpp index 331808113..8c49c66a7 100644 --- a/src/video_core/renderer_vulkan/maxwell_to_vk.cpp +++ b/src/video_core/renderer_vulkan/maxwell_to_vk.cpp @@ -159,6 +159,7 @@ struct FormatTuple {      {vk::Format::eR32G32Uint, Attachable | Storage},             // RG32UI      {vk::Format::eUndefined, {}},                                // RGBX16F      {vk::Format::eR32Uint, Attachable | Storage},                // R32UI +    {vk::Format::eR32Sint, Attachable | Storage},                // R32I      {vk::Format::eAstc8x8UnormBlock, {}},                        // ASTC_2D_8X8      {vk::Format::eUndefined, {}},                                // ASTC_2D_8X5      {vk::Format::eUndefined, {}},                                // ASTC_2D_5X4 diff --git a/src/video_core/renderer_vulkan/vk_device.cpp b/src/video_core/renderer_vulkan/vk_device.cpp index 9840f26e5..de712223e 100644 --- a/src/video_core/renderer_vulkan/vk_device.cpp +++ b/src/video_core/renderer_vulkan/vk_device.cpp @@ -511,6 +511,7 @@ std::unordered_map<vk::Format, vk::FormatProperties> VKDevice::GetFormatProperti                                          vk::Format::eB10G11R11UfloatPack32,                                          vk::Format::eR32Sfloat,                                          vk::Format::eR32Uint, +                                        vk::Format::eR32Sint,                                          vk::Format::eR16Sfloat,                                          vk::Format::eR16G16B16A16Sfloat,                                          vk::Format::eB8G8R8A8Unorm, diff --git a/src/video_core/surface.h b/src/video_core/surface.h index 0d17a93ed..d88109e5a 100644 --- a/src/video_core/surface.h +++ b/src/video_core/surface.h @@ -59,47 +59,48 @@ enum class PixelFormat {      RG32UI = 41,      RGBX16F = 42,      R32UI = 43, -    ASTC_2D_8X8 = 44, -    ASTC_2D_8X5 = 45, -    ASTC_2D_5X4 = 46, -    BGRA8_SRGB = 47, -    DXT1_SRGB = 48, -    DXT23_SRGB = 49, -    DXT45_SRGB = 50, -    BC7U_SRGB = 51, -    R4G4B4A4U = 52, -    ASTC_2D_4X4_SRGB = 53, -    ASTC_2D_8X8_SRGB = 54, -    ASTC_2D_8X5_SRGB = 55, -    ASTC_2D_5X4_SRGB = 56, -    ASTC_2D_5X5 = 57, -    ASTC_2D_5X5_SRGB = 58, -    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, -    E5B9G9R9F = 71, +    R32I = 44, +    ASTC_2D_8X8 = 45, +    ASTC_2D_8X5 = 46, +    ASTC_2D_5X4 = 47, +    BGRA8_SRGB = 48, +    DXT1_SRGB = 49, +    DXT23_SRGB = 50, +    DXT45_SRGB = 51, +    BC7U_SRGB = 52, +    R4G4B4A4U = 53, +    ASTC_2D_4X4_SRGB = 54, +    ASTC_2D_8X8_SRGB = 55, +    ASTC_2D_8X5_SRGB = 56, +    ASTC_2D_5X4_SRGB = 57, +    ASTC_2D_5X5 = 58, +    ASTC_2D_5X5_SRGB = 59, +    ASTC_2D_10X8 = 60, +    ASTC_2D_10X8_SRGB = 61, +    ASTC_2D_6X6 = 62, +    ASTC_2D_6X6_SRGB = 63, +    ASTC_2D_10X10 = 64, +    ASTC_2D_10X10_SRGB = 65, +    ASTC_2D_12X12 = 66, +    ASTC_2D_12X12_SRGB = 67, +    ASTC_2D_8X6 = 68, +    ASTC_2D_8X6_SRGB = 69, +    ASTC_2D_6X5 = 70, +    ASTC_2D_6X5_SRGB = 71, +    E5B9G9R9F = 72,      MaxColorFormat,      // Depth formats -    Z32F = 72, -    Z16 = 73, +    Z32F = 73, +    Z16 = 74,      MaxDepthFormat,      // DepthStencil formats -    Z24S8 = 74, -    S8Z24 = 75, -    Z32FS8 = 76, +    Z24S8 = 75, +    S8Z24 = 76, +    Z32FS8 = 77,      MaxDepthStencilFormat, @@ -171,6 +172,7 @@ constexpr std::array<u32, MaxPixelFormat> compression_factor_shift_table = {{      0, // RG32UI      0, // RGBX16F      0, // R32UI +    0, // R32I      2, // ASTC_2D_8X8      2, // ASTC_2D_8X5      2, // ASTC_2D_5X4 @@ -267,6 +269,7 @@ constexpr std::array<u32, MaxPixelFormat> block_width_table = {{      1,  // RG32UI      1,  // RGBX16F      1,  // R32UI +    1,  // R32I      8,  // ASTC_2D_8X8      8,  // ASTC_2D_8X5      5,  // ASTC_2D_5X4 @@ -355,6 +358,7 @@ constexpr std::array<u32, MaxPixelFormat> block_height_table = {{      1,  // RG32UI      1,  // RGBX16F      1,  // R32UI +    1,  // R32I      8,  // ASTC_2D_8X8      5,  // ASTC_2D_8X5      4,  // ASTC_2D_5X4 @@ -443,6 +447,7 @@ constexpr std::array<u32, MaxPixelFormat> bpp_table = {{      64,  // RG32UI      64,  // RGBX16F      32,  // R32UI +    32,  // R32I      128, // ASTC_2D_8X8      128, // ASTC_2D_8X5      128, // ASTC_2D_5X4 @@ -546,6 +551,7 @@ constexpr std::array<SurfaceCompression, MaxPixelFormat> compression_type_table      SurfaceCompression::None,       // RG32UI      SurfaceCompression::None,       // RGBX16F      SurfaceCompression::None,       // R32UI +    SurfaceCompression::None,       // R32I      SurfaceCompression::Converted,  // ASTC_2D_8X8      SurfaceCompression::Converted,  // ASTC_2D_8X5      SurfaceCompression::Converted,  // ASTC_2D_5X4 diff --git a/src/video_core/texture_cache/format_lookup_table.cpp b/src/video_core/texture_cache/format_lookup_table.cpp index 81fb9f633..cc3ad8417 100644 --- a/src/video_core/texture_cache/format_lookup_table.cpp +++ b/src/video_core/texture_cache/format_lookup_table.cpp @@ -41,7 +41,7 @@ struct Table {      ComponentType alpha_component;      bool is_srgb;  }; -constexpr std::array<Table, 74> DefinitionTable = {{ +constexpr std::array<Table, 75> DefinitionTable = {{      {TextureFormat::A8R8G8B8, C, UNORM, UNORM, UNORM, UNORM, PixelFormat::ABGR8U},      {TextureFormat::A8R8G8B8, C, SNORM, SNORM, SNORM, SNORM, PixelFormat::ABGR8S},      {TextureFormat::A8R8G8B8, C, UINT, UINT, UINT, UINT, PixelFormat::ABGR8UI}, @@ -89,6 +89,7 @@ constexpr std::array<Table, 74> DefinitionTable = {{      {TextureFormat::R32, C, FLOAT, FLOAT, FLOAT, FLOAT, PixelFormat::R32F},      {TextureFormat::R32, C, UINT, UINT, UINT, UINT, PixelFormat::R32UI}, +    {TextureFormat::R32, C, SINT, SINT, SINT, SINT, PixelFormat::R32I},      {TextureFormat::E5B9G9R9_SHAREDEXP, C, FLOAT, FLOAT, FLOAT, FLOAT, PixelFormat::E5B9G9R9F},  | 
