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

рд╡рд╛рдЗрди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдиреЗ рдбрд╛рдпрд░реЗрдХреНрдЯ3рдбреА 1.7 рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рд╡реАрдХреЗрдбреА3рдбреА 12 рдкреИрдХреЗрдЬ рдХреА рд░рд┐рд▓реАрдЬ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХреА рд╣реИ рдЬреЛ рд╡рд▓реНрдХрди рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдПрдкреАрдЖрдИ рдкрд░ рдмреНрд░реЙрдбрдХрд╛рд╕реНрдЯрд┐рдВрдЧ рдХреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдкреИрдХреЗрдЬ рдореЗрдВ 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 рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд░реНрдЯреЗрдХреНрд╕, рдкрд┐рдХреНрд╕реЗрд▓, рдЯреЗрд╕реНрд╕реЗрд▓реЗрд╢рди, рдХрдВрдкреНрдпреВрдЯ рдФрд░ рд╕рд░рд▓ рдЬреНрдпреЛрдореЗрдЯреНрд░реА рд╢реЗрдбрд░реНрд╕, рд░реВрдЯ рд╕рд┐рдЧреНрдиреЗрдЪрд░ рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬреЗрд╢рди рдФрд░ рдбрд┐рд╕реЗрд░рд▓рд╛рдЗрдЬреЗрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рд╢реЗрдбрд░ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ рдЕрдВрдХрдЧрдгрд┐рдд, рдкрд░рдорд╛рдгреБ рдФрд░ рдмрд┐рдЯ рд╕рдВрдЪрд╛рд▓рди, рддреБрд▓рдирд╛ рдФрд░ рдбреЗрдЯрд╛ рдкреНрд░рд╡рд╛рд╣ рдирд┐рдпрдВрддреНрд░рдг рдСрдкрд░реЗрдЯрд░, рдирдореВрдирд╛, рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рдФрд░ рд▓реЛрдб рдирд┐рд░реНрджреЗрд╢, рдЕрдирдСрд░реНрдбрд░реНрдб рдПрдХреНрд╕реЗрд╕ рдСрдкрд░реЗрд╢рдВрд╕ (рдпреВрдПрд╡реА, рдЕрдирдСрд░реНрдбрд░реНрдб рдПрдХреНрд╕реЗрд╕ рд╡реНрдпреВ) рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

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

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

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ