Collabora ืžืคืชื—ืช ืชื•ืกืฃ ืœื”ืคืขืœืช OpenCL ื•-OpenGL ืขืœ ื’ื‘ื™ DirectX

ื—ื‘ืจืช Collabora ืžื•ืฆื’ ืžื ื”ืœ ื”ืชืงืŸ Gallium ื—ื“ืฉ ืขื‘ื•ืจ Mesa, ื”ืžื™ื™ืฉื ืฉื›ื‘ื” ืœืืจื’ื•ืŸ ื”ืขื‘ื•ื“ื” ืฉืœ ืžืžืฉืงื™ ื”-API ืฉืœ OpenCL 1.2 ื•-OpenGL 3.3 ืขืœ ื’ื‘ื™ ืžื ื”ืœื™ ื”ืชืงื ื™ื ื”ืชื•ืžื›ื™ื ื‘-DirectX 12 (D3D12). ืงื•ื“ ืคื•ืจืกื ืชื—ืช ืจื™ืฉื™ื•ืŸ MIT.

ื”ื“ืจื™ื™ื‘ืจ ื”ืžื•ืฆืข ืžืืคืฉืจ ืœืš ืœื”ืฉืชืžืฉ ื‘-Mesa ื‘ืžื›ืฉื™ืจื™ื ืฉืื™ื ื ืชื•ืžื›ื™ื ื‘ืื•ืคืŸ ืžืงื•ืจื™ ื‘-OpenCL ื•-OpenGL, ื•ื’ื ื›ื ืงื•ื“ืช ื”ืชื—ืœื” ืœื”ืขื‘ืจืช ื™ื™ืฉื•ืžื™ OpenGL/OpenCL ืœื”ืคืขืœื” ืขืœ ื’ื‘ื™ D3D12. ืขื‘ื•ืจ ื™ืฆืจื ื™ GPU, ืชืช-ื”ืžืขืจื›ืช ืžืืคืฉืจืช ืœืกืคืง ืชืžื™ื›ื” ืขื‘ื•ืจ OpenCL ื•-OpenGL, ืื ืจืง ืžื ื”ืœื™ ื”ืชืงื ื™ื ืขื ืชืžื™ื›ื” ื‘-D3D12 ื–ืžื™ื ื™ื.

ื‘ื™ืŸ ื”ืชื•ื›ื ื™ื•ืช ื”ืžื™ื™ื“ื™ื•ืช ื ื™ืชืŸ ืœืžื ื•ืช ื”ืฉื’ืช ืขืžื™ื“ื” ืžืœืื” ื‘ืžื‘ื—ื ื™ ื”ืชืื™ืžื•ืช ืฉืœ OpenCL 1.2 ื•-OpenGL 3.3, ื‘ื“ื™ืงืช ืชืื™ืžื•ืช ืœืืคืœื™ืงืฆื™ื•ืช ื•ื”ื›ืœืœืช ืคื™ืชื•ื—ื™ื ื‘ื”ืจื›ื‘ ื”ืจืืฉื™ ืฉืœ Mesa. ื”ืคื™ืชื•ื— ืžืชื‘ืฆืข ื‘ืžืฉื•ืชืฃ ืขื ืžื”ื ื“ืกื™ ืžื™ืงืจื•ืกื•ืคื˜ ื”ืžืคืชื—ื™ื ืคืชื•ื— ื›ืœื™ื D3D11On12 ืœื”ืขื‘ืจืช ืžืฉื—ืงื™ื ืž-D3D11 ืœ-D3D12 ื•ืกืคืจื™ื™ื” ืฉื›ื‘ืช ืชืจื’ื•ื D3D12, ื”ืžื™ื™ืฉืžืช ืคืจื™ืžื™ื˜ื™ื‘ื™ื ื’ืจืคื™ื™ื ืกื˜ื ื“ืจื˜ื™ื™ื ืขืœ ื’ื‘ื™ D3D12.

ื”ื”ื˜ืžืขื” ื›ื•ืœืœืช ืืช ืžื ื”ืœ ื”ื”ืชืงืŸ ืฉืœ Gallium, ืžื”ื“ืจ OpenCL, OpenCL runtime ื•ืžื”ื“ืจ ื”ืฆืœืœื” NIR-to-DXIL, ื”ืžืžื™ืจ ืืช ื™ื™ืฆื•ื’ ื”ื‘ื™ื ื™ื™ื ืฉืœ ื”ืฆืœืœื•ืช NIR ื”ืžืฉืžืฉื•ืช ื‘-Mesa ืœืคื•ืจืžื˜ ื”ื‘ื™ื ืืจื™ DXIL (DirectX Intermediate Language), ื”ื ืชืžืš ื‘-DirectX 12 ื•ืžื‘ื•ืกืก ืขืœ LLVM 3.7 bitcode (DirectX Shader ืžื”ื“ืจ ืžืžื™ืงืจื•ืกื•ืคื˜ ื”ื•ื ื‘ืขืฆื ืžื–ืœื’ ืžื•ืจื—ื‘ ืฉืœ LLVM 3.7). ื”ืžื”ื“ืจ ืฉืœ OpenCL ืžื•ื›ืŸ ืขืœ ืกืžืš ื”ืคื™ืชื•ื—ื™ื ืฉืœ ื”ืคืจื•ื™ืงื˜ ื•ื”ื›ืœื™ื ืฉืœ LLVM SPIRV-LLVM.

ืžืงื•ืจื•ืช ืขื ื”ืจื—ื‘ื•ืช OpenCL ืžื•ืจื›ื‘ื™ื ื‘ืืžืฆืขื•ืช clang ืœืชื•ืš Pseudocode LLVM ื‘ื™ื ื™ื™ื (LLVM IR), ืืฉืจ ืœืื—ืจ ืžื›ืŸ ืžื•ืžืจ ืœื™ื™ืฆื•ื’ ื‘ื™ื ื™ื™ื ืฉืœ ืœื™ื‘ื•ืช OpenCL ื‘ืคื•ืจืžื˜ SPIR-V. ืœื™ื‘ื•ืช ื‘ื™ื™ืฆื•ื’ SPIR-V ืžื•ืขื‘ืจื•ืช ืœ-Mesa, ืžืชื•ืจื’ืžื•ืช ืœืคื•ืจืžื˜ NIR, ืขื•ื‘ืจื•ืช ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ื•ืžื•ืขื‘ืจื•ืช ืœ-NIR-to-DXIL ืœื™ืฆื™ืจืช ื”ืฆืœืœื•ืช ืžื—ืฉื•ื‘ ื‘ืคื•ืจืžื˜ DXIL, ื”ืžืชืื™ืžื™ื ืœื‘ื™ืฆื•ืข ืขืœ GPUs ืชื•ืš ืฉื™ืžื•ืฉ ื‘ื–ืžืŸ ืจื™ืฆื” ืžื‘ื•ืกืก DirectX 12.
ื‘ืžืงื•ื Clover, ื™ื™ืฉื•ื OpenCL ื”ืžืฉืžืฉ ื‘-Mesa, ืžื•ืฆืข ื–ืžืŸ ืจื™ืฆื” ื—ื“ืฉ ืฉืœ OpenCL, ื”ืžืืคืฉืจ ื”ืžืจื•ืช ื™ืฉื™ืจื•ืช ื™ื•ืชืจ ืœ-DirectX 12 API.

Collabora ืžืคืชื—ืช ืชื•ืกืฃ ืœื”ืคืขืœืช OpenCL ื•-OpenGL ืขืœ ื’ื‘ื™ DirectX

ืžื ื”ืœื™ ื”ืชืงื ื™ื ืฉืœ OpenCL ื•-OpenGL ืžื•ื›ื ื™ื ื‘ืืžืฆืขื•ืช ืžืžืฉืง Gallium ื”ืžืกื•ืคืง ื‘-Mesa, ื”ืžืืคืฉืจ ืœืš ืœื™ืฆื•ืจ ื“ืจื™ื™ื‘ืจื™ื ืžื‘ืœื™ ืœื”ื™ื›ื ืก ืœืคืจื˜ื™ื ืกืคืฆื™ืคื™ื™ื ืœ-OpenGL ื•ืœืชืจื’ื ืงืจื™ืื•ืช OpenGL ื‘ืขืฆื ืงืจื•ื‘ ื™ื•ืชืจ ืœืคืจื™ืžื™ื˜ื™ื‘ื™ื ื”ื’ืจืคื™ื™ื ืฉืขืœื™ื”ื ืคื•ืขืœื™ื ืžืขื‘ื“ื™ GPU ืžื•ื“ืจื ื™ื™ื. ืžื ื”ืœ ื”ืชืงืŸ Gallium, ืžืงื‘ืœ ืคืงื•ื“ื•ืช OpenGL ื•ื‘ืขืช ืฉื™ืžื•ืฉ ื‘ืžืชืจื’ื NIR-to-DXIL
ื™ื•ืฆืจ ืžืื’ืจื™ ืคืงื•ื“ื•ืช ื”ืžื•ืคืขืœื™ื ื‘-GPU ื‘ืืžืฆืขื•ืช ืžื ื”ืœ ื”ื”ืชืงืŸ D3D12.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”