Turn off RT cores again for the AMDVLK driver. Keeping it enabled for the Mesa variant that doesn't seem to have the problem.
Some checks failed
Continuous Integration / macOS | Debug (push) Has been cancelled
Continuous Integration / Linux Clang 11 | Debug (push) Has been cancelled
Continuous Integration / Visual Studio 2022 | Debug (push) Has been cancelled
Continuous Integration / Linux GCC 9 | MinSizeRel (push) Has been cancelled
Continuous Integration / Linux GCC 12 | RelWithDebInfo (push) Has been cancelled
Continuous Integration / Visual Studio 2022 | RelWithDebInfo (push) Has been cancelled
Continuous Integration / macOS | Release (push) Has been cancelled
Continuous Integration / Linux Clang 15 | Release (push) Has been cancelled
Continuous Integration / Update Latest successful build (push) Has been cancelled
Some checks failed
Continuous Integration / macOS | Debug (push) Has been cancelled
Continuous Integration / Linux Clang 11 | Debug (push) Has been cancelled
Continuous Integration / Visual Studio 2022 | Debug (push) Has been cancelled
Continuous Integration / Linux GCC 9 | MinSizeRel (push) Has been cancelled
Continuous Integration / Linux GCC 12 | RelWithDebInfo (push) Has been cancelled
Continuous Integration / Visual Studio 2022 | RelWithDebInfo (push) Has been cancelled
Continuous Integration / macOS | Release (push) Has been cancelled
Continuous Integration / Linux Clang 15 | Release (push) Has been cancelled
Continuous Integration / Update Latest successful build (push) Has been cancelled
This commit is contained in:
parent
648b94076f
commit
a81934810e
1 changed files with 21 additions and 0 deletions
|
|
@ -88,6 +88,7 @@ CUSTOM_CVAR(Bool, vk_debug, false, CVAR_ARCHIVE | CVAR_GLOBALCONFIG | CVAR_NOINI
|
|||
}
|
||||
|
||||
CVAR(Bool, vk_debug_callstack, true, CVAR_ARCHIVE | CVAR_GLOBALCONFIG)
|
||||
CVAR(Bool, vk_amd_driver_check, true, CVAR_ARCHIVE | CVAR_GLOBALCONFIG)
|
||||
|
||||
CUSTOM_CVAR(Int, vk_device, 0, CVAR_ARCHIVE | CVAR_GLOBALCONFIG | CVAR_NOINITCALL)
|
||||
{
|
||||
|
|
@ -187,6 +188,26 @@ VulkanRenderDevice::VulkanRenderDevice(void *hMonitor, bool fullscreen, std::sha
|
|||
|
||||
mUseRayQuery = vk_rayquery && mDevice->SupportsExtension(VK_KHR_RAY_QUERY_EXTENSION_NAME) && mDevice->PhysicalDevice.Features.RayQuery.rayQuery;
|
||||
|
||||
if (vk_amd_driver_check)
|
||||
{
|
||||
// While we found a workaround for the SPIR-V compiler crashing on specialization constants with rayquery,
|
||||
// the AMDVLK driver (but not the Mesa one!) now produces a shader that only the FIRST frame runs for 10
|
||||
// seconds. This produces a device lost on Windows (command buffer killed by OS) and the freeze from hell
|
||||
// on Linux.
|
||||
//
|
||||
// Maybe some day AMD will have a driver that works for us. Until that day their hardware gets demoted to
|
||||
// the legacy path without RT cores, sorry.
|
||||
auto& props = mDevice->PhysicalDevice.Properties.Properties;
|
||||
if (props.vendorID == 0x1002 && VK_VERSION_MAJOR(props.driverVersion) < 10)
|
||||
{
|
||||
if (mUseRayQuery)
|
||||
{
|
||||
Printf("AMD driver detected. Disabling RT cores. You can force RT cores on by setting vk_amd_driver_check to false.\n");
|
||||
mUseRayQuery = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
mShaderCache = std::make_unique<VkShaderCache>(this);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue