GLX-контекст для создания OpenCL-контекста - PullRequest
2 голосов
/ 31 декабря 2011

Вопрос: Как мне взять GLXContext и передать его clCreateContextFromType?


Информация:

Я изучаю, как работает CL OpenGL. Мне удалось узнать, как работает openCL и как работает openGl, теперь я нахожусь на последнем этапе, чтобы заставить их работать вместе. Я использовал перенасыщение, но с тех пор начал использовать GLX, потому что мне нужен контекст GL, чтобы CL мог создавать его контекст. Мой GLXContext сохранен как глобальная переменная, и я передаю его в clCreateContextFromType, и я получаю его при компиляции:

error: invalid conversion from ‘GLXContext {aka __GLXcontextRec*}’ to ‘cl_context_properties {aka long int}’

Итак, я побежал по Интернету, нашел несколько советов из этого блога и составил список cl_context_properties, который содержал {CL_GLX_DISPLAY_KHR, glc}. Выкинул точно такую ​​же ошибку. Что мне здесь не хватает? очевидно, что-то должно произойти, чтобы сделать этот контекст GLX подходящим для openCL. Чего мне не хватает?

1 Ответ

3 голосов
/ 31 декабря 2011

Я понял это:

cl_context_properties props[] =
{
    CL_GL_CONTEXT_KHR, (cl_context_properties)glXGetCurrentContext(),
    CL_GLX_DISPLAY_KHR, (cl_context_properties)glXGetCurrentDisplay(),
    CL_CONTEXT_PLATFORM, (cl_context_properties)(platform_id),
    0
};

Почему это работает, я не знаю. Но я нашел это здесь .

...