Ամենէն նոր DXVK (Direct3D-էն Vulkan-ի ժամանակավոր շերտ) նոր տարբերակը թողարկվել է 6 ամիս պլանավորումներից հետո, բաց համայնքային գրադարան, որը փոխարկում է Direct3D 8, 9, 10 և 11 API զանգերը Vulkan հրամանների: Այն թույլ է տալիս գործարկել 3D ծրագիրներ և խաղեր, որոնք մշակվել են Windows-ի համար, համակարգերում, որտեղ չկա բնօրինակ Direct3D աջակցություն, օգտվելով Vulkan առավել արդյունավետ գրաֆիկական API հնարավորություններից:
Հիմնական փոփոխություններ
Նոր տարբերակում իրականացված է անցումը Vulkan 1.4 սպեցիպիկացիաների և ընդլայնումների օգտագործմանը, ինչը անհրաժեշտ է համատեղելի ձայնագրիչ.
DXVK-ն այժմ օգտագործում է dxbc-spirv բոլոր աջակցվող շեյդեր մոդելների համար շեյդերները լրացնելու համար: Սա վերացնում է մի շարք հարցեր, որոնք նախկինում անկարելի էին լուծել:
Խաղերում ռենդերավորման հետ կապված խնդիրներ, որոնք առաջանում են կամ խաղերի կախվածությունից, կամ FXC-ի կողմից որոշ դեպքերում սխալ կոդ արտադրելու հետեւանքով, ինչպես Postal: Brain Damaged, Snowrunner
Արտադրված կոդը ավելի համափռված է, քան պարզապես փոխարկված SPIR-V կոդը, ինչը զգալիորեն նվազեցնում է DXVK-ի զբաղեցրած հիշողությունը: Արժեքի խաղերում, ինչպիսիք են Overwatch կամ God of War, դա թույլ է տալիս խնայել մոտ 1 ԳԲ համակարգային հիշողություն:
Շեյդերների մշակումն այժմ լիովին անցեց աշխատանքային թելերի վրա, ինչը կարող է կրճատել մեկնարկի ժամանակը Days Gone և Final Fantasy XIV նման խաղերում, կամ որոշ դեպքերում նվազեցնել ձգձգումները: Նախկինում DXVK-ն SPIR-V-ը փչացնում էր էկրանին խաղի ընթացքում և իրական Vulkan կոնվեյերներ էր մշակում աշխատանքային պրոցեսներում:
DXVK-ի վերածվող շեյդերների միջանկյալ ներկայացումը այժմ кешվում է սկավառակում Wine-ի ներկայիս նախապատրաստի AppData/Local կորում внутри: Դա անհրաժեշտ է, որովհետև աշխատանքային ժամանակը բարձրացել է նախկինցոնալ մշակումից: Կեշի ճանապարհը կարելի է փոխել DXVK_SHADER_CACHE_PATH միջավայրի փոփոխականով:
Նոր Vulkan VK_EXT_descriptor_heap ընդլայնումը այժմ ըստ ենթադրության օգտագործվում է ստանդարտ տեսականիով վարիչներում, որոնք այն աջակցում են:
Պաշտոնապես ակնկալվում է, որ նոր մոդելը կտրուկ շոշափելի է, քան նախորդ VK_EXT_descriptor_buffer հիմնախնդիրներով մոդելի մասին, այս նոր մոդելը կտրուկ կլինի CPU-ից հարակից նույն մակարդակի գերծանր փոխադրելով, հիշատակելով Nvidia GPU-ի արդյունավետության նվազեցումը (պահանջվում է nvidia-drivers-595.84 և ավելի առաջ)
D3D9 փոփոխություններ
D3D8 և D3D9 խաղերի համար առանց շեյդերների ռենդերավորելու համար DXVK-ը նախօրեին ծագել էր բաժանարար շեյդերներ քաշելու միջոցով, ինչը կարող էր որոշ խաղերում, ինչպիսիք են Unreal Tournament 2004, նկատելի աշխատանքների դանդաղեցման մատուցել անգամ երկարատև խաղի ժամանակահատվածներից հետո:
Այս խնդիրը լուծելու համար DXVK-ն այժմ իրականացնում է կենսունակ կոնվեյերների համակարգ որպես սուբերշեյդերների մի զույգ, որոնց համար օպտիմալացված տարբերակները հեղուկություն են դարձել
Բուֆերի բեռման օպտիմիզացում
Windows-ի վարքին ավելի ճշգրիտ համապատասխանելու համար, տարբեր տեսակի բուֆերներ, որոնք առաջ տեղակայվում էին ուղիղ VRAM-ում, այժմ բեռնվում են պահանջին, ինչպես նաև իրականացել է оперативной памeti ծավալի սահմանման ռազմավարություն, որը շտկում է կասեցումներ, որոնք կապված են հասցեի տարածքի հետ, որոշ 32-բիթանոց D3D9 խաղերում։
Այս փոփոխությունները կարող են նաև բարելավել կատարողականը համակարգերում, որտեղ չկա փոփոխվող չափի BAR, ինչպիսիք են GTA IV խաղերը։
Համակարգերում, որոնք բավարար չափով աջակցում են VK_EXT_sample_locations և VK_EXT_extended_dynamic_state3, D3DRS_MULTISAMPLEANTIALIAS պաստառման վիճակը այժմ ճիշտ գործարկվում է, ապահովելով հավելվածների լայնածավալRasterization օգտագործումը մեկ նմուշի ընթացքում՝ միաժամանակ բազմանմուշանի նպատակակետերի ուղղությամբ։ Սա վերացնում է Anno 1701-ի, Men of War Assault Squad-ի և մյուս խաղերի UI-ի ռենդերավորման հետ կապված խնդիրները, երբ MSAA-ն ակտիվացված է։
Ընդհանուր ռեսուրսները այժմ աշխատում են Wine-ի սկզբնական իրագործմամբ և այլևս չեն պահանջում Proton-ի հատուկ մակարդակներ:
Նաև անհրաժեշտ է նշել բազմաթիվ շտկումներ տարբեր խաղերի համար, որոնք այժմ աշխատելու են ավելի լավ։
Ընտանիք: linux.org.ru
