Cycles: Disable MNEE on RDNA4 GPUs

At the moment MNEE locks up Cycles, or has rendering artifacts on
RDNA4 GPUs on WIndows.

This commit disables MNEE on that configuration until a fix
is avaliable.

Pull Request: https://projects.blender.org/blender/blender/pulls/136980
This commit is contained in:
Alaska
2025-04-05 14:06:40 +02:00
committed by Alaska
parent e544f543a0
commit 975d61daf3
2 changed files with 16 additions and 1 deletions

View File

@@ -170,8 +170,15 @@ void device_hip_info(vector<DeviceInfo> &devices)
const bool is_rdna2_or_newer = hipIsRDNA2OrNewer(num);
/* Disable on RDNA1 due to apparent bug in HIP SDK 6.3. */
/* Disable MNEE on devices that don't work properly with it.
* Common symptoms are either rendering artifacts,
* or renders that get stuck in the MNEE kernel.
* These are most likely compiler bugs and can be re-enabled in the future. */
# ifdef _WIN32
info.has_mnee = is_rdna2_or_newer && !hipIsRDNA4OrNewer(num);
# else
info.has_mnee = is_rdna2_or_newer;
# endif
info.has_nanovdb = true;
info.has_gpu_queue = true;

View File

@@ -77,6 +77,14 @@ static inline bool hipIsRDNA2OrNewer(const int hipDevId)
return (major > 10 || (major == 10 && minor >= 3));
}
static inline bool hipIsRDNA4OrNewer(const int hipDevId)
{
int major;
hipDeviceGetAttribute(&major, hipDeviceAttributeComputeCapabilityMajor, hipDevId);
return (major >= 12);
}
static inline bool hipNeedPreciseMath(const std::string &arch)
{
# ifdef _WIN32