Cambiouse o controlador RADV Vulkan para usar o backend de compilación de sombreadores ACO

Na base de código utilizada para formar a versión Mesa 20.2, implementado cambiando RADV, o controlador Vulkan para chips AMD, para usar o backend predeterminado para compilar sombreadores "ACO", que está a ser desenvolvido por Valve como unha alternativa ao compilador de shader LLVM. Este cambio levará a un maior rendemento do xogo e un tempo de lanzamento reducido. Para devolver o backend antigo, fornécese a variable de ambiente "RADV_DEBUG=llvm".

Cambiar o controlador RADV ao novo backend fíxose posible despois de que ACO conseguise a paridade de funcionalidade co antigo backend desenvolvido por AMD para o controlador AMDGPU, que segue usándose no controlador RadeonSI OpenGL. Proba por válvula mostrouseque ACO é case o dobre de rápido que o compilador de sombreadores AMDGPU en termos de velocidade de compilación e demostra un aumento de FPS nalgúns xogos cando se executa en sistemas co controlador RADV.

Cambiouse o controlador RADV Vulkan para usar o backend de compilación de sombreadores ACO

Cambiouse o controlador RADV Vulkan para usar o backend de compilación de sombreadores ACO

O backend de ACO ten como obxectivo proporcionar unha xeración de código o máis óptima posible para os sombreadores de aplicacións de xogos, ademais de acadar unha velocidade de compilación moi alta. ACO está escrito en C++, deseñado pensando na compilación JIT e utiliza estruturas de datos iterativas rápidas, evitando estruturas baseadas en punteiros. A representación intermedia do código baséase enteiramente en SSA (Static Single Assignment) e permite a asignación de rexistros calculando previamente o rexistro con precisión dependendo do sombreador.

Ademais: polo momento, ACO só funciona para o controlador Mesa RADV Vulkan. Pero os desenvolvedores de ACO confirmadoque o seu seguinte paso será comezar a traballar na expansión das capacidades de ACO para admitir o controlador RadeonSI OpenGL, para que no futuro, para este controlador, ACO poida substituír o compilador de sombreadores LLVM predeterminado.

Fonte: opennet.ru

Engadir un comentario