เป„เบ”เป€เบงเบต RADV Vulkan เป„เบ”เป‰เบ–เบทเบเบ›เปˆเบฝเบ™เป„เบ›เปƒเบŠเป‰ ACO shader compilation backend

เปƒเบ™ codebase เบ—เบตเปˆเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡ Mesa 20.2 เบ›เปˆเบญเบ, เบ›เบฐเบ•เบดเบšเบฑเบ” เบ›เปˆเบฝเบ™ RADV, เป„เบ”เป€เบงเบต Vulkan เบชเปเบฒเบฅเบฑเบšเบŠเบดเบš AMD, เป€เบžเบทเปˆเบญเปƒเบŠเป‰ backend เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฅเบงเบšเบฅเบงเบก shaders "ACOโ€œ, เป€เบŠเบดเปˆเบ‡เบ–เบทเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเป‚เบ”เบ Valve เป€เบ›เบฑเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™ LLVM shader. เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ™เบตเป‰เบˆเบฐเบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป€เบเบกเปเบฅเบฐเบเบฒเบ™เบซเบผเบธเบ”เบœเปˆเบญเบ™เป€เบงเบฅเบฒเป€เบ›เบตเบ”เบ•เบปเบง. เป€เบžเบทเปˆเบญเบชเบปเปˆเบ‡เบ„เบทเบ™ backend เป€เบเบปเปˆเบฒ, เบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก "RADV_DEBUG=llvm" เปเบกเปˆเบ™เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰.

เบเบฒเบ™เบ›เปˆเบฝเบ™เป„เบ”เป€เบงเบต RADV เป„เบ›เบซเบฒ backend เปƒเบซเบกเปˆเป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบซเบผเบฑเบ‡เบˆเบฒเบ ACO เบšเบฑเบ™เบฅเบธเบ„เบงเบฒเบกเบชเบฐเป€เบซเบกเบตเบžเบฒเบšเปƒเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš backend เป€เบเบปเปˆเบฒเบ—เบตเปˆเบžเบฑเบ”เบ—เบฐเบ™เบฒเป‚เบ”เบ AMD เบชเปเบฒเบฅเบฑเบšเป„เบ”เป€เบงเบต AMDGPU, เป€เบŠเบดเปˆเบ‡เบชเบทเบšเบ•เปเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เป„เบ”เป€เบงเบต RadeonSI OpenGL. เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเป‚เบ”เบ Valve เป€เบ›เบตเบ”เป€เบœเบตเบเบงเปˆเบฒ ACO เปเบกเปˆเบ™เป€เบเบทเบญเบšเบชเบญเบ‡เป€เบ—เบปเปˆเบฒเป„เบงเป€เบ—เบปเปˆเบฒเบ—เบตเปˆ AMDGPU shader compiler เปƒเบ™เปเบ‡เปˆเบ‚เบญเบ‡เบ„เบงเบฒเบกเป„เบงเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเปเบฅเบฐเบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เป€เบ–เบดเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ‚เบทเป‰เบ™เบ‚เบญเบ‡ FPS เปƒเบ™เบšเบฒเบ‡เป€เบเบกเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเปเบฅเปˆเบ™เบขเบนเปˆเปƒเบ™เบฅเบฐเบšเบปเบšเบ—เบตเปˆเบกเบตเป„เบ”เป€เบงเบต RADV.

เป„เบ”เป€เบงเบต RADV Vulkan เป„เบ”เป‰เบ–เบทเบเบ›เปˆเบฝเบ™เป„เบ›เปƒเบŠเป‰ ACO shader compilation backend

เป„เบ”เป€เบงเบต RADV Vulkan เป„เบ”เป‰เบ–เบทเบเบ›เปˆเบฝเบ™เป„เบ›เปƒเบŠเป‰ ACO shader compilation backend

ACO backend เบกเบตเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบ—เบตเปˆเบชเบธเบ”เป€เบ—เบปเปˆเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบชเปเบฒเบฅเบฑเบš shaders เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เป€เบเบก, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบšเบฑเบ™เบฅเบธเบ„เบงเบฒเบกเป„เบงเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบชเบนเบ‡เบซเบผเบฒเบ. ACO เบ–เบทเบเบ‚เบฝเบ™เป„เบงเป‰เปƒเบ™ C++, เบญเบญเบเปเบšเบšเบ”เป‰เบงเบเบเบฒเบ™เบฅเบงเบšเบฅเบงเบก JIT เบขเบนเปˆเปƒเบ™เปƒเบˆ, เปเบฅเบฐเปƒเบŠเป‰เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เปเป‰เบกเบนเบ™เปเบšเบšเบŠเปเป‰เบฒเป†เป„เบง, เบซเบผเบตเบเป€เบงเบฑเป‰เบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆเบ•เบปเบงเบŠเบตเป‰. เบเบฒเบ™เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เบฅเบฐเบ”เบฑเบšเบ›เบฒเบ™เบเบฒเบ‡เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เปเบกเปˆเบ™เบญเบตเบ‡เปƒเบชเปˆเบ—เบฑเบ‡เบซเบกเบปเบ” SSA (Static Single Assignment) เปเบฅเบฐเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เป‚เบ”เบเบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡เป‚เบ”เบเบญเบตเบ‡เบ•เบฒเบก shader.

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™: เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, ACO เบžเบฝเบ‡เปเบ•เปˆเป€เบฎเบฑเบ”เบงเบฝเบเบชเปเบฒเบฅเบฑเบšเบ„เบปเบ™เบ‚เบฑเบš Mesa RADV Vulkan. เปเบ•เปˆเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ ACO เบขเบทเบ™เบขเบฑเบ™เบงเปˆเบฒเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ•เปเปˆเป„เบ›เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเปเบกเปˆเบ™เป€เบžเบทเปˆเบญเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ‚เบญเบ‡ ACO เป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป„เบ”เป€เบงเบต RadeonSI OpenGL, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”, เบชเปเบฒเบฅเบฑเบšเป„เบ”เป€เบงเบตเบ™เบตเป‰, ACO เบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เปเบ—เบ™ LLVM shader compiler เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™