Возачот на RADV Vulkan е префрлен да го користи заднината на компилацијата на шејдерот ACO

Во базата на кодови што се користи за формирање на пораката Mesa 20.2, имплементирани префрлување на RADV, двигателот Vulkan за чипови AMD, за користење на стандардниот заден дел за компајлирање шејдери "АЦО ШПРТ“, кој го развива Valve како алтернатива на компајлерот за шејдер LLVM. Оваа промена ќе доведе до зголемени перформанси на играта и намалено време за лансирање. За враќање на стариот заден дел, се обезбедува променливата на околината „RADV_DEBUG=llvm“.

Префрлувањето на двигателот на RADV на новиот заден дел стана возможно откако ACO постигна паритет во функционалноста со стариот заднина развиен од AMD за двигателот AMDGPU, кој продолжува да се користи во двигателот RadeonSI OpenGL. Тестирање со вентил откриенодека ACO е речиси двојно побрз од компајлерот за шејдер AMDGPU во однос на брзината на компилација и демонстрира зголемување на FPS во некои игри кога работи на системи со двигател RADV.

Возачот на RADV Vulkan е префрлен да го користи заднината на компилацијата на шејдерот ACO

Возачот на RADV Vulkan е префрлен да го користи заднината на компилацијата на шејдерот ACO

Заднината на ACO е насочена кон обезбедување генерирање код што е што е можно пооптимално за шејдерите на апликациите за игри, како и постигнување многу голема брзина на компилација. ACO е напишана во C++, дизајнирана имајќи ја предвид компилацијата JIT и користи брзи итеративни структури на податоци, избегнувајќи структури базирани на покажувачи. Средното претставување на кодот е целосно засновано на SSA (Static Single Assignment) и овозможува распределба на регистарот со прецизно пресметување на регистарот во зависност од шејдерот.

Дополнување: Во моментов, ACO работи само за возачот на Mesa RADV Vulkan. Но, програмерите на ACO потврденодека нивниот следен чекор ќе биде да започнат со работа на проширување на можностите на ACO за поддршка на двигателот RadeonSI OpenGL, така што во иднина, за овој двигател, ACO може да го замени стандардниот компајлер за шејдер LLVM.

Извор: opennet.ru

Додадете коментар