diff options
| author | 2020-02-18 16:52:54 +0700 | |
|---|---|---|
| committer | 2020-02-18 16:52:54 +0700 | |
| commit | ba84f0988fcec59bb3a68a0e7dc952538972aa28 (patch) | |
| tree | f7dd4da0b8f762aa1a829cf28b6c097ef76a5b6a /src | |
| parent | Merge pull request #3412 from Morph1984/aspect-ratio (diff) | |
| download | yuzu-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.cpp | 13 |
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 | ||