RADV Vulkan драйверийг ACO шэйдер эмхэтгэлийн арын хэсгийг ашиглахаар сольсон

Mesa 20.2 хувилбарыг бүрдүүлэхэд ашигласан кодын санд, хэрэгжүүлсэн AMD чипүүдэд зориулсан Vulkan драйвер болох RADV-г сольж, шэйдерүүдийг эмхэтгэхийн тулд анхдагч арын хэсгийг ашиглах "ACO", үүнийг LLVM шэйдер хөрвүүлэгчийн хувилбар болгон Valve боловсруулж байна. Энэ өөрчлөлт нь тоглоомын гүйцэтгэлийг нэмэгдүүлж, эхлүүлэх хугацааг багасгахад хүргэнэ. Хуучин арын хэсгийг буцаахын тулд “RADV_DEBUG=llvm” орчны хувьсагчийг өгсөн.

ACO нь RadeonSI OpenGL драйверт ашиглагдаж байгаа AMDGPU драйверт зориулан AMD-ээс боловсруулсан хуучин backend-тэй нийцэж ажилласны дараа RADV драйверийг шинэ арын хэсэгт шилжүүлэх боломжтой болсон. Valve-ийн туршилт харуулсанACO нь эмхэтгэлийн хурдаараа AMDGPU шэйдер хөрвүүлэгчээс бараг хоёр дахин хурдан бөгөөд RADV драйвертай систем дээр ажиллах үед зарим тоглоомуудад FPS нэмэгдэж байгааг харуулж байна.

RADV Vulkan драйверийг ACO шэйдер эмхэтгэлийн арын хэсгийг ашиглахаар сольсон

RADV Vulkan драйверийг ACO шэйдер эмхэтгэлийн арын хэсгийг ашиглахаар сольсон

ACO backend нь тоглоомын програмын шэйдерүүдэд аль болох оновчтой код үүсгэх, мөн эмхэтгэлийн маш өндөр хурдыг бий болгоход чиглэгддэг. ACO нь C++ хэл дээр бичигдсэн, JIT эмхэтгэлийг харгалзан боловсруулсан бөгөөд заагч дээр суурилсан бүтцээс зайлсхийж, хурдан давтагдах өгөгдлийн бүтцийг ашигладаг. Кодын завсрын дүрслэл нь бүхэлдээ SSA (Static Single Assignment) дээр суурилдаг бөгөөд шэйдерээс хамааран регистрийг нарийн урьдчилан тооцоолсноор бүртгэлийн хуваарилалтыг хийх боломжийг олгодог.

Нэмэлт: Одоогоор ACO нь зөвхөн Mesa RADV Vulkan драйверт зориулагдсан. Гэхдээ ACO хөгжүүлэгчид батлагдсанТэдний дараагийн алхам нь RadeonSI OpenGL драйверийг дэмжих ACO-ийн чадавхийг өргөжүүлэх ажлыг эхлүүлэх бөгөөд ингэснээр ирээдүйд энэ драйверын хувьд ACO нь анхдагч LLVM шэйдер хөрвүүлэгчийг солих боломжтой болно.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх