diff options
| author | Stenzek <stenzek@gmail.com> | 2017-09-03 14:04:14 +1000 |
|---|---|---|
| committer | Stenzek <stenzek@gmail.com> | 2017-09-07 17:05:43 +1000 |
| commit | 134daf3b00d1bf46a3ad4b57405f8844b809bb4f (patch) | |
| tree | c716692ce96e73f065050abd726ab2f9569bf6a5 /Source/Core/VideoCommon | |
| parent | 5d6dac54104295f2c594c91006d2ee2de486c528 (diff) | |
Vulkan: Extend the NVIDIA MSAA bug to render-pass based clears
Calling vkCmdClearAttachments with a partial rect, or specifying a
render area in a render pass with the load op set to clear can cause the
GPU to lock up, or raise a bounds violation. This only occurs on MSAA
framebuffers, and it seems when there are multiple clears in a single
command buffer. Worked around by back to the slow path (drawing quads)
when MSAA is enabled.
Diffstat (limited to 'Source/Core/VideoCommon')
| -rw-r--r-- | Source/Core/VideoCommon/DriverDetails.cpp | 4 | ||||
| -rw-r--r-- | Source/Core/VideoCommon/DriverDetails.h | 11 |
2 files changed, 10 insertions, 5 deletions
diff --git a/Source/Core/VideoCommon/DriverDetails.cpp b/Source/Core/VideoCommon/DriverDetails.cpp index cce4daddb7..2885aea7e9 100644 --- a/Source/Core/VideoCommon/DriverDetails.cpp +++ b/Source/Core/VideoCommon/DriverDetails.cpp @@ -102,8 +102,8 @@ static BugInfo m_known_bugs[] = { BUG_SHARED_CONTEXT_SHADER_COMPILATION, -1.0, -1.0, true}, {API_OPENGL, OS_LINUX, VENDOR_MESA, DRIVER_NOUVEAU, Family::UNKNOWN, BUG_SHARED_CONTEXT_SHADER_COMPILATION, -1.0, -1.0, true}, - {API_VULKAN, OS_ALL, VENDOR_NVIDIA, DRIVER_NVIDIA, Family::UNKNOWN, - BUG_BROKEN_MSAA_VKCMDCLEARATTACHMENTS, -1.0, -1.0, true}, + {API_VULKAN, OS_ALL, VENDOR_NVIDIA, DRIVER_NVIDIA, Family::UNKNOWN, BUG_BROKEN_MSAA_CLEAR, -1.0, + -1.0, true}, {API_VULKAN, OS_ALL, VENDOR_IMGTEC, DRIVER_IMGTEC, Family::UNKNOWN, BUG_BROKEN_CLEAR_LOADOP_RENDERPASS, -1.0, -1.0, true}, }; diff --git a/Source/Core/VideoCommon/DriverDetails.h b/Source/Core/VideoCommon/DriverDetails.h index 5a0a0f86c5..53f0c68739 100644 --- a/Source/Core/VideoCommon/DriverDetails.h +++ b/Source/Core/VideoCommon/DriverDetails.h @@ -254,11 +254,16 @@ enum Bug // Ended Version: -1 BUG_SHARED_CONTEXT_SHADER_COMPILATION, - // Bug: vkCmdClearAttachments with MSAA enabled causes NVIDIA Maxwell+ cards to lock up. + // Bug: Fast clears on a MSAA framebuffer can cause NVIDIA GPU resets/lockups. // Started version: -1 // Ended version: -1 - // Seems to only occur when the top of the clear rect is non-zero. - BUG_BROKEN_MSAA_VKCMDCLEARATTACHMENTS, + // Calling vkCmdClearAttachments with a partial rect, or specifying a render area in a + // render pass with the load op set to clear can cause the GPU to lock up, or raise a + // bounds violation. This only occurs on MSAA framebuffers, and it seems when there are + // multiple clears in a single command buffer. Worked around by back to the slow path + // (drawing quads) when MSAA is enabled. + BUG_BROKEN_MSAA_CLEAR, + // BUG: Some vulkan implementations don't like the 'clear' loadop renderpass. // For example, the ImgTec VK driver fails if you try to use a framebuffer with a different // load/store op than that which it was created with, despite the spec saying they should be |
