рд╡рд╛рдЗрди рдкреНрд░рдХрд▓реНрдкрд╛рдиреЗ рдбрд╛рдпрд░реЗрдХреНрдЯ3рдбреА 1.2 рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрд╕рд╣ Vkd3d 12 рдЬрд╛рд░реА рдХреЗрд▓реЗ рдЖрд╣реЗ

рд╡рд╛рдЗрди рдкреНрд░рдХрд▓реНрдк рдкреНрд░рдХрд╛рд╢рд┐рдд рдкреЕрдХреЗрдЬ рдкреНрд░рдХрд╛рд╢рди vkd3d 1.2 рдбрд╛рдпрд░реЗрдХреНрдЯ3рдбреА 12 рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрд╕рд╣ рдЬреЗ рд╡реНрд╣рд▓реНрдХрди рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ API рд╡рд░ рдХреЙрд▓ рдмреНрд░реЙрдбрдХрд╛рд╕реНрдЯрд┐рдВрдЧрджреНрд╡рд╛рд░реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ. рдкреЕрдХреЗрдЬрдордзреНрдпреЗ Direct3D 3 рдЪреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрд╕рд╣ libvkd12d рд▓рд╛рдпрдмреНрд░рд░реА, рд╢реЗрдбрд░ рдореЙрдбреЗрд▓ 3 рдЖрдгрд┐ 4 рдЪреНрдпрд╛ рдЕрдиреБрд╡рд╛рджрдХрд╛рд╕рд╣ libvkd5d-shader рдЖрдгрд┐ Direct3D 3 рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрдЪреЗ рдкреЛрд░реНрдЯрд┐рдВрдЧ рд╕реБрд▓рдн рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдлрдВрдХреНрд╢рдиреНрд╕рд╕рд╣ libvkd12d-utils, рддрд╕реЗрдЪ рдбреЗрдореЛ рдЙрджрд╛рд╣рд░рдгрд╛рдВрдЪрд╛ рд╕рдВрдЪ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ. glxgears рддреЗ Direct3D 12. рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рд╡рд┐рддрд░рд┐рдд LGPLv2.1 рдЕрдВрддрд░реНрдЧрдд рдкрд░рд╡рд╛рдирд╛рдХреГрдд.

libvkd3d рд▓рд╛рдпрдмреНрд░рд░реА рд╕рдорд░реНрдерди рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдЖрдгрд┐ рд╕рдВрдЧрдгрди рд╕реБрд╡рд┐рдзрд╛, рд░рд╛рдВрдЧ рдЖрдгрд┐ рдХрдорд╛рдВрдб рд▓рд┐рд╕реНрдЯ, рд╣рдБрдбрд▓ рдЖрдгрд┐ рд╣реАрдк рд╣рдБрдбрд▓, рд░реВрдЯ рд╕рд┐рдЧреНрдиреЗрдЪрд░, рдЖрдЙрдЯ-рдСрдл-рдСрд░реНрдбрд░ рдНрдХреНрд╕реЗрд╕, рд╕реЕрдореНрдкрд▓рд░, рдХрдорд╛рдВрдб рд╕рд┐рдЧреНрдиреЗрдЪрд░, рд░реВрдЯ рдХреЙрдиреНрд╕реНрдЯрдВрдЯреНрд╕, рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд░реЗрдВрдбрд░рд┐рдВрдЧ, рдХреНрд▓рд┐рдпрд░*() рдкрджреНрдзрддреА рдпрд╛рд╕рд╣ Direct3D 12 рдЪреА рдмрд╣реБрддрд╛рдВрд╢ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдЖрдгрд┐ рдХреЙрдкреА*().

libvkd3d-shader рд╢реЗрдбрд░ рдореЙрдбреЗрд▓ 4 рдЖрдгрд┐ 5 рдЪреНрдпрд╛ рдмрд╛рдЗрдЯрдХреЛрдбрдЪреЗ рднрд╛рд╖рд╛рдВрддрд░ рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ SPIR-V рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡рд╛рдордзреНрдпреЗ рд▓рд╛рдЧреВ рдХрд░рддреЗ. рд╡реНрд╣рд░реНрдЯреЗрдХреНрд╕, рдкрд┐рдХреНрд╕реЗрд▓, рдЯреЗрд╕реЗрд▓реЗрд╢рди, рдХрдВрдкреНрдпреВрдЯ рдЖрдгрд┐ рд╕рд╛рдзреНрдпрд╛ рднреВрдорд┐рддреА рд╢реЗрдбрд░реНрд╕, рд░реВрдЯ рд╕рд┐рдЧреНрдиреЗрдЪрд░ рд╕реАрд░рд┐рдпрд▓рд╛рдпрдЭреЗрд╢рди рдЖрдгрд┐ рдбреАрд╕реАрд░рд┐рдпрд▓рд╛рдпрдЭреЗрд╢рдирд▓рд╛ рд╕рдорд░реНрдерди рджреЗрддреЗ. рд╢реЗрдбрд░ рд╕реВрдЪрдирд╛рдВрдордзреНрдпреЗ рдЕрдВрдХрдЧрдгрд┐рдд, рдЕрдгреВ рдЖрдгрд┐ рдмрд┐рдЯ рдСрдкрд░реЗрд╢рдиреНрд╕, рддреБрд▓рдирд╛ рдЖрдгрд┐ рдбреЗрдЯрд╛ рдкреНрд░рд╡рд╛рд╣ рдирд┐рдпрдВрддреНрд░рдг рдСрдкрд░реЗрдЯрд░, рдирдореБрдирд╛, рдПрдХрддреНрд░рд┐рдд рдЖрдгрд┐ рд▓реЛрдб рд╕реВрдЪрдирд╛, рдЕрдХреНрд░рдорд┐рдд рдНрдХреНрд╕реЗрд╕ рдСрдкрд░реЗрд╢рдиреНрд╕ (UAV, Unordered Access View) рдпрд╛рдВрдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рд╣реЛрддреЛ.

рд╕рд░реНрд╡рд╛рдд рд▓рдХреНрд╖рдгреАрдп рд╣реЗрд╣реА рдирд╡рдХрд▓реНрдкрдирд╛ Vkd3d 1.2 рдордзреНрдпреЗ рдЦрд╛рд▓реАрд▓ рдЧреЛрд╖реНрдЯреА рд╣рд╛рдпрд▓рд╛рдЗрдЯ рдХреЗрд▓реНрдпрд╛ рдЖрд╣реЗрдд:

  • libvkd3d-shader рд▓рд╛рдпрдмреНрд░рд░реА рддреГрддреАрдп-рдкрдХреНрд╖ рдкреНрд░рдХрд▓реНрдкрд╛рдВрдордзреНрдпреЗ рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА рддрдпрд╛рд░ рдЖрд╣реЗ.
  • рдЯреЗрд╕реЗрд▓реЗрд╢рди рд╢реЗрдбрд░ рд╕рдорд░реНрдерди.
  • рд░реВрдЯ рд╕рд┐рдЧреНрдиреЗрдЪрд░ (vkd3d_serialize_versioned_root_signature() рдЖрдгрд┐ vkd3d_create_versioned_root_signature_deserializer()) рдЪреНрдпрд╛ рд░реБрдкрд╛рдВрддрд░рдг, рд╕реАрд░рд┐рдпрд▓рд╛рдпрдЭреЗрд╢рди рдЖрдгрд┐ рдбреАрд╕реАрд░рд┐рдпрд▓рд╛рдпрдЭреЗрд╢рдирд╕рд╛рдареА рд╕рдорд░реНрдерди.
  • рдкреНрд░рд╡рд╛рд╣рд┐рдд рдЖрдЙрдЯрдкреБрдЯрд╕рд╛рдареА рд╕рдорд░реНрдерди.
  • рдЕрдиреЗрдХ рдкреВрд░реНрд╡реА рдЕрдиреБрдкрд▓рдмреНрдз Direct3D 12 рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА, рдЬреНрдпрд╛рдордзреНрдпреЗ рдорд▓реНрдЯреАрд╕реЕрдореНрдкрд▓рд┐рдВрдЧрд╕рд╛рдареА рд╕рдорд░реНрдерди, рд╕рдВрд╕рд╛рдзрди рдЖрд░рдХреНрд╖рдг,
    рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рдЕрдиреБрдХреНрд░рдорд┐рдд рдкреНрд░рд╕реНрддреБрддреАрдХрд░рдг, рдкрд┐рдХреНрд╕реЗрд▓ рд╢реЗрдбрд░реНрд╕рд╢рд┐рд╡рд╛рдп рдЦреЛрд▓реАрдЪреЗ рдкреНрд░рд╕реНрддреБрддреАрдХрд░рдг, рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдХрдорд╛рдВрдб рдХреНрдпреВрдордзреВрди рд╕рдВрд╕рд╛рдзрдирд╛рдВрдордзреНрдпреЗ рдПрдХрд╛рдЪрд╡реЗрд│реА рдкреНрд░рд╡реЗрд╢, рд╢реВрдиреНрдп-рджреГрд╢реНрдпреЗ.

  • рдПрдиреНрд╡реНрд╣рд╛рдпрд░реНрдирдореЗрдВрдЯ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ рдЬреЛрдбрд▓реЗ: VKD3D_CONFIG libvkd3d рд╡рд░реНрддрди рдмрджрд▓рдгреНрдпрд╛рд╕рд╛рдареА рдкрд░реНрдпрд╛рдп рд╕реЗрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ VKD3D_VULKAN_DEVICE Vulkan API рд╕рд╛рдареА рдбрд┐рд╡реНрд╣рд╛рдЗрд╕ рдУрд╡реНрд╣рд░рд░рд╛рдЗрдб рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА.
  • рдмрдлрд┐рдирдлреЛ рд╢реЗрдбрд░ рд╕реВрдЪрдирд╛рдВрд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ,
    eval_centroid,
    eval_sample_index,
    ld2ms,
    рдирдореБрдирд╛_рдм,
    рдирдореБрдирд╛_d,
    рдирдореБрдирд╛_рдорд╛рд╣рд┐рддреА,
    рдирдореБрдирд╛

рд╕реНрддреНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛