diff options
author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2020-02-26 20:13:47 +0100 |
---|---|---|
committer | ReinUsesLisp <reinuseslisp@airmail.cc> | 2020-03-09 22:40:06 +0100 |
commit | bd8b9bbcee93549f323352f227ff44d0e79e0ad4 (patch) | |
tree | 5c68e7ab171db3f3d31bf27cd573c54a918f0708 /src/video_core/guest_driver.h | |
parent | Merge pull request #3301 from ReinUsesLisp/state-tracker (diff) | |
download | yuzu-bd8b9bbcee93549f323352f227ff44d0e79e0ad4.tar yuzu-bd8b9bbcee93549f323352f227ff44d0e79e0ad4.tar.gz yuzu-bd8b9bbcee93549f323352f227ff44d0e79e0ad4.tar.bz2 yuzu-bd8b9bbcee93549f323352f227ff44d0e79e0ad4.tar.lz yuzu-bd8b9bbcee93549f323352f227ff44d0e79e0ad4.tar.xz yuzu-bd8b9bbcee93549f323352f227ff44d0e79e0ad4.tar.zst yuzu-bd8b9bbcee93549f323352f227ff44d0e79e0ad4.zip |
Diffstat (limited to 'src/video_core/guest_driver.h')
-rw-r--r-- | src/video_core/guest_driver.h | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/src/video_core/guest_driver.h b/src/video_core/guest_driver.h index fc1917347..99450777e 100644 --- a/src/video_core/guest_driver.h +++ b/src/video_core/guest_driver.h @@ -4,6 +4,7 @@ #pragma once +#include <optional> #include <vector> #include "common/common_types.h" @@ -17,25 +18,29 @@ namespace VideoCore { */ class GuestDriverProfile { public: - void DeduceTextureHandlerSize(std::vector<u32>&& bound_offsets); + explicit GuestDriverProfile() = default; + explicit GuestDriverProfile(std::optional<u32> texture_handler_size) + : texture_handler_size{texture_handler_size} {} + + void DeduceTextureHandlerSize(std::vector<u32> bound_offsets); u32 GetTextureHandlerSize() const { - return texture_handler_size; + return texture_handler_size.value_or(default_texture_handler_size); } - bool TextureHandlerSizeKnown() const { - return texture_handler_size_deduced; + bool IsTextureHandlerSizeKnown() const { + return texture_handler_size.has_value(); } private: // Minimum size of texture handler any driver can use. static constexpr u32 min_texture_handler_size = 4; - // This goes with Vulkan and OpenGL standards but Nvidia GPUs can easily - // use 4 bytes instead. Thus, certain drivers may squish the size. + + // This goes with Vulkan and OpenGL standards but Nvidia GPUs can easily use 4 bytes instead. + // Thus, certain drivers may squish the size. static constexpr u32 default_texture_handler_size = 8; - u32 texture_handler_size = default_texture_handler_size; - bool texture_handler_size_deduced = false; + std::optional<u32> texture_handler_size = default_texture_handler_size; }; } // namespace VideoCore |