summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Nguyen Dac Nam2020-02-18 16:52:54 +0700
committerGravatar GitHub2020-02-18 16:52:54 +0700
commitba84f0988fcec59bb3a68a0e7dc952538972aa28 (patch)
treef7dd4da0b8f762aa1a829cf28b6c097ef76a5b6a /src
parentMerge pull request #3412 from Morph1984/aspect-ratio (diff)
downloadyuzu-ba84f0988fcec59bb3a68a0e7dc952538972aa28.tar.gz
yuzu-ba84f0988fcec59bb3a68a0e7dc952538972aa28.tar.xz
yuzu-ba84f0988fcec59bb3a68a0e7dc952538972aa28.zip
renderer_vulkan: Add the rest of case for TryConvertBorderColor
Diffstat (limited to 'src')
-rw-r--r--src/video_core/renderer_vulkan/vk_sampler_cache.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/video_core/renderer_vulkan/vk_sampler_cache.cpp b/src/video_core/renderer_vulkan/vk_sampler_cache.cpp
index 0a8ec8398..839cfc1c3 100644
--- a/src/video_core/renderer_vulkan/vk_sampler_cache.cpp
+++ b/src/video_core/renderer_vulkan/vk_sampler_cache.cpp
@@ -23,7 +23,16 @@ static std::optional<vk::BorderColor> TryConvertBorderColor(std::array<float, 4>
23 } else if (color == std::array<float, 4>{1, 1, 1, 1}) { 23 } else if (color == std::array<float, 4>{1, 1, 1, 1}) {
24 return vk::BorderColor::eFloatOpaqueWhite; 24 return vk::BorderColor::eFloatOpaqueWhite;
25 } else { 25 } else {
26 return {}; 26 if (color[0] + color[1] + color[2] > 1.35f) {
27 // If color elements are brighter than roughly 0.5 average, use white border
28 return vk::BorderColor::eFloatOpaqueWhite;
29 } else {
30 if (color[3] > 0.5f) {
31 return vk::BorderColor::eFloatOpaqueBlack;
32 } else {
33 return vk::BorderColor::eFloatTransparentBlack;
34 }
35 }
27 } 36 }
28} 37}
29 38
@@ -37,8 +46,6 @@ UniqueSampler VKSamplerCache::CreateSampler(const Tegra::Texture::TSCEntry& tsc)
37 46
38 const auto border_color{tsc.GetBorderColor()}; 47 const auto border_color{tsc.GetBorderColor()};
39 const auto vk_border_color{TryConvertBorderColor(border_color)}; 48 const auto vk_border_color{TryConvertBorderColor(border_color)};
40 UNIMPLEMENTED_IF_MSG(!vk_border_color, "Unimplemented border color {} {} {} {}",
41 border_color[0], border_color[1], border_color[2], border_color[3]);
42 49
43 constexpr bool unnormalized_coords{false}; 50 constexpr bool unnormalized_coords{false};
44 51