summaryrefslogtreecommitdiffstats
path: root/src/video_core/guest_driver.h
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2020-02-26 20:13:47 +0100
committerReinUsesLisp <reinuseslisp@airmail.cc>2020-03-09 22:40:06 +0100
commitbd8b9bbcee93549f323352f227ff44d0e79e0ad4 (patch)
tree5c68e7ab171db3f3d31bf27cd573c54a918f0708 /src/video_core/guest_driver.h
parentMerge pull request #3301 from ReinUsesLisp/state-tracker (diff)
downloadyuzu-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 '')
-rw-r--r--src/video_core/guest_driver.h21
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