As I pointed out in another thread, I'm having serious difficulties porting my OpenGL app to Metal because every graphics card behaves differently, and I don't have the resources to test the app on every single one of them. So I was wondering if I could force the Metal app to always run on the integrated graphics which, for all Macs currently being sold on the Apple website, is always Intel. Is this possible and does anyone know if older Macs have integrated graphics cards that are not Intel?
This seems unwise - my iMac has no integrated GPU (or it has, but it's disabled and can't be used). You're also going to get poor performance unless it's something fairly basic, on systems that maybe have a weak integrated GPU but a high end descrete GPU. Fixing the actual issue might make more sense - make sure you have Metal validation enabled and check any reported issues, and check you're setting pixel formats properly etc.
But to select a particular GPU: when you set up your MTLDevice, instead of using MTLCreateSystemDefaultDevice, use MTLCopyAllDevices which will give you an array. You'll then need to figure out which device you want.