diff options
author | Brecht Van Lommel <brecht@blender.org> | 2020-06-18 15:33:16 +0300 |
---|---|---|
committer | Brecht Van Lommel <brecht@blender.org> | 2020-06-18 15:41:51 +0300 |
commit | 6899cb3c073e8dbd896fdd183a9f405b579634e6 (patch) | |
tree | 6afd640357aed7687bdcec866d6f03cd436f2a1c | |
parent | 64bf179a17611747831ec8594c3e57216ef95f9c (diff) |
Fix for T77095: work around render artifacts with AMD Radeon RX 4xx and 5xx
-rw-r--r-- | intern/cycles/device/opencl/device_opencl_impl.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/intern/cycles/device/opencl/device_opencl_impl.cpp b/intern/cycles/device/opencl/device_opencl_impl.cpp index beb3174b111..7a84b271878 100644 --- a/intern/cycles/device/opencl/device_opencl_impl.cpp +++ b/intern/cycles/device/opencl/device_opencl_impl.cpp @@ -1948,7 +1948,15 @@ string OpenCLDevice::kernel_build_options(const string *debug_src) int version_major, version_minor; if (OpenCLInfo::get_device_version(cdDevice, &version_major, &version_minor)) { if (version_major >= 2) { - build_options += "-cl-std=CL2.0 "; + /* This appears to trigger a driver bug in Radeon RX cards, so we + * don't use OpenCL 2.0 for those. */ + string device_name = OpenCLInfo::get_readable_device_name(cdDevice); + if (!(string_startswith(device_name, "Radeon RX 4") || + string_startswith(device_name, "Radeon (TM) RX 4") || + string_startswith(device_name, "Radeon RX 5") || + string_startswith(device_name, "Radeon (TM) RX 5"))) { + build_options += "-cl-std=CL2.0 "; + } } } |