mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-24 14:49:42 -06:00
OSX: don't avoid unsync mapping on nvida gpus just because the windows driver doesn't like it
OSX has their own driver, so performance issues aren't shared with the nvidia driver (unlike the closed source linux and windows nvidia driver). So now they'll also use the MapAndSync backend like all other osx drivers. fixes issue 6596 I've also cleaned up the if/else block selecting the best backend a bit.
This commit is contained in:
@ -55,6 +55,8 @@ namespace DriverDetails
|
||||
{OS_WINDOWS,VENDOR_NVIDIA, DRIVER_NVIDIA, -1, BUG_BROKENBUFFERSTORAGE, -1.0, 33220.0, true},
|
||||
{OS_LINUX, VENDOR_NVIDIA, DRIVER_NVIDIA, -1, BUG_BROKENBUFFERSTORAGE, -1.0, 33138.0, true},
|
||||
{OS_OSX, VENDOR_INTEL, DRIVER_INTEL, 3000, BUG_PRIMITIVERESTART, -1.0, -1.0, true},
|
||||
{OS_WINDOWS,VENDOR_NVIDIA, DRIVER_NVIDIA, -1, BUG_BROKENUNSYNCMAPPING, -1.0, -1.0, true},
|
||||
{OS_LINUX, VENDOR_NVIDIA, DRIVER_NVIDIA, -1, BUG_BROKENUNSYNCMAPPING, -1.0, -1.0, true},
|
||||
};
|
||||
|
||||
std::map<Bug, BugInfo> m_bugs;
|
||||
|
@ -154,6 +154,17 @@ namespace DriverDetails
|
||||
// The drivers on OS X has broken primitive restart.
|
||||
// Intel HD 4000 series isn't affected by the bug
|
||||
BUG_PRIMITIVERESTART,
|
||||
// Bug: unsync mapping doesn't work fine
|
||||
// Affected devices: nvidia driver
|
||||
// Started Version: -1
|
||||
// Ended Version: -1
|
||||
// The nvidia driver (both windows + linux) doesn't like unsync mapping performance wise.
|
||||
// Because of their threaded behavoir, they seem not to handle unsync mapping complete unsync,
|
||||
// in fact, they serialize the driver which adds a much bigger overhead.
|
||||
// Workaround: Use BufferSubData
|
||||
// TODO: some windows AMD driver/gpu combination seems also affected
|
||||
// but as they all support pinned memory, it doesn't matter
|
||||
BUG_BROKENUNSYNCMAPPING,
|
||||
};
|
||||
|
||||
// Initializes our internal vendor, device family, and driver version
|
||||
|
Reference in New Issue
Block a user