ื“ื™ ื•ื•ื™ื™ืŸ ืคึผืจื•ื™ืขืงื˜ ื”ืื˜ ืืจื•ื™ืก Vkd3d 1.7 ืžื™ื˜ Direct3D 12 ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ

ื“ื™ ื•ื•ื™ื™ืŸ ืคึผืจื•ื™ืขืงื˜ ื”ืื˜ ืืจื•ื™ืก ื“ื™ ืžืขืœื“ื•ื ื’ ืคื•ืŸ ื“ื™ vkd3d 1.7 ืคึผืขืงืœ ืžื™ื˜ ืึท ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ Direct3D 12 ื•ื•ืึธืก ืึทืจื‘ืขื˜ ื“ื•ืจืš ื‘ืจืึธื“ืงืึทืกื˜ื™ื ื’ ืจื•ืคื˜ ืฆื• ื“ื™ Vulkan graphics API. ื“ืขืจ ืคึผืขืงืœ ื›ื•ืœืœ libvkd3d ืœื™ื™ื‘ืจืขืจื™ื– ืžื™ื˜ ื™ืžืคึผืœืึทืžืึทื ืฅ ืคื•ืŸ Direct3D 12, libvkd3d-shader ืžื™ื˜ ืึท ื™ื‘ืขืจื–ืขืฆืขืจ ืคื•ืŸ ืฉืึทื“ืขืจ ืžืึธื“ืขืœืก 4 ืื•ืŸ 5 ืื•ืŸ libvkd3d-utils ืžื™ื˜ ืคืึทื ื’ืงืฉืึทื ื– ืคึฟืึทืจ ืกื™ืžืคึผืœืึทืคื™ื™ื™ื ื’ ื“ื™ ืคึผืึธืจื˜ื™ื ื’ ืคื•ืŸ Direct3D 12 ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–, ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ืึท ื’ืึทื ื’ ืคื•ืŸ ื“ืขืžืึธ ื‘ื™ื™ืฉืคื™ืœืŸ, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ืึท ืคึผืึธืจื˜. ืคื•ืŸ ื’ืœืงืกื’ืขืึทืจืก ืฆื• Direct3D 12. ื“ื™ ืคึผืจื•ื™ืขืงื˜ ืงืึธื“ ืื™ื– ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ ืœื™ื™ืกืึทื ืกื˜ ืื•ื ื˜ืขืจ LGPLv2.1.

ื“ื™ libvkd3d ื‘ื™ื‘ืœื™ืึธื˜ืขืง ืฉื˜ื™ืฆื˜ ืจื•ื‘ึฟ Direct3D 12 ืคึฟืขื™ึดืงื™ื™ื˜ืŸ, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ื’ืจืึทืคื™ืงืก ืื•ืŸ ืงืึทืžืคึผื™ื•ื˜ื™ื ื’ ืคืึทืกื™ืœืึทื˜ื™ื–, ืงื™ื•ื– ืื•ืŸ ื‘ืึทืคึฟืขืœืŸ ืจืฉื™ืžื•ืช, ื›ืึทื ื“ืึทืœื– ืื•ืŸ ืงื•ืคึผืข ื›ืึทื ื“ืึทืœื–, ื•ื•ืึธืจืฆืœ ืกื™ื’ื ืึทื˜ืฉืขืจื–, ืึทื•ื˜-ืคื•ืŸ-ืกื“ืจ ืึทืงืกืขืก, ืกืึทืžืคึผืึทืœื–, ื‘ืึทืคึฟืขืœืŸ ืกื™ื’ื ืึทื˜ืฉืขืจื–, ื•ื•ืึธืจืฆืœ ืงืึทื ืกื˜ืึทื ืฅ, ื•ืžื“ื™ืจืขืงื˜ ืจืขื ื“ืขืจื™ื ื’, ืงืœืึธืจ ืžืขื˜ื”ืึธื“ืก *( ) ืื•ืŸ ืงืึธืคึผื™ * (). ืื™ืŸ libvkd3d-shader, ื“ื™ ืื™ื‘ืขืจื–ืขืฆื•ื ื’ ืคื•ืŸ ื‘ื™ื˜ืขืงืึธื“ืข ืคื•ืŸ โ€‹โ€‹ืฉืึทื“ืขืจ ืžืึธื“ืขืœืก 4 ืื•ืŸ 5 ืื™ืŸ ืึท ื™ื ื˜ืขืจืžื™ื“ื™ื™ื˜ SPIR-V ืคืึทืจื˜ืจืขื˜ื•ื ื’ ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“. ืฉื˜ื™ืฆื˜ ื•ื•ืขืจื˜ืขืงืก, ืคึผื™ืงืกืขืœ, ื˜ืขืกืขืœืœืึทื˜ื™ืึธืŸ, ืงืึทืžืคึผื™ื•ื˜ื™ื ื’ ืื•ืŸ ืคึผืฉื•ื˜ ื“ื–ืฉื™ืึทืžืึทื˜ืจื™ ืฉืึทื“ืขืจื–, ื•ื•ืึธืจืฆืœ ื›ืกื™ืžืข ืกื™ืจื™ืึทืœื™ื–ื™ื™ืฉืึทืŸ ืื•ืŸ ื“ืขืกืขืจื™ืึทืœื™ื–ื™ื™ืฉืึทืŸ. ืฉืึทื“ืขืจ ืื™ื ืกื˜ืจื•ืงืฆื™ืขืก ืึทืจื™ื™ึทื ื ืขืžืขืŸ ืึทืจื™ื˜ืžืขื˜ื™ืง, ืึทื˜ืึธืžื™ืฉืข ืื•ืŸ ื‘ื™ืกืœ ืึทืคึผืขืจื™ื™ืฉืึทื ื–, ืคืึทืจื’ืœื™ื™ึทืš ืื•ืŸ ื“ืึทื˜ืŸ ืœื•ื™ืคืŸ ืงืึธื ื˜ืจืึธืœ ืึธืคึผืขืจื™ื™ื˜ืขืจื–, ืžื•ืกื˜ืขืจ, ืงืœื™ื™ึทื‘ืŸ ืื•ืŸ ืžืึทืกืข ื™ื ืกื˜ืจืึทืงืฉืึทื ื–, ืึทื ืึธืจื“ืขืจื“ ืึทืงืกืขืก ืึทืคึผืขืจื™ื™ืฉืึทื ื– (UAV, Unordered Access View).

ืื™ืŸ ื“ื™ ื ื™ื™ึทืข ื•ื•ืขืจืกื™ืข:

  • ืึทืจื‘ืขื˜ ืคืืจื‘ืœื™ื‘ืŸ ืฆื• ืคึฟืึทืจื‘ืขืกืขืจืŸ ื“ื™ ืฉืึทื“ืขืจ ืงืึทืžืคึผื™ื™ืœืขืจ ืื™ืŸ HLSL (High-Level Shader Language):
    • ืฆื•ื’ืขื’ืขื‘ืŸ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืจื•ืคืŸ ืžื ื”ื’ ืคืึทื ื’ืงืฉืึทื ื– ืื•ืŸ ื ื•ืฆืŸ ืขืจื™ื™ื– ื•ื•ื™ ืคึผืึทืจืึทืžืขื˜ืขืจืก ืฆื• ืžื ื”ื’ ืคืึทื ื’ืงืฉืึทื ื–.
    • ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ SV_DispatchThreadID, SV_GroupID ืื•ืŸ SV_GroupThreadID ืคึผืึทืจืึทืžืขื˜ืขืจืก.
    • ืฆื•ื’ืขืœื™ื™ื’ื˜ ื’ืขื‘ื•ื™ื˜-ืื™ืŸ ืคืึทื ื’ืงืฉืึทื ื– ืึทืœืข (), ื“ื™ืกื˜ืึทื ืกืข (), ืขืงืกืคึผ (), ืขืงืกืคึผ2 (), ืคืจืึทืง (), ืœื™ื˜ (), ืจืขืคืœืขืงื˜ (), ื–ื™ื ื“ (), ืงืึธืก (), ืกืžื•ื“ืกื˜ืขืคึผ (), ืกืงืจื˜ (), ืจืกืงืจื˜ (), ืฉืจื™ื˜ (), ื˜ืจืึทื ืกืคึผืึธืกืข ().
    • ืฆื•ื’ืขื’ืขื‘ืŸ ืขืจืฉื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืคืœืึธื•ื˜ื™ื ื’ ืคื•ื ื˜ ื˜ื™ื™ืคึผืก ืžื™ื˜ ื ื™ื“ืขืจื™ืง ืคึผื™ื ื˜ืœืขื›ืงื™ื™ึทื˜ ืึทื–ืึท ื•ื•ื™ "min16float".
  • ื‘ืื˜ื™ื™ื˜ื™ืง ื™ืžืคึผืจื•ื•ื•ื“ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ Direct3D 1/2/3 ืฉืึทื“ืขืจ ืžืึธื“ืขืœ ืคึผืจืึธื•ืคื™ื™ืœื–.
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ืขืคื ื˜ืœืขืš ืึทืคึผื™ ืคึฟืึทืจ ืคึผืึทืจืกื™ื ื’ (vkd3d_shader_parse_dxbc) ืื•ืŸ ืกื™ืจื™ืึทืœื™ื–ืึทื˜ื™ืึธืŸ (vkd3d_shader_serialize_dxbc) ืคื•ืŸ DXBC ื‘ื™ื™ื ืขืจื™ ื“ืึทื˜ืŸ.

ืžืงื•ืจ: opennet.ru

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’