Денис , хороший большой вопрос. Попробую дать похожий ответ. Решаю подобную задачу уже некоторое время.
Задача стояла подобная.
От RemoteFX я отказался сразу -- и вижу, по вашему опыту, не зря. Эти коммерческие парни завяжут вас в свой узел, и будут выжимать, как выжимают белье после стирки: Win-сервер --> hyperX --> windowsTM-VM --> Nvidia GRID и дрова по подписке. Клиенты с RDP обычные тоже не подойдут (скорее всего), только свои. Это что-же, значит покупать опять Windows и что там у них, а хочется с телефона или планшета, Surface.. ? Ну и т.д. Ведь они, -- назовем вещи своими именами, в сговоре. Недаром заблочены драйвера Nvidia в Windows для потребительских карт... В общем, я даже не стал смотреть в эту сторону.
(хотя чуть не купил Nvidia GRID в свое время год назад)
Стал рассматривать варианты вне Windows.
Решения в этом ключе есть у Citrix и VMWare. Первое дешевле второго. Там вот как все устроено. Главное, что Nvidia для них не блочит (но не помню для всех ли карт или опять же только для QUADRO, GRIDa, TESLA) Как оно работает: По аналогии с опробованным вами вариантом, ставите их сервера вместо Window Server, ставите Win-vm, пробрасывате видеокарту и вместе с их родными тонкими клиентами (не RDP) получаете заветное 3D ускорение. Если я не ошибаюсь, они перехватывают изображение передаваемое с видеокарты и передают попиксельные изменения по сети. Получается почти тот же vnc, но более оптимизированное с точки зрения картинки и скорости взаимодействия (кажется, все стриминговые сервисы сейчас тоже пошли по этому пути).
Но мне не хотелось связываться с проприетарными и платными решениями. Я стал, как и многие эксперементировать с ProxMox. Для успеха проброса там не много надо: поддержка материнской платой и процессором ряда технологий виртуализации и подключенный монитор к видюхе или заглушка, эмулирующая его. Проброс работает, Nvidia обманывается, драйвера встают (кстати, AMD карты тоже). Но как вы будете получать картинку с удаленного компьютера? RDP не передает 3D -ускорения, поскольку подменяет реальную видеокарту на сервере, виртуальной и рисует изображение с нее. (намеренно, ведь с RemoteFX на сервере -- он же все передает как надо). Кстати, W7и W10 домашние лицензии спокойно превращаются в сервера терминально доступа и держат несколько подключений пользователей одновременно: для этого меняется всего одна .dll (!)) Это к вопросу как все устроено. То есть серверная часть -- вся готова: все пробрасывается и все рисуется на хосте, на -- Windows7/64, к примеру, и держится множество подключений. Но все равно: как передавать по сети 3D? RDP -- нет, VNC плох. Можно через протокол SPICE, он быстрее RDP и лучше VNC, но там драйвер для видео свой: от RedHat и какое там ускорение? Никакого.
Есть хорошие новости о vGPU. RedHat заявила о поддержке этой технологии в своей последней версии ОС.
Последний ProxMox поддерживает vGPU и я вижу народ уже пробует ее во всю с профессиональными картами Nvidia. Может посмотреть вам в эту сторону?
Я в свою очередь сейчас реализовал вот что. Эта новая технология называется
looking-glass. Она позволяет запускать Windows-vm локально на Linux с проброшенной видео-картой и получать картинку в окне Linux-машины без потерь 3D.
Там не используется ни rdp/vnc/spice или попиксельный видео-поток, там данные снимаются с видео-карты и через фрейм-буфер передаются на Linux-host. То есть в своем первоначальном виде, без изменений. Подобно тому, как они бы передались на второй монитор в режиме заркала. Латентности (задержки) нет. На глаз нет.
Пока как-то так.