diff options
author | bunnei <bunneidev@gmail.com> | 2019-04-18 03:45:56 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-04-18 03:45:56 +0200 |
commit | 4294062516c91c8fdabbcb5b5bcde641c03c9218 (patch) | |
tree | 8420493647f54dbab66b3b654115e8c509f536d6 /src/video_core/renderer_vulkan/vk_sampler_cache.h | |
parent | Merge pull request #2348 from FernandoS27/guest-bindless (diff) | |
parent | gl_sampler_cache: Port sampler cache to OpenGL (diff) | |
download | yuzu-4294062516c91c8fdabbcb5b5bcde641c03c9218.tar yuzu-4294062516c91c8fdabbcb5b5bcde641c03c9218.tar.gz yuzu-4294062516c91c8fdabbcb5b5bcde641c03c9218.tar.bz2 yuzu-4294062516c91c8fdabbcb5b5bcde641c03c9218.tar.lz yuzu-4294062516c91c8fdabbcb5b5bcde641c03c9218.tar.xz yuzu-4294062516c91c8fdabbcb5b5bcde641c03c9218.tar.zst yuzu-4294062516c91c8fdabbcb5b5bcde641c03c9218.zip |
Diffstat (limited to 'src/video_core/renderer_vulkan/vk_sampler_cache.h')
-rw-r--r-- | src/video_core/renderer_vulkan/vk_sampler_cache.h | 36 |
1 files changed, 6 insertions, 30 deletions
diff --git a/src/video_core/renderer_vulkan/vk_sampler_cache.h b/src/video_core/renderer_vulkan/vk_sampler_cache.h index c6394dc87..771b05c73 100644 --- a/src/video_core/renderer_vulkan/vk_sampler_cache.h +++ b/src/video_core/renderer_vulkan/vk_sampler_cache.h @@ -8,49 +8,25 @@ #include "common/common_types.h" #include "video_core/renderer_vulkan/declarations.h" +#include "video_core/sampler_cache.h" #include "video_core/textures/texture.h" namespace Vulkan { class VKDevice; -struct SamplerCacheKey final : public Tegra::Texture::TSCEntry { - std::size_t Hash() const; - - bool operator==(const SamplerCacheKey& rhs) const; - - bool operator!=(const SamplerCacheKey& rhs) const { - return !operator==(rhs); - } -}; - -} // namespace Vulkan - -namespace std { - -template <> -struct hash<Vulkan::SamplerCacheKey> { - std::size_t operator()(const Vulkan::SamplerCacheKey& k) const noexcept { - return k.Hash(); - } -}; - -} // namespace std - -namespace Vulkan { - -class VKSamplerCache { +class VKSamplerCache final : public VideoCommon::SamplerCache<vk::Sampler, UniqueSampler> { public: explicit VKSamplerCache(const VKDevice& device); ~VKSamplerCache(); - vk::Sampler GetSampler(const Tegra::Texture::TSCEntry& tsc); +protected: + UniqueSampler CreateSampler(const Tegra::Texture::TSCEntry& tsc) const; -private: - UniqueSampler CreateSampler(const Tegra::Texture::TSCEntry& tsc); + vk::Sampler ToSamplerType(const UniqueSampler& sampler) const; +private: const VKDevice& device; - std::unordered_map<SamplerCacheKey, UniqueSampler> cache; }; } // namespace Vulkan |