Как отобразить изображение, хранящееся в видеопамяти видеокарты

Моя платформа - Windows PC и C ++. Я использую буфер изображения в видеопамяти с графическим процессором через CUDA. Есть ли способ напрямую отправить контент на GPU для отображения? В настоящее время я получаю содержимое в системную память, а затем использую функцию API (например, GDI, OpenGL, DirectX), чтобы отправить ее на GPU для отображения. Интересно, есть ли более быстрый способ сделать это.

5 голосов | спросил Tae-Sung Shin 21 FebruaryEurope/MoscowbThu, 21 Feb 2013 05:21:24 +0400000000amThu, 21 Feb 2013 05:21:24 +040013 2013, 05:21:24

1 ответ


4

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

Конкретный вызов API в CUDA зависит от того, какой графический API вы используете, но ищите «ресурс регистрации».

В принципе, создайте текстуру с соответствующими данными изображения, например, вы хотите их отобразить (например, с помощью CreateTexture или GL glTexSubData2D). Зарегистрируйте текстуру с помощью CUDA с помощью соответствующего API (cudaGraphicsGLRegisterImage для OpenGL). Свяжите зарегистрированную текстуру с массивом CUDA (cudaBindTextureToArray).

Сделайте то же самое для вашего буфера визуализации (текстура вывода, связанная с FBO в GL или RenderTarget, связанная в D3D, используя несколько разные методы для свяжите /сопоставьте его с CUDA - см. документы). Запустите ядро. Свяжите текстуру вывода для рендеринга в выбранном API. Использовать его как источник, например. как полноэкранный квад.

Не большая, но не страшная статья с интеграцией OpenGL с CUDA находится на 3dgep.com .

ответил Sean Middleditch 21 FebruaryEurope/MoscowbThu, 21 Feb 2013 05:50:54 +0400000000amThu, 21 Feb 2013 05:50:54 +040013 2013, 05:50:54

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132