Older GPU Support

I would like to suggest the ability to use older GPU’s as a rendering option. For example ever since 3.0 came out I have not been able to use my AMD RX570 to render at all (to my knowledge). So I’m forced to use anything other than cycles to render my project. So now if I want to do anything at a higher quality I am forced to use the older versions of blender because my GPU is supported there. I just find it weird that the lack of older gpu support isn’t incorporated in anyway considering not everyone can afford the “latest and greatest” hardware. Especially at the moment considering how bad inflation has gotten. I suggest either an alternative rendering method that allows users of older hardware to render using that. Or perhaps adding OpenCL back along side HIP for another option.

If I am wrong about this please let me know what I can do to use my GPU as an option. I am very much open to being wrong and criticisms.

2 Likes

I should start by stating that a request for developers to add support for specific GPUs is considered a “feature request” and is thus better suited for the “Right Click Select” website. Right-Click Select — Blender Community
But I have explained why expanding GPU support to older GPUs might be unlikely below.

GPU rendering in Cycles in Blender version 2.93 and earlier is generally provided using CUDA + OptiX (limited to Nvidia GPUs) or OpenCL (capable of running on a wide range of hardware).

Over the years, the Cycles developers faced various issues with OpenCL. Issues with maintaining the code, issues with certain GPU drivers from certain manufacturers (something the Blender foundation could not fix on their own), and things like that.

So in Blender 3.0 when the Cycles development team decided to re-write Cycles in the project called “Cycles-X”, they decided to remove OpenCL support due to all the issues they experienced. Following that, AMD, Apple, and Intel all started to contribute code to allow Cycles to run on their GPUs with the HIP, Metal, and OneAPI rendering backends respectively.

Based on the fact OpenCL was removed due to various issues, I believe it is unlikely that the Blender foundation will add it back. So support for older AMD GPUs probably won’t be achieved via that method.

However, it is possible for HIP and OneAPI to be expanded to support some older GPUs. The issue is that adding support for older GPUs with HIP may require quite a bit of work on the behalf of AMD that they may not seen as an “acceptable investment of time and money” (especially considering that the Polaris architecture (like the RX 570) is already “not officially supported” in the latest version of HIP - at least from my understanding).

The OneAPI implementation in Cycles could be expanded to run on AMD GPUs (although I do not know which GPU models would be supported). But the focus at the moment is to ensure OneAPI is working well on Intel hardware, and expanding support to other GPUs is either not planned, or is low priority at the moment.

As for Metal support. With regard to Apple and AMD GPUs, I believe it already supports as many GPUs as possible (based on the requirements for the Metal rendering backend to work). This includes the RX 570! However, it is limited to MacOS as Apple does not distribute the tools required to run Metal on other operating systems.

Cycles could have a OpenGL, DirectX, or Vulkan rendering backend added to it which would allow for many different GPUs to use it (including the RX 570 in most cases). However from my understanding these programming languages are so different from everything else used in Cycles that it would add a lot of maintenance cost (time spent maintaining multiple versions of code when a feature is added or changed) that the Blender foundation does not wish to take on due to limited time, people, and budget.


In summary, Cycles could have support added for some older GPUs (like the RX 570). However, adding support is either out of control of the Blender foundation, a low priority, or would introduce a lot of maintenance cost for the Cycles code base depending on the approach taken. And as such, support for these older GPUs may not be re-implemented.

8 Likes

I appreciate the response! Thanks for making it a bit more clear to me on why the current GPU support is the way it is. As I am one of the newer blender users myself it is great to see how informative the community is.

Back to the topic though. I suppose I will just stick to the latest version of blender and use Eevee as my engine because in my opinion the newer features definitely help with my workflow. I will just invest in a better system overall that is more suited for a “modern-day” Blender workspace (when the time comes).

Once again thank you!

I’m working with Blender version 2.81a and I’m trying to render from my GPU ; AMD Radeon HD 8790M. But OpenCL can’t find GPU. Please i need help with answers .

According to the Blender manual for Blender 2.81 (GPU Rendering — Blender Manual), OpenCL Cycles only supports GCN 2.0 and later. The AMD Radeon HD 8790M is a GCN 1.0 GPU and as such is not supported.

1 Like

Okay, thanks alot for your response

Hi all

For the record it should be added here that the mentioned “GCN 2.0” (AMD’s Graphics Core Next 2.0 GPU architecture) requirement means nothing other than “OpenCL 2.0” compliant. So Blender is working (alongside CUDA) up to release 2.93 LTS (which is supported until June 2023) only on OpenCL 2.0 capable hardware. This excludes any OpenCL 1.x capable device.

A personal thought, - the removal of OpenCL is somehow a quite unhappy decision. It looks that we are in 2022 finally at the point that there will exist in the near future a solid, performant, vendor independent, Khronos conformant open-source OpenCL 3.0 implementation in Mesa called rusticl. That one will replace the not so successful clover backend.

So instead of focusing on two new but again vendor depended compute paths, HIP and OptiX, there should be present also support for OpenCL 3.0 in Blender. This would open the possibility to use Blender on a much higher amount of hardware. That would include even the above mentioned Radeon HD 8790M card which had originally support for OpenCL 1.2 but would fulfill also the requirement for OpenCL 3.0. :wink:

1 Like

Sadly at the time the decision was made to remove OpenCL from Cycles, rusticl wasn’t a viable option for the general public to use. It also probably isn’t a good option for Windows users since Mesa is primarily developed and tested for Linux platforms (Windows was one of the platforms that the Cycles team faced issues with).


On the plus side, Intel has added “oneAPI” support to Cycles and they make use of their DPC++ compiler. The DPC++ compilers allows the code to be compiled to Level Zero for Intel GPUs, CUDA for Nvidia GPUs, ROCm HIP for AMD GPUs, and OpenCL for a wide range of devices. Although, the CUDA and HIP backends are experimental and I’m not sure the current status of the OpenCL backend.