Компанія Valve
Після завершення тестування та доопрацювання функціональності, ACO планується запропонувати для включення до основного складу Mesa.
Запропонований Valve код націлений на забезпечення генерації коду, наскільки це можливо, оптимального для шейдерів ігрових додатків, а також на досягнення дуже високої швидкості компіляції. Компілятор шейдерів, що є в Mesa, використовує компоненти LLVM, які не дозволяють досягти бажаної швидкості компіляції і не дозволяють повністю контролювати керуючий потік, що в минулому вже ставало причиною виникнення серйозних помилок. Крім того, відхід від LLVM дає можливість реалізувати більш агресивний аналіз розбіжностей і більш тонко керувати навантаженням на регістри, що дозволяє генерувати більш ефективні файли, що виконуються.
ACO написаний мовою С++, розробляється з огляду на можливість застосування для JIT-компіляції та використовує швидкі для перебору структури даних, уникаючи структур на основі покажчиків, таких як зв'язані списки та ланцюжки def-use. Проміжне подання коду повністю ґрунтується на
В даний час підтримуються тільки піксельні (фрагментні) і обчислювальні шейдери на дискретних GPU AMD (dGPU VI+). Тим не менш, ACO вже коректно збирає шейдери для всіх протестованих ігор, включаючи складні шейдери від ігор Shadow of the Tomb Raider та Wolfenstein II. Запропонований для тестування прототип ACO майже вдвічі перевершує компілятор шейдерів AMDGPU за швидкістю компіляції та демонструє збільшення FPS у деяких іграх, при їх роботі на системах з драйвером RADV.
Джерело: opennet.ru