diff options
author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2019-12-13 06:38:34 +0100 |
---|---|---|
committer | ReinUsesLisp <reinuseslisp@airmail.cc> | 2019-12-13 07:12:28 +0100 |
commit | 15513f08011b92e5cfe12107e197547978e49c93 (patch) | |
tree | a4ed110ffbf6a70e97b8cdbf91395b42731ac235 /src/video_core/renderer_vulkan/maxwell_to_vk.cpp | |
parent | maxwell_to_vk: Use VK_EXT_index_type_uint8 when available (diff) | |
download | yuzu-15513f08011b92e5cfe12107e197547978e49c93.tar yuzu-15513f08011b92e5cfe12107e197547978e49c93.tar.gz yuzu-15513f08011b92e5cfe12107e197547978e49c93.tar.bz2 yuzu-15513f08011b92e5cfe12107e197547978e49c93.tar.lz yuzu-15513f08011b92e5cfe12107e197547978e49c93.tar.xz yuzu-15513f08011b92e5cfe12107e197547978e49c93.tar.zst yuzu-15513f08011b92e5cfe12107e197547978e49c93.zip |
Diffstat (limited to 'src/video_core/renderer_vulkan/maxwell_to_vk.cpp')
-rw-r--r-- | src/video_core/renderer_vulkan/maxwell_to_vk.cpp | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/video_core/renderer_vulkan/maxwell_to_vk.cpp b/src/video_core/renderer_vulkan/maxwell_to_vk.cpp index 5263dd768..a1dc8dfd8 100644 --- a/src/video_core/renderer_vulkan/maxwell_to_vk.cpp +++ b/src/video_core/renderer_vulkan/maxwell_to_vk.cpp @@ -44,7 +44,8 @@ vk::SamplerMipmapMode MipmapMode(Tegra::Texture::TextureMipmapFilter mipmap_filt return {}; } -vk::SamplerAddressMode WrapMode(Tegra::Texture::WrapMode wrap_mode) { +vk::SamplerAddressMode WrapMode(Tegra::Texture::WrapMode wrap_mode, + Tegra::Texture::TextureFilter filter) { switch (wrap_mode) { case Tegra::Texture::WrapMode::Wrap: return vk::SamplerAddressMode::eRepeat; @@ -55,10 +56,15 @@ vk::SamplerAddressMode WrapMode(Tegra::Texture::WrapMode wrap_mode) { case Tegra::Texture::WrapMode::Border: return vk::SamplerAddressMode::eClampToBorder; case Tegra::Texture::WrapMode::Clamp: - // TODO(Rodrigo): GL_CLAMP was removed as of OpenGL 3.1, to implement GL_CLAMP, we can use - // eClampToBorder to get the border color of the texture, and then sample the edge to - // manually mix them. However the shader part of this is not yet implemented. - return vk::SamplerAddressMode::eClampToBorder; + // TODO(Rodrigo): Emulate GL_CLAMP properly + switch (filter) { + case Tegra::Texture::TextureFilter::Nearest: + return vk::SamplerAddressMode::eClampToEdge; + case Tegra::Texture::TextureFilter::Linear: + return vk::SamplerAddressMode::eClampToBorder; + } + UNREACHABLE(); + return vk::SamplerAddressMode::eClampToEdge; case Tegra::Texture::WrapMode::MirrorOnceClampToEdge: return vk::SamplerAddressMode::eMirrorClampToEdge; case Tegra::Texture::WrapMode::MirrorOnceBorder: |