Compañía de válvulas
Una vez que se completen las pruebas y se finalice la funcionalidad, se planea ofrecer ACO para su inclusión en la composición principal de Mesa.
El código propuesto por Valve tiene como objetivo proporcionar una generación de código lo más óptima posible para los sombreadores de aplicaciones de juegos, además de lograr una velocidad de compilación muy alta. El compilador de sombreado de Mesa utiliza componentes LLVM, que no proporcionan la velocidad de compilación deseada y no permiten un control total del flujo de control, lo que ha causado graves errores en el pasado. Además, alejarse de LLVM permite implementar análisis de discrepancia más agresivos y un control más preciso de la carga de registros, lo que permite generar ejecutables más eficientes.
ACO está escrito en C++, diseñado teniendo en cuenta la compilación JIT y utiliza estructuras de datos iterativas rápidas, evitando estructuras basadas en punteros, como listas vinculadas y cadenas de desactivación. La representación del código intermedio se basa enteramente en
Actualmente, solo se admiten sombreadores de píxeles (fragmentos) y de cálculo en GPU AMD discretas (dGPU VI+). Sin embargo, ACO ya recopila correctamente sombreadores para todos los juegos probados, incluidos sombreadores complejos de Shadow of the Tomb Raider y Wolfenstein II. El prototipo ACO propuesto para las pruebas es casi el doble de rápido que el compilador de sombreadores AMDGPU en términos de velocidad de compilación y demuestra un aumento en FPS en algunos juegos cuando se ejecutan en sistemas con el controlador RADV.
Fuente: opennet.ru