Есть задача: программно обработать видеоизображение перед выходом его на экран. программа должна работать безотносительно к типу видеокарты, перехватывать поток видео-данных, сбрасывать его в буфер для обработки, после чего отправлять на карту уже обработанные данные из буфера. Всё это в реальном режиме - трафик ~100 Mb/s
Вообще-то непростая задачка.
Решение зависит от источника видеопотока.
Если конкретная программа, то проще в нее вмещаться, или воткнуться между ней и X сервером.
Если источник неизвестен, то придется лезть непосредственно в X сервер.
Вот в том и беда, что сервер карты может( и вероятнее всего) не фришный - соответственно сырцов к нему нет, а перехватывать надо весь поток, т.е. всё, что идёт на мониtор.
Если речь идет о несвободном драйвере к XFre86, то можно вмешаться в XFree86 и перехватить обращения к драйверу.
Если же речь идет про другой X сервер, то может быть такой финт ушами.
Есть такая штука xnest - X сервер, который сам работат как клиент к другому X серверу. Можно запускать приложения на xnest, и вмешаться либо в xnest, либо в связь между xnest и другим X сервером.
xnest собирается их исходников XFree86.