diff options
author | Kelebek1 <eeeedddccc@hotmail.co.uk> | 2023-10-14 23:20:28 +0200 |
---|---|---|
committer | Kelebek1 <eeeedddccc@hotmail.co.uk> | 2023-10-19 20:54:31 +0200 |
commit | e02ee8e59d099692678bed09332b7d8aad1ce271 (patch) | |
tree | 8ea0de01f31cee80075441fab4c746e0615a7ff7 /src/video_core/vulkan_common/vulkan_device.h | |
parent | Merge pull request #11810 from liamwhite/clang-17 (diff) | |
download | yuzu-e02ee8e59d099692678bed09332b7d8aad1ce271.tar yuzu-e02ee8e59d099692678bed09332b7d8aad1ce271.tar.gz yuzu-e02ee8e59d099692678bed09332b7d8aad1ce271.tar.bz2 yuzu-e02ee8e59d099692678bed09332b7d8aad1ce271.tar.lz yuzu-e02ee8e59d099692678bed09332b7d8aad1ce271.tar.xz yuzu-e02ee8e59d099692678bed09332b7d8aad1ce271.tar.zst yuzu-e02ee8e59d099692678bed09332b7d8aad1ce271.zip |
Diffstat (limited to '')
-rw-r--r-- | src/video_core/vulkan_common/vulkan_device.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/video_core/vulkan_common/vulkan_device.h b/src/video_core/vulkan_common/vulkan_device.h index 282a2925d..b213ed7dd 100644 --- a/src/video_core/vulkan_common/vulkan_device.h +++ b/src/video_core/vulkan_common/vulkan_device.h @@ -177,6 +177,15 @@ enum class FormatType { Linear, Optimal, Buffer }; /// Subgroup size of the guest emulated hardware (Nvidia has 32 threads per subgroup). const u32 GuestWarpSize = 32; +enum class NvidiaArchitecture { + Arch_KeplerOrOlder, + Arch_Maxwell, + Arch_Pascal, + Arch_Volta, + Arch_Turing, + Arch_AmpereOrNewer, +}; + /// Handles data specific to a physical device. class Device { public: @@ -670,6 +679,14 @@ public: return false; } + bool IsNvidia() const noexcept { + return properties.driver.driverID == VK_DRIVER_ID_NVIDIA_PROPRIETARY; + } + + NvidiaArchitecture GetNvidiaArch() const noexcept { + return nvidia_arch; + } + private: /// Checks if the physical device is suitable and configures the object state /// with all necessary info about its properties. @@ -788,6 +805,7 @@ private: bool supports_conditional_barriers{}; ///< Allows barriers in conditional control flow. u64 device_access_memory{}; ///< Total size of device local memory in bytes. u32 sets_per_pool{}; ///< Sets per Description Pool + NvidiaArchitecture nvidia_arch{NvidiaArchitecture::Arch_AmpereOrNewer}; // Telemetry parameters std::set<std::string, std::less<>> supported_extensions; ///< Reported Vulkan extensions. |