Жил хагасын хөгжүүлэлтийн дараа Wine төсөл нь Vulkan график API руу дуудлага хөрвүүлэх замаар ажилладаг Direct3D 12 хэрэгжүүлэлт болох vkd3d 1.3 багцыг гаргасан. Багцад Direct3D 12 хэрэгжүүлэлттэй libvkd3d сангууд, 4 ба 5-р shader загваруудад зориулсан орчуулагчтай libvkd3d-shader, Direct3D 12 програмуудыг портлох ажлыг хялбарчлах функцтэй libvkd3d-utils, мөн glxgears-ийн Direct3D 12 руу порт оруулах зэрэг демо багцууд багтсан болно. Төслийн кодыг LGPLv2.1 лицензийн дагуу түгээдэг.
libvkd3d сан нь график болон тооцоолох хэрэгслүүд, командын дараалал болон жагсаалтууд, тодорхойлогч болон овоолгын тодорхойлогч, үндсэн гарын үсэг, дараалалгүй хандалт, дээж авагчид, командын гарын үсэг, үндсэн тогтмолууд, шууд бус дүрслэл, Clear*() болон Copy*() аргууд зэрэг Direct3D 12-ын ихэнх функцуудыг дэмждэг.
libvkd3d-shader-д шэйдерийн 4 ба 5-р загваруудын байт кодыг завсрын SPIR-V дүрслэл болгон хөрвүүлэх ажлыг гүйцэтгэдэг. Vertex, pixel, tessellation, тооцоолох болон энгийн геометрийн шэйдерүүд, root гарын үсгийг цуваа болгох, цуваа салгах зэргийг дэмждэг. Шэйдерийн зааварт арифметик, атомын болон битийн үйлдлүүд, харьцуулах болон өгөгдлийн урсгалын хяналтын операторууд, дээж авах, цуглуулах, ачаалах заавар, захиалгагүй хандалтын үйлдлүүд (UAV, Unordered Access View) багтана.
Vkd3d 1.3-ийн хамгийн чухал шинэчлэлүүдийн дунд:
- DirectX 9.0 хувилбараас хойш хэрэглэгдэж байсан HLSL (Өндөр түвшний шэйдер хэл) хэл дээр шэйдерүүдийг хөрвүүлэх болон урьдчилан боловсруулах анхны дэмжлэгийг нэмсэн.
- Shader Model 5.1-д тодорхойлсон тодорхойлогч массивуудын дэмжлэгийг нэмсэн.
- Шэйдерт давхар нарийвчлалтай хөвөгч цэгийн үйлдлүүд, шэйдерт зориулсан шууд бус хаяглалт, шэйдерээс трафарет экспортлох, "нарийн" шэйдерийн хувиргагч, санах ойн нөөцийн дэлхийн саад тотгорыг дэмжих боломжтой.
- Direct3D shaders-ийг байткодоос угсралтын дүрслэл хүртэл задлах чадварыг хэрэгжүүлсэн.
- Direct3D 1, 2, болон 3 shader загваруудад ашигласан хуучин Direct3D байткод форматыг задлан шинжлэх дэмжлэгийг нэмсэн.
- Direct3D 12 функцууд болох root signatures, эрэмбэлээгүй харах тоолуур, гаралтын логик нэгтгэх операторууд, мөн mirror_once текстур хаяглах горимыг libvkd3d файлд нэмсэн. vkd3d_host_time_domain_info бүтцийг нэмсэн.
Эх сурвалж: opennet.ru
