Azienda di valvole
Una volta completati i test e finalizzata la funzionalità, si prevede che ACO venga offerto per l'inclusione nella composizione principale di Mesa.
Il codice proposto da Valve mira a fornire una generazione di codice quanto più ottimale possibile per gli shader delle applicazioni di gioco, oltre a raggiungere una velocità di compilazione molto elevata. Il compilatore shader di Mesa utilizza componenti LLVM, che non forniscono la velocità di compilazione desiderata e non consentono il pieno controllo del flusso di controllo, cosa che in passato ha causato gravi errori. Inoltre, allontanandosi da LLVM è possibile implementare un'analisi delle discrepanze più aggressiva e un controllo più preciso del carico dei registri, che consente di generare eseguibili più efficienti.
ACO è scritto in C++, progettato pensando alla compilazione JIT e utilizza strutture dati iterative veloci, evitando strutture basate su puntatori come elenchi collegati e catene di disuso. La rappresentazione del codice intermedio è interamente basata su
Attualmente, solo pixel (frammenti) e shader di calcolo sono supportati sulle GPU AMD discrete (dGPU VI+). Tuttavia, ACO raccoglie già correttamente gli shader per tutti i giochi testati, inclusi gli shader complessi di Shadow of the Tomb Raider e Wolfenstein II. Il prototipo ACO proposto per il test è quasi due volte più veloce del compilatore shader AMDGPU in termini di velocità di compilazione e mostra un aumento degli FPS in alcuni giochi quando vengono eseguiti su sistemi con il driver RADV.
Fonte: opennet.ru