ืžื ื”ืœ ื”ื”ืชืงืŸ ืฉืœ RADV Vulkan ื”ื•ื—ืœืฃ ืœืฉื™ืžื•ืฉ ื‘-backend ืฉืœ ืื•ืกืฃ ACO shader

ื‘ื‘ืกื™ืก ื”ืงื•ื“ ืฉืฉื™ืžืฉ ืœื™ืฆื™ืจืช ืžื”ื“ื•ืจืช Mesa 20.2, ืžื•ื˜ืžืข ื”ื—ืœืคืช RADV, ืžื ื”ืœ ื”ื”ืชืงืŸ ืฉืœ Vulkan ืขื‘ื•ืจ ืฉื‘ื‘ื™ AMD, ืœืฉื™ืžื•ืฉ ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ื”ืื—ื•ืจื™ืช ืœื”ื™ื“ื•ืจ ื”ืฆืœืœื•ืช "ACO", ืืฉืจ ืžืคื•ืชื— ืขืœ ื™ื“ื™ Valve ื›ื—ืœื•ืคื” ืœืžื”ื“ืจ ื”ื”ืฆืœืœื” LLVM. ืฉื™ื ื•ื™ ื–ื” ื™ื•ื‘ื™ืœ ืœื”ื’ื‘ืจืช ื‘ื™ืฆื•ืขื™ ื”ืžืฉื—ืง ื•ืœืงื™ืฆื•ืจ ื–ืžืŸ ื”ื”ืฉืงื”. ื›ื“ื™ ืœื”ื—ื–ื™ืจ ืืช ื”ืงืฆื” ื”ืื—ื•ืจื™ ื”ื™ืฉืŸ, ืžืกื•ืคืง ืžืฉืชื ื” ื”ืกื‘ื™ื‘ื” "RADV_DEBUG=llvm".

ื”ื—ืœืคืช ืžื ื”ืœ ื”ื”ืชืงืŸ ืฉืœ RADV ืœ-backend ื”ื—ื“ืฉ ื”ืชืืคืฉืจื” ืœืื—ืจ ืฉ-ACO ื”ืฉื™ื’ื” ืฉื•ื•ื™ื•ืŸ ื‘ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืขื ื”-backend ื”ื™ืฉืŸ ืฉืคื•ืชื— ืขืœ ื™ื“ื™ AMD ืขื‘ื•ืจ ืžื ื”ืœ ื”ื”ืชืงืŸ ืฉืœ AMDGPU, ืืฉืจ ืžืžืฉื™ืš ืœืฉืžืฉ ื‘ืžื ื”ืœ ื”ื”ืชืงืŸ RadeonSI OpenGL. ื‘ื“ื™ืงื” ืขืœ ื™ื“ื™ Valve ื’ื™ืœื”ืฉ-ACO ืžื”ื™ืจ ื›ืžืขื˜ ืคื™ ืฉื ื™ื™ื ืžื”ืงื•ืžืคื™ื™ืœืจ ืฉืœ ื”-AMDGPU ื‘ืžื•ื ื—ื™ื ืฉืœ ืžื”ื™ืจื•ืช ืงื•ืžืคื™ืœืฆื™ื” ื•ืžื“ื’ื™ื ืขืœื™ื™ื” ื‘-FPS ื‘ืžืฉื—ืงื™ื ืžืกื•ื™ืžื™ื ื›ืืฉืจ ื”ื•ื ืคื•ืขืœ ืขืœ ืžืขืจื›ื•ืช ืขื ื“ืจื™ื™ื‘ืจ RADV.

ืžื ื”ืœ ื”ื”ืชืงืŸ ืฉืœ RADV Vulkan ื”ื•ื—ืœืฃ ืœืฉื™ืžื•ืฉ ื‘-backend ืฉืœ ืื•ืกืฃ ACO shader

ืžื ื”ืœ ื”ื”ืชืงืŸ ืฉืœ RADV Vulkan ื”ื•ื—ืœืฃ ืœืฉื™ืžื•ืฉ ื‘-backend ืฉืœ ืื•ืกืฃ ACO shader

ื”ืงืฆื” ื”ืื—ื•ืจื™ ืฉืœ ACO ืžื›ื•ื•ืŸ ืœืกืคืง ื™ืฆื™ืจืช ืงื•ื“ ืื•ืคื˜ื™ืžืœื™ืช ื›ื›ืœ ื”ืืคืฉืจ ืขื‘ื•ืจ ื”ืฆืœืœื•ืช ื™ื™ืฉื•ืžื™ ืžืฉื—ืงื™ื, ื›ืžื• ื’ื ื”ืฉื’ืช ืžื”ื™ืจื•ืช ืงื•ืžืคื™ืœืฆื™ื” ื’ื‘ื•ื”ื” ืžืื•ื“. ACO ื›ืชื•ื‘ ื‘-C++, ืžืชื•ื›ื ืŸ ืขื ืžื—ืฉื‘ื” ืขืœ ืงื•ืžืคื™ืœืฆื™ื” ืฉืœ JIT, ื•ืžืฉืชืžืฉ ื‘ืžื‘ื ื™ ื ืชื•ื ื™ื ืื™ื˜ืจื˜ื™ื‘ื™ื™ื ืžื”ื™ืจื™ื, ืชื•ืš ื”ื™ืžื ืขื•ืช ืžืžื‘ื ื™ื ืžื‘ื•ืกืกื™ ืžืฆื‘ื™ืข. ื™ื™ืฆื•ื’ ื”ื‘ื™ื ื™ื™ื ืฉืœ ื”ืงื•ื“ ืžื‘ื•ืกืก ื›ื•ืœื• ืขืœ SSA (Static Single Assignment) ื•ืžืืคืฉืจ ื”ืงืฆืืช ืจื’ื™ืกื˜ืจ ืขืœ ื™ื“ื™ ื—ื™ืฉื•ื‘ ืžื“ื•ื™ืง ืžืจืืฉ ืฉืœ ื”ืจื’ื™ืกื˜ืจ ื‘ื”ืชืื ืœื”ืฆืœืœื”.

ืชื•ืกืคืช: ื›ืจื’ืข, ACO ืขื•ื‘ื“ ืจืง ืขื‘ื•ืจ ืžื ื”ืœ ื”ื”ืชืงืŸ ืฉืœ Mesa RADV Vulkan. ืื‘ืœ ืžืคืชื—ื™ ACO ืžึฐืื•ึผืฉืึธืจืฉื”ืฉืœื‘ ื”ื‘ื ืฉืœื”ื ื™ื”ื™ื” ืœื”ืชื—ื™ืœ ื‘ืขื‘ื•ื“ื” ืขืœ ื”ืจื—ื‘ืช ื”ื™ื›ื•ืœื•ืช ืฉืœ ACO ืœืชืžื™ื›ื” ื‘ืžื ื”ืœ ื”ื”ืชืงืŸ RadeonSI OpenGL, ื›ืš ืฉื‘ืขืชื™ื“, ืขื‘ื•ืจ ืžื ื”ืœ ื”ืชืงืŸ ื–ื”, ACO ืชื•ื›ืœ ืœื”ื—ืœื™ืฃ ืืช ืžื”ื“ืจ ื”ื”ืฆืœืœื” ืฉืœ ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ืฉืœ LLVM.

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

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