ΠΠΎΡΠ»Π΅ ΠΏΠΎΠ»ΡΡΠΎΡΠ° Π»Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡ Wine ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» Π²ΡΠΏΡΡΠΊ ΠΏΠ°ΠΊΠ΅ΡΠ° vkd3d 1.3 Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Direct3D 12, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅ΠΉ ΡΠ΅ΡΠ΅Π· ΡΡΠ°Π½ΡΠ»ΡΡΠΈΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ API Vulkan. Π ΡΠΎΡΡΠ°Π² ΠΏΠ°ΠΊΠ΅ΡΠ° Π²Ρ ΠΎΠ΄ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ libvkd3d Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ Direct3D 12, libvkd3d-shader c ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠΎΠΌ 4 ΠΈ 5 ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ² ΠΈ libvkd3d-utils Ρ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Direct3D 12, Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π°Π±ΠΎΡ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ², Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΠΎΡΡ glxgears Π½Π° Direct3D 12. ΠΠΎΠ΄ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ LGPLv2.1.
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° libvkd3d ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π±ΠΎΠ»ΡΡΡΡ ΡΠ°ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Direct3D 12, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ Π³ΡΠ°ΡΠΈΠΊΠΈ ΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ, ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΠΈ ΡΠΏΠΈΡΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄, Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΡ ΠΈ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΡ ΠΊΡΡΠΈ, ΠΊΠΎΡΠ½Π΅Π²ΡΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ, Π½Π΅ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ, Sampler-Ρ, ΡΠΈΠ³Π½Π°ΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡΠ½Π΅Π²ΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ, Π½Π΅ΠΏΡΡΠΌΡΡ (indirect) ΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ, ΠΌΠ΅ΡΠΎΠ΄Ρ Clear*() ΠΈ Copy*().
Π libvkd3d-shader ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΡΡΠ°Π½ΡΠ»ΡΡΠΈΡ Π±Π°ΠΉΡΠΊΠΎΠ΄Π° 4 ΠΈ 5 ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ² Π² ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ SPIR-V. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Π²Π΅ΡΡΠΈΠ½Π½ΡΠ΅, ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΡΠ΅, ΡΠ΅ΡΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΡΠ΅, Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈ ΠΏΡΠΎΡΡΡΠ΅ Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΠΉΠ΄Π΅ΡΡ, ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ. ΠΠ· ΡΠ΅ΠΉΠ΄Π΅ΡΠ½ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅, Π°ΡΠΎΠΌΠ°ΡΠ½ΡΠ΅ ΠΈ Π±ΠΈΡΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ , ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ sample, gather ΠΈ load, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π΅ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° (UAV, Unordered Access View).
Π‘ΡΠ΅Π΄ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ Π½ΠΎΠ²ΡΠ΅ΡΡΠ² Π² Vkd3d 1.3 Π²ΡΠ΄Π΅Π»ΡΡΡΡΡ:
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈ ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΈΠ½Π³Π° ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ² Π½Π° ΡΠ·ΡΠΊΠ΅ HLSL (High-Level Shader Language), ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠΌ Π½Π°ΡΠΈΠ½Π°Ρ Ρ DirectX 9.0.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΠ², ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ² 5.1.
- ΠΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Ρ ΡΠΈΡΠ»Π°ΠΌΠΈ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΡΠΎΡΠ½ΠΎΡΡΠΈ Π² ΡΠ΅ΠΉΠ΄Π΅ΡΠ°Ρ , Π½Π΅ΠΏΡΡΠΌΠΎΠΉ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΡΠ΅ΡΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΡΡ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ², ΡΠΊΡΠΏΠΎΡΡΠ° ΡΡΠ°ΡΠ°ΡΠ΅ΡΠΎΠ² ΠΈΠ· ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ², ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ² «precise» ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ Π±Π°ΡΡΠ΅ΡΠΎΠ² Π΄Π»Ρ ΡΠ΅ΡΡΡΡΠΎΠ² Π² ΠΏΠ°ΠΌΡΡΠΈ.
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ² Direct3D ΠΈΠ· Π±Π°ΠΉΡΠΊΠΎΠ΄Π° Π² Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ°Π·Π±ΠΎΡΠ° ΡΡΠ°ΡΠΎΠ³ΠΎ ΡΠΎΡΠΌΠ°ΡΠ° Π±Π°ΠΉΡΠΊΠΎΠ΄Π° Direct3D, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ Π² ΠΌΠΎΠ΄Π΅Π»ΡΡ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ² Direct3D 1, 2 ΠΈ 3.
- Π libvkd3d Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΡΠ°ΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Direct3D 12, ΠΊΠ°ΠΊ ΠΊΠΎΡΠ½Π΅Π²ΡΠ΅ ΡΠΈΠ³Π½Π°ΡΡΡΡ, ΡΡΡΡΡΠΈΠΊΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Ρ Π½Π΅ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΡΠΌ Π΄ΠΎΡΡΡΠΏΠΎΠΌ, Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΡΠ»ΠΈΡΠ½ΠΈΡ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π°, ΡΠ΅ΠΆΠΈΠΌ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ΅ΠΊΡΡΡΡ mirror_once. ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΡΡΡΠΊΡΡΡΠ° vkd3d_host_time_domain_info.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru