ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ Collabora ΠΎΠ±ΡΡΠ²ΠΈΠ»Π° ΠΎ Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΠΈ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° panthor, ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ Π΄Π»Ρ Π΄Π΅ΡΡΡΠΎΠ³ΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΡ GPU Mali (G310, G510, G710), Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ CSF (Π‘ommand Stream Frontend), Π²ΡΠ½ΠΎΡΡΡΠ°Ρ Π½Π° ΡΡΠΎΡΠΎΠ½Ρ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π΄Π»Ρ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π° CPU ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡΠ°Ρ Π½ΠΎΠ²ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡ Π½Π° GPU. DRM-Π΄ΡΠ°ΠΉΠ²Π΅Ρ (Direct Rendering Manager) panthor ΠΏΡΠΈΠ½ΡΡ Π² Π²Π΅ΡΠΊΡ drm-misc ΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²ΠΎΠΉΠ΄ΡΡ Π² ΡΠΎΡΡΠ°Π² ΡΠ΄ΡΠ° Linux 6.10. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΠ½ΡΡΡ Π² Mesa ΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ Π² ΡΠΎΡΡΠ°Π² Gallium-Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° panfrost Π΄Π»Ρ GPU Mali.
Π Π½ΠΎΠ²ΠΎΠΌ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΈ GPU Mali ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ Job Manager Π·Π°ΠΌΠ΅Π½ΡΠ½ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ CSF (Command Stream Frontend), Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΠΌΠ΅ΡΡΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠ΅ΠΏΠΎΡΠΊΠΈ ΡΠ°Π±ΠΎΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠΎΡΠΎΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄ Ρ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΠΏΠΎΡΠΎΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ. ΠΠ»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π² GPU Π²ΡΡΡΠΎΠ΅Π½ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Cortex-M7, Π° Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ CSF ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π±Π»ΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ (Command Execution Unit). ΠΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΡΠ΅Π±ΡΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎ Π΄ΡΡΠ³ΠΎΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠ°Π±ΠΎΡ Π² GPU ΠΈΠ· ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π±ΡΠ»Π° ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ½ΡΡΠ° ΠΏΠΎΠΏΡΡΠΊΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ GPU Mali Π½Π° Π±Π°Π·Π΅ CSF Π² DRM-Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅ Panfrost, Π½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠΈΡΠ»ΠΈ ΠΊ Π²ΡΠ²ΠΎΠ΄Ρ, ΡΡΠΎ ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ Π±ΠΎΠ»ΡΡΠΎΠΌΡ ΡΡΠ»ΠΎΠΆΠ½Π΅Π½ΠΈΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° ΠΈ Π΄Π»Ρ CSF Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°, ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ. Π Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅ panthor ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π½ΠΎΠ²ΡΠΉ uAPI, Π½ΠΎΠ²Π°Ρ Π»ΠΎΠ³ΠΈΠΊΠ° ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°Π±ΠΎΡ ΠΈ Π½ΠΎΠ²Π°Ρ Π»ΠΎΠ³ΠΈΠΊΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ MMU/GPU-VA. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ½ΠΎΠ²Ρ Π΄Π»Ρ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ DRM-Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Panfrost, ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½Ρ ΡΠΈΠΏΠΎΠ²ΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ°ΡΡΠΎΡΠΎΠΉ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ.
ΠΠ΅ΡΠ²ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½ΠΎΠ²ΠΎΠ³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π²Π΅Π»Π°ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΠΆΠΈΠ½ΠΈΡΠΈΠ½Π³Π°, Π½ΠΎ Π·Π°ΡΠ΅ΠΌ ΠΊ ΠΏΡΠΎΠ΅ΠΊΡΡ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΠ»Π°ΡΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ ARM, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΠ»Π° Π΄ΠΎΡΡΡΠΏ ΠΊ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈ ΠΏΡΠΈΠ½ΡΠ»Π° ΡΡΠ°ΡΡΠΈΠ΅ Π² ΡΠ΅ΡΠ΅Π½Π·ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠ΄Π°. ΠΠ²Π° ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ° ARM ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΡΡΠ°ΡΡΡ ΠΏΠΎΠΌΠΎΡΠ½ΠΈΠΊΠΎΠ² ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°ΡΡΠ΅Π³ΠΎ (co-maintainer) Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π΄Π»Ρ ΡΠ΄ΡΠ° Linux. Π Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΠΏΠΎΡΠ»Π΅ Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΠΈ OpenGL-Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° ΡΠ°Π±ΠΎΡΠ° Π±ΡΠ΄Π΅Ρ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠ΅Π½Π° Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Vulkan-Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π΄Π»Ρ Π½ΠΎΠ²ΡΡ GPU Mali ΠΈ ΠΌΠΎΠ΄Π΅ΡΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ Vulkan-Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π΄Π»Ρ ΡΡΠ°ΡΡΡ GPU Mali.
ΠΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ, ΡΡΠΎ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΠΉ Π΄ΡΠ°ΠΉΠ²Π΅Ρ panthor ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ GPU Π½Π° ΠΏΠ»Π°ΡΠ°Ρ
c SoC Rockchip RK3588. ΠΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Collabora ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΠ΄Π΅Π»Π°Π½Π° ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΠ»Π°Ρ Π½Π° Π±Π°Π·Π΅ Rockchip RK3588 Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ΅ΠΊΠ°. ΠΠ»Ρ Rockchip RK3588 ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΠΎΠ±ΡΠ°Π· Π½Π° Π±Π°Π·Π΅ Debian ΠΈ ΠΎΡΠΊΡΡΡΡΠΉ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ Π΄Π»Ρ Π·Π°ΠΌΠ΅Π½Ρ ΠΏΡΠΎΠΏΡΠΈΠ΅ΡΠ°ΡΠ½ΡΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² BL31 (Boot Loader stage 3.1).
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru