I assume everyone in the Blender community is aware of how iffy GPU rendering is, on both Cuda (Nvidia) and especially OpenCL (AMD); Many video card models can’t be guaranteed to work as the specs need to be just right… for instance the official stance on GCN is that 1.0 might work, whereas 2.0 is the only version receiving support officially. The free video drivers and libraries (Radeon, Nouveau, Mesa, etc) also don’t currently support it, which is a huge bummer for us Linux users.
Often times this got me wondering why there isn’t any other API which could allow rendering on the GPU… one that permits full flexibility in programming on the video card, while also being a common standard across every make and model of card. Last night it suddenly struck me that, unless I’m greatly misunderstanding the requirements for GPU based raytracing, there already is: Vulkan.
Now I’m no expert on the matter, but I did read up on the basics: Vulkan is the predecessor to OpenGL, offering a completely new approach to the way GPU processing is done. The relevant bit here is that unlike OpenGL, which only lets you modify vertices or niche aspects of polygonal surfaces, Vulkan should allow you to program anything you wish on the GPU. Unless there are limitations that I’m missing here, this should provide the environment Cycles needs to do its calculations.
What are your thoughts on a Vulkan GPU renderer, which would hopefully be available for all Nvidia / AMD / Intel cards that have Vulkan support? Has the idea ever been considered, perhaps even being worked on? Is it technically possible, and if so is it a good idea (not a waste of time) to attempt implementing it?