Llegan los controladores Mesa 19.3.0 con mas extensiones, mayor soporte y mucho mas
Los controladores Mesa son software para Linux de código abierto disponibles para hardware AMD, NVIDIA e Intel. El proyecto de Mesa comenzó como una implementación de código abierto de la especificación OpenGL (un sistema para la representación de gráficos 3D interactivos).
A través de los años, el proyecto creció a implementar más API de gráficos, incluyendo OpenGL ES (versiones 1, 2, 3), OpenCL, OpenMAX, VDPAU, VA API, XvMC y Vulkan. Una variedad de controladores de dispositivos permite a las bibliotecas Mesa ser utilizada en muchos entornos diferentes, desde la emulación de software para completar la aceleración de hardware para las GPU modernas.
Mesa implementa una capa de traducción independiente del fabricante entre un API de gráficos como OpenGL y los controladores de gráficos en el núcleo del sistema operativo.
¿Qué hay de nuevo en Mesa 19.3.0?
Se dio a conocer recientemente el lanzamiento de la Mesa 19.3.0, siendo esta la primera versión de la rama Mesa que tiene un estado experimental, la cual después de la estabilización final del código, se lanzará una versión estable en Mesa 19.3.1.
Mesa 19.3.0 proporciona soporte completo OpenGL 4.6 para GPU Intel (i965, controladores de iris), soporte OpenGL 4.5 para GPU AMD (r600, radeonsi) y NVIDIA (nvc0), así como soporte Vulkan 1.1 para tarjetas Intel y AMD.
Para RADV (controlador Vulkan para chips AMD) un nuevo backend para compilar sombreadores ” ACO”, que está desarrollando Valve como una alternativa al compilador de sombreadores LLVM. El objetivo del backend es garantizar que el código se genere de la manera mejor posible para los sombreadores de aplicaciones de juegos y lograr una velocidad de compilación muy alta.
ACO está escrito en C ++ y se está desarrollando con el objetivo de poder usar para la compilación JIT y utiliza estructuras de datos rápidas para iterar, evitando estructuras basadas en punteros.
La representación de código intermedio se basa completamente en SSA (asignación única estática) y permite asignación de registro, precalculando con precisión el registro dependiendo del sombreador ACO se puede activar para la GPU Vega 8, Vega 9, Vega 10, Vega 20 y Navi 10 configurando la variable de entorno “RADV_PERFTEST = aco”;
El controlador Zink Gallium3D está incluido en la base del código, que implementa la API OpenGL encima de Vulkan. Zink le permite obtener OpenGL acelerado por hardware si hay controladores en el sistema que se limitan a admitir solo la API de Vulkan.
El controlador ANV Vulkan y el controlador iris OpenGL proporcionan soporte inicial para la 12a generación de chips Intel (Tiger Lake, gen12). En el kernel de Linux, los componentes de soporte de Tiger Lake se han incluido desde la versión 5.4;
Los controladores i965 e iris proporcionaron soporte para la presentación intermedia de los sombreadores SPIR-V, lo que permitió lograr un soporte completo para OpenGL 4.6 en estos controladores.
Se ha agregado soporte para GPU AMD Navi 14 al controlador RadeonSI y se han mejorado las herramientas de aceleración de decodificación de video, por ejemplo, se ha agregado soporte para decodificación de video 8K en formatos H.265 y VP9;
La compatibilidad con el modo de compilación protegido se ha agregado al controlador Vulkan de RADV, en el que las secuencias que se ejecutan para compilar sombreadores se aíslan mediante el mecanismo seccomp.
Los controladores para chips AMD usan la interfaz del programa para restablecer la GPU que apareció en el módulo del núcleo AMDGPU.
Se ha trabajado para mejorar el rendimiento en sistemas con APU AMD Radeon. También mejoró el rendimiento del controlador Gallium3D Iris para las GPU Intel;
De las nuevas extensiones OpenGL agregadas que se destacan en el anuncio podremos encontrar:
- GL_ARB_gl_spirv para i965
- GL_ARB_spirv _para i965
- GL_EXT_demote_to_helper_invocation para i965
Extensiones Vulkan RADV para tarjetas AMD:
- VK_ANDROID_external_memory_android_hardware_buffer
- VK_EXT_shader_demote_to_helper_invocation
- VK_KHR_shader_clock
- VK_KHR_shader_float_controls
- VK_KHR_spirv_1_4
- VK_KHR_timeline_semaphore
- VK_EXT_texel_buffer_alignment
Extensiones ANV Vulkan para tarjetas Intel:
- VK_INTEL_performance_query
- VK_KHR_vulkan_memory_model
- VK_EXT_shader_subgroup_ballot
- VK_EXT_shader_subgroup_vote
- VK_KHR_spirv_1_4
- VK_KHR_shader_clock
- VK_KHR_shader_float_controls
Además, podemos observar la publicación por parte de AMD de la documentación sobre la arquitectura de los equipos APU “Vega” de 7 nm basados en la microarquitectura GCN (Graphics Core Next).
Finalmente toca espera a que esta nueva versión de los controladores Mesa comience a ser distribuido en las principales distribuciones de Linux durante los próximos días.