Merge pull request #5478 from stenzek/vulkan-nvidia
Vulkan: Don't use vkCmdClearAttachments on NVIDIA with MSAA
This commit is contained in:
commit
6a272f22de
|
@ -33,6 +33,7 @@
|
|||
#include "VideoCommon/AVIDump.h"
|
||||
#include "VideoCommon/BPFunctions.h"
|
||||
#include "VideoCommon/BPMemory.h"
|
||||
#include "VideoCommon/DriverDetails.h"
|
||||
#include "VideoCommon/OnScreenDisplay.h"
|
||||
#include "VideoCommon/PixelEngine.h"
|
||||
#include "VideoCommon/PixelShaderManager.h"
|
||||
|
@ -391,6 +392,8 @@ void Renderer::ClearScreen(const EFBRectangle& rc, bool color_enable, bool alpha
|
|||
|
||||
// Fast path: Use vkCmdClearAttachments to clear the buffers within a render path
|
||||
// We can't use this when preserving alpha but clearing color.
|
||||
if (g_ActiveConfig.iMultisamples == 1 ||
|
||||
!DriverDetails::HasBug(DriverDetails::BUG_BROKEN_MSAA_VKCMDCLEARATTACHMENTS))
|
||||
{
|
||||
VkClearAttachment clear_attachments[2];
|
||||
uint32_t num_clear_attachments = 0;
|
||||
|
|
|
@ -101,7 +101,9 @@ static BugInfo m_known_bugs[] = {
|
|||
{API_OPENGL, OS_LINUX, VENDOR_MESA, DRIVER_I965, Family::UNKNOWN,
|
||||
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}};
|
||||
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}};
|
||||
|
||||
static std::map<Bug, BugInfo> m_bugs;
|
||||
|
||||
|
|
|
@ -253,6 +253,12 @@ enum Bug
|
|||
// Started version: -1
|
||||
// Ended Version: -1
|
||||
BUG_SHARED_CONTEXT_SHADER_COMPILATION,
|
||||
|
||||
// Bug: vkCmdClearAttachments with MSAA enabled causes NVIDIA Maxwell+ cards to lock up.
|
||||
// Started version: -1
|
||||
// Ended version: -1
|
||||
// Seems to only occur when the top of the clear rect is non-zero.
|
||||
BUG_BROKEN_MSAA_VKCMDCLEARATTACHMENTS,
|
||||
};
|
||||
|
||||
// Initializes our internal vendor, device family, and driver version
|
||||
|
|
Loading…
Reference in New Issue