Valve ha abierto un nuevo compilador de sombreadores para GPU AMD

Compañía de válvulas sugerido La lista de correo de desarrolladores de Mesa tiene un nuevo compilador de sombreadores ACO para el controlador Vulkan RADV, posicionable como alternativa al compilador de sombreadores AMDGPU utilizado en los controladores OpenGL y Vulkan RadeonSI y RADV para chips gráficos AMD.
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 SSA (Asignación única estática) y permite la asignación de registros calculando previamente con precisión el registro según el sombreador.

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.

Valve ha abierto un nuevo compilador de sombreadores para GPU AMD

Valve ha abierto un nuevo compilador de sombreadores para GPU AMD

Fuente: opennet.ru

Añadir un comentario