renderer_vulkan: disable clock boost on unvalidated devices
This commit is contained in:
parent
c0f17e1b27
commit
2e4dde12c7
3 changed files with 15 additions and 1 deletions
|
@ -110,7 +110,7 @@ RendererVulkan::RendererVulkan(Core::TelemetrySession& telemetry_session_,
|
|||
screen_info),
|
||||
rasterizer(render_window, gpu, cpu_memory, screen_info, device, memory_allocator,
|
||||
state_tracker, scheduler) {
|
||||
if (Settings::values.renderer_force_max_clock.GetValue()) {
|
||||
if (Settings::values.renderer_force_max_clock.GetValue() && device.ShouldBoostClocks()) {
|
||||
turbo_mode.emplace(instance, dld);
|
||||
}
|
||||
Report();
|
||||
|
|
|
@ -991,6 +991,18 @@ std::string Device::GetDriverName() const {
|
|||
}
|
||||
}
|
||||
|
||||
bool Device::ShouldBoostClocks() const {
|
||||
const bool validated_driver =
|
||||
driver_id == VK_DRIVER_ID_AMD_PROPRIETARY || driver_id == VK_DRIVER_ID_AMD_OPEN_SOURCE ||
|
||||
driver_id == VK_DRIVER_ID_MESA_RADV || driver_id == VK_DRIVER_ID_NVIDIA_PROPRIETARY ||
|
||||
driver_id == VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS ||
|
||||
driver_id == VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA;
|
||||
|
||||
const bool is_steam_deck = properties.vendorID == 0x1002 && properties.deviceID == 0x163F;
|
||||
|
||||
return validated_driver && !is_steam_deck;
|
||||
}
|
||||
|
||||
static std::vector<const char*> ExtensionsRequiredForInstanceVersion(u32 available_version) {
|
||||
std::vector<const char*> extensions{REQUIRED_EXTENSIONS.begin(), REQUIRED_EXTENSIONS.end()};
|
||||
|
||||
|
|
|
@ -106,6 +106,8 @@ public:
|
|||
return driver_id;
|
||||
}
|
||||
|
||||
bool ShouldBoostClocks() const;
|
||||
|
||||
/// Returns uniform buffer alignment requeriment.
|
||||
VkDeviceSize GetUniformBufferAlignment() const {
|
||||
return properties.limits.minUniformBufferOffsetAlignment;
|
||||
|
|
Loading…
Reference in a new issue