Праект Wine
Бібліятэка libvkd3d
У libvkd3d-shader рэалізавана трансляцыя байткода 4 і 5 мадэляў шэйдараў у прамежкавае паданне SPIR-V. Падтрымліваюцца вяршынныя, піксельныя, тесселяционные, вылічальныя і простыя геаметрычныя шэйдары, серыялізацыя і дэсерыялізацыя каранёвага подпісу. З шэйдарных інструкцый рэалізаваны арыфметычныя, атамарныя і бітавыя аперацыі, аператары параўнання і кіравання струменем перадачы дадзеных, інструкцыі sample, gather і load, аперацыі неўпарадкаванага доступу (UAV, Unordered Access View).
Сярод найбольш значных
- Гатоўнасць бібліятэкі libvkd3d-shader для выкарыстання ў іншых праектах.
- Падтрымка теселяцыйных шэйдараў.
- Падтрымка пераўтварэння, серыялізацыі і дэсерыялізацыі каранёвых сігнатур (vkd3d_serialize_versioned_root_signature() і vkd3d_create_versioned_root_signature_deserializer()).
- Падтрымка струменевага вываду.
- Рэалізацыя шматлікіх раней недаступных магчымасцяў Direct3D 12, уключаючы падтрымку мультысэмплінга, рэзерваванні рэсурсаў,
ўскоснай індэксаваць адмалёўкі, рэндэрынгу глыбіні без піксельных шэйдараў, адначасовага доступу да рэсурсаў іх розных чэргаў каманд, нулявых уяўленняў (Null-views). - Дададзеныя зменныя асяроддзі: VKD3D_CONFIG для ўсталёўкі опцый для змены паводзін libvkd3d і VKD3D_VULKAN_DEVICE для перавызначэння прылады для API Vulkan.
- Дададзена падтрымка шэйдарных інструкцый bufinfo,
eval_centroid,
eval_sample_index,
ld2ms,
sample_b,
sample_d,
sample_info,
samplepos.
Крыніца: opennet.ru