aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/guest_driver.h
diff options
context:
space:
mode:
authorFernando Sahmkow <fsahmkow27@gmail.com>2020-03-13 16:26:24 -0400
committerGitHub <noreply@github.com>2020-03-13 16:26:24 -0400
commit666d431ad8ee4e36f1b7f48d13f3fa63ba3675f2 (patch)
treed0f968d06b2bbc6e378a5a0632cd2d6322fe4e6d /src/video_core/guest_driver.h
parentb30b1f741dcbcb69672d065b0bec4f4a9e5f0993 (diff)
parent244fe132199cb3c67dd9e612d2be856895f8a868 (diff)
Merge pull request #3473 from ReinUsesLisp/shader-purge
gl_shader_cache: Rework shader cache and store texture arrays
Diffstat (limited to 'src/video_core/guest_driver.h')
-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