Wine төсөл нь Direct3D 1.3 хэрэгжүүлэлттэй Vkd3d 12 хувилбарыг гаргасан

Бүтэн жил хагас хөгжүүлсний дараа Wine төсөл нь Vulkan график API руу дамжуулах дуудлагуудаар ажилладаг Direct3D 1.3 хэрэгжүүлэлт бүхий vkd3d 12 багцыг нийтлэв. Энэхүү багцад Direct3D 3-ийн хэрэгжилт бүхий libvkd12d номын сангууд, 3 ба 4-р шэйдер загваруудын орчуулагчтай libvkd5d-shader, Direct3D 3 програмуудыг зөөвөрлөхөд хялбар болгох функц бүхий libvkd12d-utils, портыг багтаасан үзүүлэнгийн жишээнүүд багтсан болно. of glxgears Direct3D 12. Төслийн кодыг LGPLv2.1-ийн дагуу лицензээр тараасан.

Libvkd3d номын сан нь график болон тооцооллын хэрэгсэл, дараалал болон тушаалын жагсаалт, бариул болон овоолгын бариул, үндсэн гарын үсэг, захиалгат хандалт, түүвэрлэгчид, тушаалын гарын үсэг, үндсэн тогтмолууд, шууд бус дүрслэл, цэвэрлэх аргууд зэрэг Direct3D 12-ын ихэнх функцуудыг дэмждэг *( ) болон Хуулах*().

libvkd3d-shader-д шэйдерийн 4 ба 5-р загваруудын байт кодыг завсрын SPIR-V дүрслэл болгон хөрвүүлэх ажлыг гүйцэтгэдэг. Vertex, pixel, tessellation, тооцоолох болон энгийн геометрийн шэйдерүүд, root гарын үсгийг цуваа болгох, цуваа салгах зэргийг дэмждэг. Шэйдерийн зааварт арифметик, атомын болон битийн үйлдлүүд, харьцуулах болон өгөгдлийн урсгалын хяналтын операторууд, дээж авах, цуглуулах, ачаалах заавар, захиалгагүй хандалтын үйлдлүүд (UAV, Unordered Access View) багтана.

Vkd3d 1.3-ийн хамгийн чухал шинэлэг зүйлүүд нь:

  • DirectX 9.0-ээс эхлэн HLSL (High-Level Shader Language) дээр шэйдерүүдийг эмхэтгэх, урьдчилан боловсруулах анхны дэмжлэгийг нэмсэн.
  • 5.1 шэйдер загварт тодорхойлсон тодорхойлогч массивуудын дэмжлэгийг нэмсэн.
  • Шэйдер дэх давхар нарийвчлалтай хөвөгч цэгийн үйлдлүүдийг дэмжих, tessellation shader-ийн шууд бус хаяглалт, шэйдерүүдээс stencils экспортлох, "нарийн" шэйдер хувиргагч, санах ойн нөөцөд дэлхийн саад бэрхшээлийг бий болгодог.
  • Direct3D шэйдерүүдийг байт кодоос угсралтын дүрслэл болгон задлах чадварыг хэрэгжүүлсэн.
  • Direct3D 3, 1, 2 шэйдер загварт хэрэглэгддэг хуучин Direct3D байт кодын форматыг задлан шинжлэхэд дэмжлэг нэмсэн.
  • libvkd3d нь Direct3D 12 функцийг нэмдэг, тухайлбал root гарын үсэг, дараалалгүй харах тоолуур, гаралтын логик нэгтгэх операторууд, mirror_once texture хаяглах горим. Vkd3d_host_time_domain_info бүтцийг нэмсэн.

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

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