diff options
author | Fernando Sahmkow <fsahmkow27@gmail.com> | 2020-01-03 21:16:29 +0100 |
---|---|---|
committer | FernandoS27 <fsahmkow27@gmail.com> | 2020-01-24 21:43:29 +0100 |
commit | c921e496eb47de49a4d6ce62527581b966dca259 (patch) | |
tree | 788c71599f0abf53b479bd3f2f3ea730fc9c35c4 /src/video_core/guest_driver.h | |
parent | Merge pull request #3273 from FernandoS27/txd-array (diff) | |
download | yuzu-c921e496eb47de49a4d6ce62527581b966dca259.tar yuzu-c921e496eb47de49a4d6ce62527581b966dca259.tar.gz yuzu-c921e496eb47de49a4d6ce62527581b966dca259.tar.bz2 yuzu-c921e496eb47de49a4d6ce62527581b966dca259.tar.lz yuzu-c921e496eb47de49a4d6ce62527581b966dca259.tar.xz yuzu-c921e496eb47de49a4d6ce62527581b966dca259.tar.zst yuzu-c921e496eb47de49a4d6ce62527581b966dca259.zip |
Diffstat (limited to 'src/video_core/guest_driver.h')
-rw-r--r-- | src/video_core/guest_driver.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/video_core/guest_driver.h b/src/video_core/guest_driver.h new file mode 100644 index 000000000..f64f043af --- /dev/null +++ b/src/video_core/guest_driver.h @@ -0,0 +1,37 @@ +// Copyright 2019 yuzu Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +#include <vector> + +#include "common/common_types.h" + +namespace VideoCore { + +/** + * The GuestDriverProfile class is used to learn about the GPU drivers behavior and collect + * information necessary for impossible to avoid HLE methods like shader tracks. + */ +class GuestDriverProfile { +public: + u32 GetTextureHandlerSize() const { + return texture_handler_size; + } + + bool TextureHandlerSizeKnown() const { + return texture_handler_size_deduced; + } + + void DeduceTextureHandlerSize(std::vector<u32>&& bound_offsets); + +private: + // 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{}; +}; + +} // namespace VideoCore |