diff options
author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2020-06-30 09:00:23 +0200 |
---|---|---|
committer | ReinUsesLisp <reinuseslisp@airmail.cc> | 2020-07-13 06:01:08 +0200 |
commit | f29fede49c647ce336de2fb4f48aba25f968a882 (patch) | |
tree | 221f82144265a6587440ee801b5d4662f1d49a27 /src | |
parent | video_core: Implement R8_SNORM render target (diff) | |
download | yuzu-f29fede49c647ce336de2fb4f48aba25f968a882.tar yuzu-f29fede49c647ce336de2fb4f48aba25f968a882.tar.gz yuzu-f29fede49c647ce336de2fb4f48aba25f968a882.tar.bz2 yuzu-f29fede49c647ce336de2fb4f48aba25f968a882.tar.lz yuzu-f29fede49c647ce336de2fb4f48aba25f968a882.tar.xz yuzu-f29fede49c647ce336de2fb4f48aba25f968a882.tar.zst yuzu-f29fede49c647ce336de2fb4f48aba25f968a882.zip |
Diffstat (limited to 'src')
-rw-r--r-- | src/video_core/gpu.h | 1 | ||||
-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.cpp | 2 | ||||
-rw-r--r-- | src/video_core/surface.h | 5 |
7 files changed, 13 insertions, 0 deletions
diff --git a/src/video_core/gpu.h b/src/video_core/gpu.h index 2b92ab0ea..1e5d2ffcc 100644 --- a/src/video_core/gpu.h +++ b/src/video_core/gpu.h @@ -76,6 +76,7 @@ enum class RenderTargetFormat : u32 { R16_FLOAT = 0xF2, R8_UNORM = 0xF3, R8_SNORM = 0xF4, + R8_SINT = 0xF5, R8_UINT = 0xF6, }; diff --git a/src/video_core/morton.cpp b/src/video_core/morton.cpp index 9b569afc8..790360d4d 100644 --- a/src/video_core/morton.cpp +++ b/src/video_core/morton.cpp @@ -49,6 +49,7 @@ static constexpr ConversionArray morton_to_linear_fns = { MortonCopy<true, PixelFormat::A1B5G5R5U>, MortonCopy<true, PixelFormat::R8U>, MortonCopy<true, PixelFormat::R8S>, + MortonCopy<true, PixelFormat::R8I>, MortonCopy<true, PixelFormat::R8UI>, MortonCopy<true, PixelFormat::RGBA16F>, MortonCopy<true, PixelFormat::RGBA16U>, @@ -133,6 +134,7 @@ static constexpr ConversionArray linear_to_morton_fns = { MortonCopy<false, PixelFormat::A1B5G5R5U>, MortonCopy<false, PixelFormat::R8U>, MortonCopy<false, PixelFormat::R8S>, + MortonCopy<false, PixelFormat::R8I>, MortonCopy<false, PixelFormat::R8UI>, MortonCopy<false, PixelFormat::RGBA16F>, MortonCopy<false, PixelFormat::RGBA16S>, diff --git a/src/video_core/renderer_opengl/gl_texture_cache.cpp b/src/video_core/renderer_opengl/gl_texture_cache.cpp index 6319b0006..553db1cb1 100644 --- a/src/video_core/renderer_opengl/gl_texture_cache.cpp +++ b/src/video_core/renderer_opengl/gl_texture_cache.cpp @@ -49,6 +49,7 @@ constexpr std::array<FormatTuple, VideoCore::Surface::MaxPixelFormat> tex_format {GL_RGB5_A1, GL_RGBA, GL_UNSIGNED_SHORT_1_5_5_5_REV}, // A1B5G5R5U {GL_R8, GL_RED, GL_UNSIGNED_BYTE}, // R8U {GL_R8_SNORM, GL_RED, GL_BYTE}, // R8S + {GL_R8I, GL_RED_INTEGER, GL_BYTE}, // R8I {GL_R8UI, GL_RED_INTEGER, GL_UNSIGNED_BYTE}, // R8UI {GL_RGBA16F, GL_RGBA, GL_HALF_FLOAT}, // RGBA16F {GL_RGBA16, GL_RGBA, GL_UNSIGNED_SHORT}, // RGBA16U diff --git a/src/video_core/renderer_vulkan/maxwell_to_vk.cpp b/src/video_core/renderer_vulkan/maxwell_to_vk.cpp index 1f3f79380..645cb92ca 100644 --- a/src/video_core/renderer_vulkan/maxwell_to_vk.cpp +++ b/src/video_core/renderer_vulkan/maxwell_to_vk.cpp @@ -125,6 +125,7 @@ struct FormatTuple { {VK_FORMAT_A1R5G5B5_UNORM_PACK16, Attachable}, // A1B5G5R5U (flipped with swizzle) {VK_FORMAT_R8_UNORM, Attachable | Storage}, // R8U {VK_FORMAT_R8_SNORM, Attachable | Storage}, // R8S + {VK_FORMAT_R8_SINT, Attachable | Storage}, // R8I {VK_FORMAT_R8_UINT, Attachable | Storage}, // R8UI {VK_FORMAT_R16G16B16A16_SFLOAT, Attachable | Storage}, // RGBA16F {VK_FORMAT_R16G16B16A16_UNORM, Attachable | Storage}, // RGBA16U diff --git a/src/video_core/renderer_vulkan/vk_device.cpp b/src/video_core/renderer_vulkan/vk_device.cpp index c4889ac88..59c5f9ea5 100644 --- a/src/video_core/renderer_vulkan/vk_device.cpp +++ b/src/video_core/renderer_vulkan/vk_device.cpp @@ -99,6 +99,7 @@ std::unordered_map<VkFormat, VkFormatProperties> GetFormatProperties( VK_FORMAT_R8G8_UINT, VK_FORMAT_R8_UNORM, VK_FORMAT_R8_SNORM, + VK_FORMAT_R8_SINT, VK_FORMAT_R8_UINT, VK_FORMAT_B10G11R11_UFLOAT_PACK32, VK_FORMAT_R32_SFLOAT, diff --git a/src/video_core/surface.cpp b/src/video_core/surface.cpp index 6e9b496d3..f132f1b43 100644 --- a/src/video_core/surface.cpp +++ b/src/video_core/surface.cpp @@ -166,6 +166,8 @@ PixelFormat PixelFormatFromRenderTargetFormat(Tegra::RenderTargetFormat format) return PixelFormat::R8U; case Tegra::RenderTargetFormat::R8_SNORM: return PixelFormat::R8S; + case Tegra::RenderTargetFormat::R8_SINT: + return PixelFormat::R8I; case Tegra::RenderTargetFormat::R8_UINT: return PixelFormat::R8UI; default: diff --git a/src/video_core/surface.h b/src/video_core/surface.h index def206740..a6cac3bf9 100644 --- a/src/video_core/surface.h +++ b/src/video_core/surface.h @@ -23,6 +23,7 @@ enum class PixelFormat { A1B5G5R5U, R8U, R8S, + R8I, R8UI, RGBA16F, RGBA16U, @@ -139,6 +140,7 @@ constexpr std::array<u32, MaxPixelFormat> compression_factor_shift_table = {{ 0, // A1B5G5R5U 0, // R8U 0, // R8S + 0, // R8I 0, // R8UI 0, // RGBA16F 0, // RGBA16U @@ -239,6 +241,7 @@ constexpr std::array<u32, MaxPixelFormat> block_width_table = {{ 1, // A1B5G5R5U 1, // R8U 1, // R8S + 1, // R8I 1, // R8UI 1, // RGBA16F 1, // RGBA16U @@ -331,6 +334,7 @@ constexpr std::array<u32, MaxPixelFormat> block_height_table = {{ 1, // A1B5G5R5U 1, // R8U 1, // R8S + 1, // R8I 1, // R8UI 1, // RGBA16F 1, // RGBA16U @@ -423,6 +427,7 @@ constexpr std::array<u32, MaxPixelFormat> bpp_table = {{ 16, // A1B5G5R5U 8, // R8U 8, // R8S + 8, // R8I 8, // R8UI 64, // RGBA16F 64, // RGBA16U |