clSetKernelArg, выбрасывающий EXC_BAD_ACCESS

0

Я работаю над примером HelloWorld в Руководстве по программированию OpenCl, и я продолжаю получать EXC_BAD_ACCESS, когда пытаюсь запустить эту функцию (clSetKernelArg). Внешний вид моей функции в основном...

clSetKernelArg(mKernel, 0, sizeof(cl_mem), mMemObject[0]);

В отладчике все выглядит как экземпляр. В круглых скобках нет ничего пустого, и у меня все идеи. Любая помощь будет принята с благодарностью.

  • 0
    Как вы объявили mMemObject?
Теги:
opencl

1 ответ

3
Лучший ответ

Если вы собираетесь использовать OpenCL Hello World, я почти уверен, что у вас нет

cl_mem * mMemObject[foo]

Это единственное, что сделало бы объявление mMemObject [0] законным. EXC_BAD_ACCESS подразумевает, что вы разыскиваете неверный указатель, и это означает, что ваш mMemObject является только cl_mem.

Это работает, если вы объявили mMemObject просто с помощью cl_mem mMemObject:

clSetKernelArg(mKernel, 0, sizeof(cl_mem), &mMemObject);
  • 0
    К сожалению. Я был неправ, это было так. clSetKernelArg (mKernel, 0, sizeof (cl_mem), mMem); mMem - это просто cl_mem mMem = clCreateBuffer ...
  • 0
    Ты был прав. Я завершаю его и отправляю как cl_mem, который является указателем, но вместо этого я должен был взять адрес указателя cl_mem. Спасибо за проверку идиота. Я сходил с ума.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню