Macos 10.9上的CGLGetDeviceFromGLRenderer替代方案

Macos 10.9上的CGLGetDeviceFromGLRenderer替代方案,macos,opengl,core-graphics,opencl,gpgpu,Macos,Opengl,Core Graphics,Opencl,Gpgpu,在Mac Pro上,我需要找到连接到屏幕的GPU的cl_设备id CGLGetDeviceFromGLRenderer(在WWDC 2014,会话601中)被提及为将OpenGL渲染器的虚拟屏幕编号转换为等效OpenCL设备id的API 问题是CGLGetDeviceFromGLRenderer仅在OS X 10(约塞米蒂)上可用 Mac OS 10.9是否有替代方案或解决方法?您可以自己编写函数: #if !defined(MAC_OS_X_VERSION_10_10) cl_device_i

在Mac Pro上,我需要找到连接到屏幕的GPU的cl_设备id

CGLGetDeviceFromGLRenderer(在WWDC 2014,会话601中)被提及为将OpenGL渲染器的虚拟屏幕编号转换为等效OpenCL设备id的API

问题是CGLGetDeviceFromGLRenderer仅在OS X 10(约塞米蒂)上可用


Mac OS 10.9是否有替代方案或解决方法?

您可以自己编写函数:

#if !defined(MAC_OS_X_VERSION_10_10)
cl_device_id CGLGetDeviceFromGLRenderer(GLint rendererID)
{
    // For GPUs that support OpenCL in Mac OS X, the rendererID may be
    // transformed into a cl_device_id by masking away the low byte:
    // https://developer.apple.com/library/mac/technotes/tn2335/_index.html
    cl_device_id device_id = (cl_device_id)(intptr_t)(rendererID &~ 0xff);
    return device_id;
}
#endif

能够获取CL/GL互操作上下文的CL设备通常是连接到屏幕的设备。