Dalaivala wa RADV Vulkan wasinthidwa kuti agwiritse ntchito ACO shader compilation backend

Mu codebase yomwe imagwiritsidwa ntchito kupanga kutulutsidwa kwa Mesa 20.2, zakhazikitsidwa kusintha RADV, dalaivala wa Vulkan wa tchipisi ta AMD, kuti agwiritse ntchito zotsalira popanga shaders "ACO", yomwe ikupangidwa ndi Valve ngati njira ina ya LLVM shader compiler. Kusintha kumeneku kudzapangitsa kuti masewerawa achuluke komanso kuchepetsa nthawi yoyambitsa. Kuti mubwezeretse zakale zakumbuyo, zosintha zachilengedwe "RADV_DEBUG=llvm" zimaperekedwa.

Kusintha dalaivala wa RADV kupita ku backend yatsopano kunatheka pambuyo poti ACO idakwaniritsa magwiridwe antchito ndi kumbuyo kwakale komwe AMD idapangidwa kwa woyendetsa AMDGPU, yomwe ikupitilizabe kugwiritsidwa ntchito mu driver wa RadeonSI OpenGL. Kuyesedwa ndi Valve kuwululidwakuti ACO ndi pafupifupi kawiri mofulumira monga AMDGPU shader compiler malinga ndi liwiro la kuphatikiza ndikuwonetsa kuwonjezeka kwa FPS mu masewera ena pamene akuthamanga pa machitidwe ndi dalaivala RADV.

Dalaivala wa RADV Vulkan wasinthidwa kuti agwiritse ntchito ACO shader compilation backend

Dalaivala wa RADV Vulkan wasinthidwa kuti agwiritse ntchito ACO shader compilation backend

The ACO backend cholinga chake ndi kupereka ma code omwe ali abwino momwe angathere kwa ma shader ogwiritsira ntchito masewera, komanso kukwaniritsa kuthamanga kwambiri. ACO imalembedwa mu C ++, yopangidwa ndi kupangidwa kwa JIT m'maganizo, ndipo imagwiritsa ntchito ma data ofulumira, kupeΕ΅a mapangidwe a pointer. Kuyimilira kwapakatikati kwa kachidindo kumakhazikitsidwa kwathunthu pa SSA (Static Single Assignment) ndipo imalola kugawa kwa registry powerengera molondola kaundula kutengera shader.

Kuwonjezera: Pakalipano, ACO imangogwira ntchito kwa dalaivala wa Mesa RADV Vulkan. Koma opanga ACO anatsimikizira, kuti chotsatira chawo chikhale kuyamba ntchito yowonjezera mphamvu za ACO kuti apereke chithandizo kwa dalaivala wa RadeonSI OpenGL, kotero kuti mtsogolomu, kwa dalaivala uyu, ACO akhoza kusintha makina osasintha a LLVM shader.

Source: opennet.ru

Kuwonjezera ndemanga