рд╡рд╛рдЗрди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд Vkd3d 1.7 Direct3D 12 рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд╕рд╛рде

рд╡рд╛рдЗрди рдкреНрд░реЛрдЬреЗрдХреНрдЯрд▓реЗ Direct3D 1.7 рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд╕рд╛рде vkd3d 12 рдкреНрдпрд╛рдХреЗрдЬрдХреЛ рд░рд┐рд▓реАрдЬ рдкреНрд░рдХрд╛рд╢рд┐рдд рдЧрд░реЗрдХреЛ рдЫ рдЬреБрди Vulkan рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ API рдорд╛ рдкреНрд░рд╕рд╛рд░рдг рдХрд▓рд╣рд░реВ рдорд╛рд░реНрдлрдд рдХрд╛рдо рдЧрд░реНрджрдЫред рдкреНрдпрд╛рдХреЗрдЬрд▓реЗ Direct3D 3 рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд╕рд╛рде libvkd12d рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВ, shader рдореЛрдбреЗрд▓ 3 рд░ 4 рдХреЛ рдЕрдиреБрд╡рд╛рджрдХрдХреЛ рд╕рд╛рде libvkd5d-shader рд░ Direct3D 3 рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдХреЛ рдкреЛрд░реНрдЯрд┐рдЩрд▓рд╛рдИ рд╕рд░рд▓ рдмрдирд╛рдЙрдиреЗ рдХрд╛рд░реНрдпрд╣рд░реВ рд╕рд╣рд┐рдд libvkd12d-utils, рд╕рд╛рдереИ рдбреЗрдореЛ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВрдХреЛ рд╕реЗрдЯ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред Direct3D 12 рдорд╛ glxgears рдХреЛред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛрдб LGPLv2.1 рдЕрдиреНрддрд░реНрдЧрдд рд▓рд╛рдЗрд╕реЗрдиреНрд╕ рд╡рд┐рддрд░рдг рдЧрд░рд┐рдПрдХреЛ рдЫред

libvkd3d рдкреБрд╕реНрддрдХрд╛рд▓рдпрд▓реЗ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд░ рдХрдореНрдкреНрдпреБрдЯрд┐рдЩ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ, рд▓рд╛рдо рд░ рдЖрджреЗрд╢ рд╕реВрдЪреАрд╣рд░реВ, рд╣реНрдпрд╛рдиреНрдбрд▓рд╣рд░реВ рд░ рд╣рд┐рдк рд╣реНрдпрд╛рдиреНрдбрд▓рд╣рд░реВ, рд░реВрдЯ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд╣рд░реВ, рдЖрдЙрдЯ-рдЕрдл-рдЕрд░реНрдбрд░ рдкрд╣реБрдБрдЪ, рдирдореВрдирд╛рд╣рд░реВ, рдЖрджреЗрд╢ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд╣рд░реВ, рдореВрд▓ рд╕реНрдерд┐рд░рддрд╛рд╣рд░реВ, рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рдкреНрд░рддрд┐рдкрд╛рджрди, рд╕реНрдкрд╖реНрдЯ рд╡рд┐рдзрд┐рд╣рд░реВ *( ) рд░ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ *()ред libvkd3d-shader рдорд╛, рдордзреНрдпрд╡рд░реНрддреА SPIR-V рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡рдорд╛ shader рдореЛрдбреЗрд▓ 12 рд░ 3 рдХреЛ рдмрд╛рдЗрдЯрдХреЛрдбрдХреЛ рдЕрдиреБрд╡рд╛рдж рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдПрдХреЛ рдЫред рднреЗрд░реНрдЯреЗрдХреНрд╕, рдкрд┐рдХреНрд╕реЗрд▓, рдЯреЗрд╕реЗрд▓реЗрд╕рди, рдХрдореНрдкреНрдпреБрдЯ рд░ рд╕рд╛рдзрд╛рд░рдг рдЬреНрдпрд╛рдорд┐рддрд┐ рд╢реЗрдбрд░рд╣рд░реВ, рд░реВрдЯ рд╕рд┐рдЧреНрдиреЗрдЪрд░ рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬреЗрд╕рди рд░ рдбрд┐рд╕реЗрд░рд┐рдпрд▓рд╛рдЗрдЬреЗрд╕рдирд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫред рд╢реЗрдбрд░ рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВрдорд╛ рдЕрдВрдХрдЧрдгрд┐рдд, рдкрд░рдорд╛рдгреБ рд░ рдмрд┐рдЯ рдЕрдкрд░реЗрд╢рдирд╣рд░реВ, рддреБрд▓рдирд╛ рд░ рдбреЗрдЯрд╛ рдкреНрд░рд╡рд╛рд╣ рдирд┐рдпрдиреНрддреНрд░рдг рдЕрдкрд░реЗрдЯрд░рд╣рд░реВ, рдирдореВрдирд╛, рд╕рдЩреНрдХрд▓рди рд░ рд▓реЛрдб рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ, рдЕрдХреНрд░рдорд┐рдд рдкрд╣реБрдБрдЪ рд╕рдЮреНрдЪрд╛рд▓рдирд╣рд░реВ (UAV, Unordered Access View) рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреНред

рдирдпрд╛рдБ рд╕рдВрд╕реНрдХрд░рдгрдорд╛:

  • HLSL (рдЙрдЪреНрдЪ-рд╕реНрддрд░ рд╢реЗрдбрд░ рднрд╛рд╖рд╛) рдорд╛ рд╢реЗрдбрд░ рдХрдореНрдкрд╛рдЗрд▓рд░ рд╕реБрдзрд╛рд░ рдЧрд░реНрди рдХрд╛рдо рдЬрд╛рд░реА рдЫ:
    • рдЕрдиреБрдХреВрд▓рди рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рдХрд▓ рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рдердкрд┐рдпреЛ рд░ рдЕрдиреБрдХреВрд▓рди рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрдорд╛ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВрдХреЛ рд░реВрдкрдорд╛ arrays рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
    • SV_DispatchThreadID, SV_GroupID рд░ SV_GroupThreadID рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдердкрд┐рдпреЛред
    • рдмрд┐рд▓реНрдЯ-рдЗрди рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рдердкрд┐рдпреЛ all(), рджреВрд░реА(), exp(), exp2(), frac(), lit(), reflect(), sin(), cos(), smoothstep(), sqrt(), rsqrt () , step(), transpose()ред
    • рдХрдо рд╕рдЯреАрдХ рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдмрд┐рдиреНрджреБ рдкреНрд░рдХрд╛рд░рд╣рд░реВ рдЬрд╕реНрддреИ "min16float" рдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рд╕рдорд░реНрдерди рдердкрд┐рдпреЛред
  • Direct3D 1/2/3 shader рдореЛрдбреЗрд▓ рдкреНрд░реЛрдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд░реВрдкрдорд╛ рд╕реБрдзрд╛рд░рд┐рдПрдХреЛ рд╕рдорд░реНрдердиред
  • DXBC рдмрд╛рдЗрдирд░реА рдбреЗрдЯрд╛рдХреЛ рдкрд╛рд░реНрд╕рд┐рдЩ (vkd3d_shader_parse_dxbc) рд░ рдХреНрд░рдордмрджреНрдзрддрд╛ (vkd3d_shader_serialize_dxbc) рдХреЛ рд▓рд╛рдЧрд┐ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ API рдердкрд┐рдпреЛред

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди