mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2026-10-27 18:02:16 +00:00
Disabling VK_KHR_shader_float_controls on QCOM and ARM
This commit is contained in:
@@ -1195,6 +1195,25 @@ bool Device::GetSuitability(bool requires_swapchain) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Some drivers (notably Qualcomm and certain ARM drivers) misreport the
|
||||||
|
// VK_KHR_shader_float_controls capabilities. Disable the extension and
|
||||||
|
// clear the reported properties unless the user explicitly forces
|
||||||
|
// unsupported extensions via settings.
|
||||||
|
{
|
||||||
|
const auto driver_id = properties.driver.driverID;
|
||||||
|
const bool force_extensions = Settings::values.force_unsupported_extensions.GetValue();
|
||||||
|
if ((driver_id == VK_DRIVER_ID_QUALCOMM_PROPRIETARY ||
|
||||||
|
driver_id == VK_DRIVER_ID_ARM_PROPRIETARY) &&
|
||||||
|
!force_extensions) {
|
||||||
|
LOG_WARNING(Render_Vulkan,
|
||||||
|
"Disabling VK_KHR_shader_float_controls for driver '{}' id={} due to unreliable float-control reporting",
|
||||||
|
properties.driver.driverName, driver_id);
|
||||||
|
extensions.shader_float_controls = false;
|
||||||
|
// Zero-out the structure to avoid accidental use of reported values.
|
||||||
|
properties.float_controls = {};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Unload extensions if feature support is insufficient.
|
// Unload extensions if feature support is insufficient.
|
||||||
RemoveUnsuitableExtensions();
|
RemoveUnsuitableExtensions();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user