2013-07-05 6 views
0

Какой самый быстрый способ прочитать буфер экрана с использованием CUDA (Весь экран, а не только окно)?
Могу ли я сделать это, не копируя тонны пикселей между хостом и устройством?
Могу ли я получить доступ к этому конкретному буферу напрямую?CUDA: самый быстрый способ чтения буфера отображения?

+1

Я не верю, что есть * любой * способ чтения экранного буфера с использованием CUDA. – talonmies

+0

Я новичок. Можете ли вы дать мне больше объяснений по этому поводу? Что может сделать CUDA? Нужно ли мне обращаться к VGA-памяти? – Kh40tiK

+0

Замените буфер gl перед отправкой в ​​буфер отображения. GL interop. –

ответ

1

Отдайте объект буфера визуализации openGL, затем используйте CUDA OpenGL interop, чтобы сопоставить его указателю устройства и прочитать его в ядре CUDA. Вы также можете сделать эквивалент с помощью Direct3D.

См. Graphics Samples, входящий в комплект CUDA SDK.

+0

Спасибо за ответ. Но проблема в том, как я могу отобразить буфер визуализации для экрана ENTIRE (без копирования буфера в host mem)? Например, как я могу уловить скриншот, включая начальное меню, значки на рабочем столе? – Kh40tiK

+0

Это не вопрос CUDA, и вы этого не задали. Вы должны опубликовать это как отдельный вопрос или удалить тег CUDA. Быстрый google появился [это] (http://blogs.msdn.com/b/dsui_team/archive/2013/03/25/ways-to-capture-the-screen.aspx). Если бы мой ответ был полезным, пожалуйста, поддержите и/или принимайте. – harrism