ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ Collabora
ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Mesa Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ , ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΡ OpenCL ΠΈ OpenGL, Π° ΡΠ°ΠΊΠΆΠ΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΠ°ΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π΄Π»Ρ ΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ OpenGL/OpenCL-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΠ²Π΅ΡΡ D3D12. ΠΠ»Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ GPU ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ OpenCL ΠΈ OpenGL, ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ D3D12.
ΠΠ· Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΡ
ΠΏΠ»Π°Π½ΠΎΠ² ΠΎΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡ
ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠΎΠ² Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ OpenCL 1.2 ΠΈ OpenGL 3.3, ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ ΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π°ΡΠ°Π±ΠΎΡΠΎΠΊ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΎΡΡΠ°Π² Mesa. Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π²Π΅Π΄ΡΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ°ΠΌΠΈ Microsoft, ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΠΈΠΌΠΈ
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Gallium-Π΄ΡΠ°ΠΉΠ²Π΅Ρ, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ OpenCL, OpenCL runtime ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ² NIR-to-DXIL, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ΅ Π² Mesa ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ² NIR Π² Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ DXIL (DirectX Intermediate Language), ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠΉ Π² DirectX 12 ΠΈ ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° Π±ΠΈΡΠΊΠΎΠ΄Π΅ LLVM 3.7 (
ΠΡΡ
ΠΎΠ΄Π½ΡΠ΅ ΡΠ΅ΠΊΡΡΡ Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ OpenCL ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΡΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ clang Π² ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ ΠΏΡΠ΅Π²Π΄ΠΎΠΊΠΎΠ΄ LLVM (LLVM IR), ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΡΠ΅ΠΌ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΡΡΡ Π² ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ OpenCL-ΡΠ΄Π΅Ρ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ SPIR-V. Π―Π΄ΡΠ° Π² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ SPIR-V ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π² Mesa, ΡΡΠ°Π½ΡΠ»ΠΈΡΡΡΡΡΡ Π² ΡΠΎΡΠΌΠ°Ρ NIR, ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΡΡΡΡ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π² NIR-to-DXIL Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ² Π² ΡΠΎΡΠΌΠ°ΡΠ΅ DXIL, ΠΏΡΠΈΠ³ΠΎΠ΄Π½ΠΎΠΌ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π° GPU c ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ runtime Π½Π° Π±Π°Π·Π΅ DirectX 12.
ΠΠΌΠ΅ΡΡΠΎ Clover, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠΉ Π² Mesa ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ OpenCL, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ Π½ΠΎΠ²ΡΠΉ OpenCL runtime, Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡΠΈΠΉ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΡΡΠΌΡΡ
ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ Π² API DirectX 12.
OpenCL ΠΈ OpenGL Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Ρ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ Π² Mesa ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Gallium, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π³ΠΎ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² Π½Π΅ ΡΠ³Π»ΡΠ±Π»ΡΡΡΡΡ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠ΅ Π΄Π»Ρ OpenGL Π΄Π΅ΡΠ°Π»ΠΈ ΠΈ ΡΡΠ°Π½ΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ·ΠΎΠ²Ρ OpenGL Π² ΡΡΡΠ½ΠΎΡΡΠΈ, Π±ΠΎΠ»Π΅Π΅ Π±Π»ΠΈΠ·ΠΊΠΈΠ΅ ΠΊ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π°ΠΌ, ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΎΠΏΠ΅ΡΠΈΡΡΡΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ GPU. Gallium-Π΄ΡΠ°ΠΉΠ²Π΅Ρ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ OpenGL ΠΈ ΠΏΡΠΈ ΠΏΡΠΈΠ²Π»Π΅ΡΠ΅Π½ΠΈΠΈ ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠ° NIR-to-DXIL
ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ Π±ΡΡΠ΅ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½Π° GPU, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΄ΡΠ°ΠΉΠ²Π΅Ρ D3D12.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru