mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-24 14:49:42 -06:00
VideoBackends:Multiple: Split up BUG_BROKEN_SUBGROUP_OPS
We now use subgroup ops for more than just a minor performance optimization
This commit is contained in:
@ -130,14 +130,14 @@ constexpr BugInfo m_known_bugs[] = {
|
||||
-1.0, -1.0, true},
|
||||
{API_VULKAN, OS_ALL, VENDOR_ARM, DRIVER_ARM, Family::UNKNOWN, BUG_BROKEN_VECTOR_BITWISE_AND,
|
||||
-1.0, -1.0, true},
|
||||
{API_VULKAN, OS_OSX, VENDOR_ATI, DRIVER_PORTABILITY, Family::UNKNOWN, BUG_BROKEN_SUBGROUP_OPS,
|
||||
{API_VULKAN, OS_OSX, VENDOR_ATI, DRIVER_PORTABILITY, Family::UNKNOWN, BUG_INVERTED_IS_HELPER,
|
||||
-1.0, -1.0, true},
|
||||
{API_VULKAN, OS_OSX, VENDOR_INTEL, DRIVER_PORTABILITY, Family::UNKNOWN, BUG_BROKEN_SUBGROUP_OPS,
|
||||
-1.0, -1.0, true},
|
||||
{API_METAL, OS_OSX, VENDOR_ATI, DRIVER_APPLE, Family::UNKNOWN, BUG_BROKEN_SUBGROUP_OPS, -1.0,
|
||||
-1.0, true},
|
||||
{API_METAL, OS_OSX, VENDOR_INTEL, DRIVER_APPLE, Family::UNKNOWN, BUG_BROKEN_SUBGROUP_OPS, -1.0,
|
||||
{API_METAL, OS_OSX, VENDOR_ATI, DRIVER_APPLE, Family::UNKNOWN, BUG_INVERTED_IS_HELPER, -1.0,
|
||||
-1.0, true},
|
||||
{API_VULKAN, OS_OSX, VENDOR_INTEL, DRIVER_PORTABILITY, Family::UNKNOWN,
|
||||
BUG_BROKEN_SUBGROUP_OPS_WITH_DISCARD, -1.0, -1.0, true},
|
||||
{API_METAL, OS_OSX, VENDOR_INTEL, DRIVER_APPLE, Family::UNKNOWN,
|
||||
BUG_BROKEN_SUBGROUP_OPS_WITH_DISCARD, -1.0, -1.0, true},
|
||||
{API_OPENGL, OS_ANDROID, VENDOR_ALL, DRIVER_ALL, Family::UNKNOWN,
|
||||
BUG_BROKEN_MULTITHREADED_SHADER_PRECOMPILATION, -1.0, -1.0, true},
|
||||
{API_VULKAN, OS_ANDROID, VENDOR_ALL, DRIVER_ALL, Family::UNKNOWN,
|
||||
|
@ -299,14 +299,23 @@ enum Bug
|
||||
|
||||
// BUG: Accessing gl_SubgroupInvocationID causes the Metal shader compiler to crash.
|
||||
// Affected devices: AMD (older macOS)
|
||||
// BUG: gl_HelperInvocation always returns true, even for non-helper invocations
|
||||
// Affected devices: AMD (newer macOS)
|
||||
// Started version: ???
|
||||
// Ended version: ???
|
||||
// (Workaround currently disabled, will put it back when someone hits the issue and we can
|
||||
// find out what devices and OSes it actually affects)
|
||||
|
||||
// BUG: Using subgroupMax in a shader that can discard results in garbage data
|
||||
// (For some reason, this only happens at 4x+ IR on Metal, but 2x+ IR on MoltenVK)
|
||||
// Affected devices: Intel (macOS)
|
||||
// Started version: -1
|
||||
// Ended version: -1
|
||||
BUG_BROKEN_SUBGROUP_OPS,
|
||||
BUG_BROKEN_SUBGROUP_OPS_WITH_DISCARD,
|
||||
|
||||
// BUG: gl_HelperInvocation is actually !gl_HelperInvocation
|
||||
// Affected devices: AMD (macOS)
|
||||
// Started version: -1
|
||||
// Ended version: -1
|
||||
BUG_INVERTED_IS_HELPER,
|
||||
|
||||
// BUG: Multi-threaded shader pre-compilation sometimes crashes
|
||||
// Used primarily in Videoconfig.cpp's GetNumAutoShaderPreCompilerThreads()
|
||||
|
@ -485,7 +485,7 @@ void UpdateBoundingBox(float2 rawpos) {{
|
||||
int2 pos_tl = pos & ~1; // round down to even
|
||||
int2 pos_br = pos | 1; // round up to odd
|
||||
|
||||
#ifdef SUPPORTS_SUBGROUP_REDUCTION
|
||||
#if defined(SUPPORTS_SUBGROUP_REDUCTION) && !defined(BROKEN_SUBGROUP_WITH_DISCARD)
|
||||
if (!IS_HELPER_INVOCATION)
|
||||
{{
|
||||
SUBGROUP_MIN(pos_tl);
|
||||
|
Reference in New Issue
Block a user