На GDC 2024 AMD объявила, что добавляет вызовы отрисовки и узлы сетки как часть рабочих графиков — перенося эти функции с ЦП на графический процессор с целью повышения производительности в играх. AMD показала результаты тестов рабочих графиков с сетчатыми шейдерами, работающими на RX 7900 XTX, продемонстрировав улучшение производительности на 64% по сравнению с обычными рабочими графиками без применения сетчатых шейдеров.
Что такое рабочие графики? Это новый способ рендеринга на основе графического процессора, встроенный в API Direct3D 12, который позволяет графическому процессору выполнять работу самостоятельно. В приложениях с поддержкой рабочих графиков (Work Graph) это означает, что определенные части конвейера 3D-рендеринга можно контролировать и визуализировать на графическом процессоре независимо от процессора, что снижает потенциальные узкие места, повышая эффективность и производительность.
Рабочие графики не могут запускать все на графическом процессоре (пока), но эта функция уже может выполнять вызовы диспетчеризации, шейдеры и выполнение узлов, все из которых традиционно управляются через процессор.
Согласно открытому блогу AMD, Mesh Nodes — это новое расширение рабочих графиков, которое представляет новый тип листового узла, который управляет сетчатым шейдером и позволяет ссылаться на обычный графический PSO из рабочего графа. Узлы сетки позволяют рабочему графику передаваться непосредственно в сетчатый шейдер, «превращая сам рабочий график в шейдер усиления на стероидах».
С точки зрения непрофессионала, интеграция шейдеров сетки с рабочими графиками позволила AMD сделать шейдеры сетки существенно более эффективными по причинам, рассмотренным выше. Чем больше «функций» 3D-рендеринга переносится в рабочие графики, тем эффективнее становится конвейер 3D-рендеринга.
«Узлы Mesh действительно замыкают цикл, обеспечивая сквозную замену Execute Indirect и продвигая вперед модель программирования графического процессора», — пишет архитектор AMD Маттеус Чайдас. «Все может быть помещено в один граф и выполнено за одну диспетчеризацию, что позволяет очень легко составлять большие приложения из маленьких кусочков. Более того, такие проблемы, как переключение PSO, пустые диспетчеризации и управление буферной памятью, просто исчезают, делая полноценный графический процессор управляемые конвейеры доступны для гораздо большего числа приложений и вариантов использования, чем раньше».
AMD также представила вызовы отрисовки как функцию, которую можно использовать с рабочими графиками. Вызовы отрисовки в рабочих графиках могут обрабатываться асинхронно, чтобы повысить эффективность рендеринга.
Помимо тестового теста, предоставленного AMD, AMD также продемонстрировала демо-версию 3D-движка, работающего в реальном времени с рабочими графиками в сочетании с новой функцией затенения сетки и функцией вызова отрисовки, о которой объявила AMD.
Эти новые функции продолжают расширять функциональность рабочих графиков, позволяя графическому процессору самостоятельно выполнять больше задач рендеринга (независимо от процессора). В будущем мы сможем увидеть, как вся видеоигра полностью рендерится на графическом процессоре, не считая игровой логики.


Комментарии