gpt4 book ai didi

c++ - 与当前 OpenGL 上下文对应的唯一 OpenCL 上下文

转载 作者:太空宇宙 更新时间:2023-11-04 11:33:00 29 4
gpt4 key购买 nike

我试图找到最接近当前 OpenGL 上下文的 OpenCL 设备来执行 OpenCL/OpenGL Interop。通过 OpenCL 扩展 clGetGLContextInfoKHR() 和 CL_CURRENT_DEVICE_FOR_GL_CONTEXT_KHR 参数,我可以为特定的 OpenCL 平台和特定的(当前)OpenGL 上下文请求此设备。

我的 MacBook Pro 上有两个 OpenCL 平台(OpenCL 1.1 (NVIDIA) 和 OpenCL 1.2 (Intel))。奇怪的是,对于这两个平台,即使 OpenGL 上下文在 NVIDIA 上运行,clGetGLContextInfoKHR() 也会返回一个结果。我是不是做错了什么,或者 clGetGLContextInfoKHR() 是否总是产生唯一的结果?

最佳答案

要根据最近 MBP 上的当前图形卡获取当前上下文,您可以使用:

CGLShareGroupObj kCGLShareGroup = CGLGetShareGroup(cgl_ctx);
cl_context_properties props[] =
{
CL_CONTEXT_PROPERTY_USE_CGL_SHAREGROUP_APPLE, (cl_context_properties)kCGLShareGroup,
CL_CONTEXT_PLATFORM, (cl_context_properties)_platform,
0
};

_context = clCreateContext(props, 0, NULL, NULL, NULL, &err);
err = clGetGLContextInfoAPPLE(_context, cgl_ctx, CL_CGL_DEVICE_FOR_CURRENT_VIRTUAL_SCREEN_APPLE, sizeof(_deviceID), &_deviceID, NULL);

其中 cgl_ctx 是您的 CGLContextObj,_platform 是您获得的平台

unsigned int platformCount;
err = clGetPlatformIDs(1, &_platform, &platformCount);

_context 是您的 cl_context。

关于c++ - 与当前 OpenGL 上下文对应的唯一 OpenCL 上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23906514/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com