From 4faac3a6270c288dad57a59ee0f821512846ebfb Mon Sep 17 00:00:00 2001 From: Stenzek Date: Thu, 3 May 2018 14:09:32 +1000 Subject: TextureConversionShader: Don't sample from adjacent rows when not needed --- Source/Core/VideoBackends/D3D/TextureCache.cpp | 3 ++- Source/Core/VideoBackends/OGL/TextureCache.cpp | 3 ++- Source/Core/VideoBackends/Vulkan/TextureCache.cpp | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) (limited to 'Source/Core/VideoBackends') diff --git a/Source/Core/VideoBackends/D3D/TextureCache.cpp b/Source/Core/VideoBackends/D3D/TextureCache.cpp index 9c5f139502..e34858d5a4 100644 --- a/Source/Core/VideoBackends/D3D/TextureCache.cpp +++ b/Source/Core/VideoBackends/D3D/TextureCache.cpp @@ -240,7 +240,8 @@ void TextureCache::CopyEFBToCacheEntry(TCacheEntry* entry, bool is_depth_copy, } auto uid = TextureConversionShaderGen::GetShaderUid(dst_format, is_depth_copy, is_intensity, - scale_by_half); + scale_by_half, + NeedsCopyFilterInShader(filter_coefficients)); ID3D11PixelShader* pixel_shader = GetEFBToTexPixelShader(uid); if (!pixel_shader) return; diff --git a/Source/Core/VideoBackends/OGL/TextureCache.cpp b/Source/Core/VideoBackends/OGL/TextureCache.cpp index 086d0f29f2..99a3576d55 100644 --- a/Source/Core/VideoBackends/OGL/TextureCache.cpp +++ b/Source/Core/VideoBackends/OGL/TextureCache.cpp @@ -515,7 +515,8 @@ void TextureCache::CopyEFBToCacheEntry(TCacheEntry* entry, bool is_depth_copy, glViewport(0, 0, destination_texture->GetConfig().width, destination_texture->GetConfig().height); auto uid = TextureConversionShaderGen::GetShaderUid(dst_format, is_depth_copy, is_intensity, - scale_by_half); + scale_by_half, + NeedsCopyFilterInShader(filter_coefficients)); auto it = m_efb_copy_programs.emplace(uid, EFBCopyShader()); EFBCopyShader& shader = it.first->second; diff --git a/Source/Core/VideoBackends/Vulkan/TextureCache.cpp b/Source/Core/VideoBackends/Vulkan/TextureCache.cpp index bc7a0d0f18..364569baa3 100644 --- a/Source/Core/VideoBackends/Vulkan/TextureCache.cpp +++ b/Source/Core/VideoBackends/Vulkan/TextureCache.cpp @@ -274,7 +274,8 @@ void TextureCache::CopyEFBToCacheEntry(TCacheEntry* entry, bool is_depth_copy, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL); auto uid = TextureConversionShaderGen::GetShaderUid(dst_format, is_depth_copy, is_intensity, - scale_by_half); + scale_by_half, + NeedsCopyFilterInShader(filter_coefficients)); auto it = m_efb_copy_to_tex_shaders.emplace(uid, VkShaderModule(VK_NULL_HANDLE)); VkShaderModule& shader = it.first->second; -- cgit v1.2.3