La projekto Wine publikigis Vkd3d 1.2 kun Direct3D 12 efektivigo

Vina Projekto eldonita pakaĵeldono vkd3d 1.2 kun Direct3D 12 efektivigo kiu funkcias per dissendado de vokoj al la Vulkan-grafika API. La pakaĵo inkluzivas libvkd3d-bibliotekojn kun efektivigoj de Direct3D 12, libvkd3d-shader kun tradukisto de shader-modeloj 4 kaj 5 kaj libvkd3d-utils kun funkcioj por simpligi la portadon de Direct3D 12-aplikoj, same kiel aron da demo-ekzemploj, inkluzive de haveno. de glxgears al Direct3D 12. Projektkodo distribuita de licencita laŭ LGPLv2.1.

libvkd3d biblioteko subtenoj La plej multaj el la funkcioj de Direct3D 12, inkluzive de grafikaĵoj kaj komputikaj instalaĵoj, vostoj kaj komandlistoj, teniloj kaj amaso-teniloj, radikaj subskriboj, neorda aliro, Samplers, komandsignaturoj, radikaj konstantoj, nerekta bildigo, Clear*() metodoj kaj Kopiu*().

En libvkd3d-shader, la traduko de bajtkodo de ombraj modeloj 4 kaj 5 en mezan SPIR-V-reprezentantaron estas efektivigita. Vertico, pikselo, teselacio, komputado kaj simplaj geometriaj ombriloj, radiksignatura seriigo kaj deserialigo estas subtenataj. Shader-instrukcioj inkluzivas aritmetikajn, atomajn kaj bitajn operaciojn, komparajn kaj datumfluajn kontrolfunkciigistojn, specimenon, kunvenigi kaj ŝarĝi instrukciojn, neordigitajn aliroperaciojn (UAV, Unordered Access View).

Inter la plej signifaj novigoj en Vkd3d 1.2 la jenaj estas emfazitaj:

  • La biblioteko libvkd3d-shader estas preta por uzi en triapartaj projektoj.
  • Tesselation shader subteno.
  • Subteno por konvertiĝo, seriigo kaj deserialigo de radikaj subskriboj (vkd3d_serialize_versioned_root_signature() kaj vkd3d_create_versioned_root_signature_deserializer()).
  • Subteno por fluanta eligo.
  • Efektivigo de multaj antaŭe nedisponeblaj funkcioj de Direct3D 12, inkluzive de subteno por multspecimena, rezervado de rimedoj,
    nerekta indeksita bildigo, profunda bildigo sen pikselaj ombriloj, samtempa aliro al resursoj de malsamaj komandvicoj, Nul-vidoj.

  • Aldonitaj mediovariabloj: VKD3D_CONFIG por agordi opciojn por ŝanĝi libvkd3d konduton kaj VKD3D_VULKAN_DEVICE por anstataŭi la aparaton por la Vulkan API.
  • Aldonita subteno por bufinfo shader instrukcioj,
    eval_centroido,
    eval_sample_index,
    ld2ms,
    specimeno_b,
    specimeno_d,
    specimen_info,
    samplepos.

fonto: opennet.ru

Aldoni komenton