Microsoft выпустила технологию Work Graphs, которая является частью последней версии DirectX 12. Данная технология позволит разгрузить центральный процессор за счёт переноса планирования задач на видеокарту, что теоретически даст прирост производительности системам с маломощными CPU.
Сейчас конечная картинка на экране формируется совместными усилиями CPU и GPU, но иногда CPU не успевает подготовить задачи для расчёта на GPU, в результате видеокарта простаивает, ожидая новых указаний. Технология Work Graphs призвана сделать GPU более автономным, чтобы он мог сам подавать себе рабочие задания и сократить количество обращений к CPU.
С помощью Work Graphs разработчики игр могут оптимизировать конвейеры производитель-потребитель, которые эффективно переносят тяжелые рабочие нагрузки с CPU на GPU. В этой системе поток, работающий на GPU (производитель), может зарегистрировать запрос на выполнение другой работы (потребитель). Работа будет запланирована GPU, как только появится свободное место, и при необходимости этот поток также может стать потребителем. Проще говоря, вместо ожидания выполнения каждого этапа расчётов, CPU может составить последовательность задач, которые GPU выполнит, не обращаясь каждый раз к CPU.
Дополнительно ускорить взаимодействие центрального и графического процессоров предполагается благодаря функции GPU Upload Heaps из Shader Model 6.8 — она позволяет CPU и GPU обмениваться данными заметно быстрее, за счёт отсутствия необходимости передавать данные из видеопамяти центральному процессору через шину PCI. Эта функция использует технологию ResizableBAR, позволяющую CPU с минимальными задержками записывать данные в видеопамять.
Work Graphs и Shader Model 6.8 стали доступны разработчикам игр через Agility