mirror of
https://git.eden-emu.dev/eden-emu/eden
synced 2026-05-25 15:27:02 +02:00
Disabling VK_KHR_shader_float_controls on QCOM and ARM
This commit is contained in:
parent
380112bcb4
commit
7bed3bb947
1 changed files with 19 additions and 0 deletions
|
|
@ -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();
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue