Настройка взаимодействия OpenGL / Cuda в Windows - PullRequest
2 голосов
/ 25 марта 2011

Я пишу DLL, которая должна выполнять некоторую работу в Cuda 3.2, а другую - в OpenGL.OpenGL отобразит некоторые изображения в градациях серого, которые мой код Cuda должен прочитать и изменить, а затем вернет OpenGL в качестве текстуры.Я считаю, что мне нужно создать ОПО, чтобы сделать это.Я уже делал некоторые базовые вещи в OpenGL, но никогда не работал с расширениями, и вот в чем моя проблема - я искал 2 дня и до сих пор не смог найти работающий пример, несмотря на то, что просматривал страницы и страницыкод.Ни один из примеров, которые я пробовал работать (и я уверен, что моя видеокарта будет поддерживать его, будучи GTX470)

Некоторые конкретные вопросы:
1. Я установил nvidia opengl sdk.Должен ли я использовать glew.h и wglew.h для доступа к расширениям?
2. Моя DLL не имеет пользовательского интерфейса - нужно ли создавать скрытое окно или есть более простой способ создания закадрового рендерингаконтекст?
3. Могу ли я создать PBO в градациях серого, используя формат GL_RED_8UI?Будут ли счастливы и cuda, и gl?Я прочитал раздел взаимодействия opengl в руководстве по программированию cuda, в котором говорилось, что GL_RGBA_8UI может использоваться только пиксельными шейдерами, потому что это была функция OpenGL 3.0, но я не знал, применимо ли это к 1-канальному формату.1 канал с плавающей точкой также подойдет для моих целей.
4. Я думал, что это будет довольно легко сделать - действительно ли это требует сотен строк кода?

Редактировать:
У меня есть код длясоздать контекст OpenGL, присоединенный к HBITMAP.Должен ли я создать контекст рендеринга растрового изображения, а затем попытаться присоединить к нему PBO?Или это замедлит меня также рендерингом в память процессора?Лучше создать невидимое окно и прикрепить к нему PBO?Кроме того, формат пикселя моего PBO должен соответствовать окну / растровому изображению?А как насчет размеров?

Спасибо,
Алекс

Ответы [ 2 ]

1 голос
/ 25 марта 2011

На самом деле есть пример использования OpenGL и CUDA вместе.Посмотрите на пример SimpleGL.

0 голосов
/ 09 мая 2015

Вы можете взглянуть на этот пример:

https://github.com/nvpro-samples/gl_cuda_interop_pingpong_st

...