I have an AlienWare laptop with a built-in nVidia 1070 Max-Q, and a Radeon VII in an external TB3 chassis. I'm running into some frustrating issues with OpenCL, which seem like they're either bugs in the respective installers or in the drivers.
When I start up DaVinci Resolve after installing the Radeon drivers, it shows me only one OpenCL device, and that's the Radeon. I don't expect to be able to use both of the GPUs at the same time here, even if that were possible it would lead to a major performance hit because of how Resolve works (it limits the bigger GPU to match the smaller).
What I DO expect is, when the eGPU chassis is connected, pick one of the two for use with OpenCL.
For Resolve that's not too big a deal since CUDA still works with the nVidia card for when I don't have the eGPU connected, but thanks to the OpenCL glitch, when the eGPU is disconnected, there's NO OpenCL device at all, even though there actually IS an OpenCL device available, even though it's nowhere near as fast as the Radeon VII.
This is a major problem because it means that in order to use Mistika or Scratch which both also make heavy use of the GPU, I actually have to re-install the nVidia drivers... neither is able to use the eGPU (I don't know why yet, but that seems to be related to how they detect GPUs and not driver related), but since the AMD OpenCL drivers stomp the nVidia one, the nVidia driver doesn't come up as an OpenCL device even when the Radeon VII is disconnected... and that's where the problem lies.
How can we fix this? eGPUs aren't a new thing, and given AMD's non-presence in laptops, this isn't exactly an uncommon situation, especially since the Radeon VII is such a monster of a GPU. It's become a big hit with Resolve users, and I'm hoping that Scratch will be able to start using it because it will scream when it does... but in the mean time none of that changes the fact that they need to coexist better in the same machine -- or at least, when I disconnect the Radeon VII, OpenCL needs to revert back to the built in nVidia dGPU.