Wine նախագիծը թողարկեց Vkd3d 1.2-ը Direct3D 12-ի ներդրմամբ

Գինու նախագիծ հրատարակվել փաթեթի թողարկում vkd3d 1.2 Direct3D 12 ներդրմամբ, որն աշխատում է Vulkan գրաֆիկական API-ի հեռարձակման զանգերի միջոցով: Փաթեթը ներառում է libvkd3d գրադարաններ Direct3D 12-ի ներդրմամբ, libvkd3d-shader՝ 4 և 5 մոդելների թարգմանիչով և libvkd3d-utils՝ Direct3D 12 հավելվածների տեղափոխումը պարզեցնելու գործառույթներով, ինչպես նաև մի շարք ցուցադրական օրինակներ, ներառյալ պորտը: glxgears-ից դեպի Direct3D 12. Ծրագրի կոդը տարածվում է լիցենզավորված LGPLv2.1-ի համաձայն:

libvkd3d գրադարան աջակցում է Direct3D 12-ի առանձնահատկությունների մեծ մասը, ներառյալ գրաֆիկական և հաշվողական սարքերը, հերթերն ու հրամանների ցուցակները, բռնակները և կույտային բռնակները, արմատային ստորագրությունները, անկանխատեսելի մուտքը, նմուշառիչները, հրամանների ստորագրությունները, արմատային հաստատունները, անուղղակի մատուցումը, Clear*() մեթոդները: և Պատճենել*().

libvkd3d-shader-ում իրականացվում է 4-րդ և 5-րդ մոդելների բայթկոդի թարգմանությունը միջանկյալ SPIR-V ներկայացման մեջ: Աջակցվում են գագաթնակետ, պիքսել, թեսսելացիա, հաշվարկային և պարզ երկրաչափական ստվերներ, արմատային ստորագրության սերիալիզացիա և ապասերիալիզացիա: Shader-ի հրահանգները ներառում են թվաբանական, ատոմային և բիթային գործողություններ, համեմատության և տվյալների հոսքի վերահսկման օպերատորներ, նմուշառում, հավաքում և բեռնում հրահանգներ, չպատվիրված մուտքի գործողություններ (UAV, Unordered Access View):

Առավել նշանակալիցների շարքում նորամուծություններ Vkd3d 1.2-ում ընդգծված են հետևյալը.

  • libvkd3d-shader գրադարանը պատրաստ է օգտագործելու երրորդ կողմի նախագծերում:
  • Tessellation shader աջակցություն:
  • Աջակցություն արմատային ստորագրությունների փոխակերպման, սերիալացման և ապասերիալացման (vkd3d_serialize_versioned_root_signature() և vkd3d_create_versioned_root_signature_deserializer()):
  • Աջակցություն հոսքային ելքի համար:
  • Direct3D 12-ի նախկինում անհասանելի բազմաթիվ գործառույթների իրականացում, ներառյալ բազմակի նմուշառման աջակցություն, ռեսուրսների ամրագրում,
    անուղղակի ինդեքսավորված արտապատկերում, խորության մատուցում առանց պիքսելային շեյդերների, միաժամանակյա մուտք դեպի ռեսուրսներ տարբեր հրամանների հերթերից, Null-views:

  • Ավելացվել են շրջակա միջավայրի փոփոխականներ՝ VKD3D_CONFIG՝ libvkd3d-ի վարքագիծը փոխելու տարբերակները սահմանելու համար, և VKD3D_VULKAN_DEVICE՝ սարքը Vulkan API-ի համար փոխարինելու համար:
  • Ավելացվել է bufinfo shader հրահանգների աջակցություն,
    eval_centroid,
    eval_sample_index,
    ld2ms,
    նմուշ_բ,
    նմուշ_դ,
    նմուշ_տեղեկություն,
    նմուշներ.

Source: opennet.ru

Добавить комментарий