В возможностях OpenCL LWJGL, откуда я получаю "cl_platform_id"? - PullRequest
0 голосов
/ 14 января 2019

Взглянув на документы LWJGL для их порта OpenCL, можно увидеть, что для создания возможностей OpenCL с использованием метода createPlatfromCapabilities в классе CL.class вам необходимо пройти долго cl_platform_id. Где это происходит?

Я попытался передать Platform.WINDOWS, как показано ниже: enter image description here
Однако в Platform.WINDOWS нет поля, которое бы давало long.

Учитывая, что переменная называется ID платформы, я полагаю, что LWJGL обычно не запрашивает длинное окно, и, поскольку "CL" также присутствует в имени, я предполагаю, что оно также выдается одним из внутренних OpenCL. классы.

Я много раз искал документы, и "cl_platform_id" появляется только в этом методе. Документы просто говорят следующее:

"@ param cl_platform_id: платформа для запроса"

Gee. это очень помогает.

Что означает параметр cl_platform_id в методе createPlatfromCapabilities и где я могу его найти?

1 Ответ

0 голосов
/ 18 января 2019

Вам необходимо использовать идентификатор платформы, полученный из clGetPlatformIDs . Первый параметр - это буфер для хранения идентификаторов (или null), а второй параметр - это буфер для хранения количества прочитанных идентификаторов (или null). Вы захотите вызвать функцию один раз, передав null для первого параметра и 1-элемент IntBuffer для второго, затем использовать int, хранящийся в буфере, для выделения PointerBuffer и вызвать его снова для фактического чтения. идентификаторы.

...