ΠΡΠΎΠ΅ΠΊΡΡΡ Wine ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π° ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠ° vkd3d 1.17 Ρ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° Direct3D 12, ΠΊΠΎΠΉΡΠΎ ΡΠ°Π±ΠΎΡΠΈ ΡΡΠ΅Π· ΠΈΠ·Π»ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½ΠΈΡ ΠΊΡΠΌ Π³ΡΠ°ΡΠΈΡΠ½ΠΈΡ API Π½Π° Vulkan. ΠΠ°ΠΊΠ΅ΡΡΡ Π²ΠΊΠ»ΡΡΠ²Π° libvkd3d Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° Direct3D 12, libvkd3d-shader Ρ ΠΏΡΠ΅Π²ΠΎΠ΄Π°Ρ Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° ΡΠ΅ΠΉΠ΄ΡΡΠΈ 4 ΠΈ 5 ΠΈ libvkd3d-utils Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° ΠΎΠΏΡΠΎΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠ΅Π½Π°ΡΡΠ½Π΅ΡΠΎ Π½Π° Direct3D 12 ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π½Π°Π±ΠΎΡ ΠΎΡ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΈ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎΡΡ Π½Π° glxgears ΠΊΡΠΌ Direct3D 12. ΠΠΎΠ΄ΡΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π· LGPLv2.1.
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° libvkd3d ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ Π½Π° Direct3D 12, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π³ΡΠ°ΡΠΈΡΠ½ΠΈ ΠΈ ΠΈΠ·ΡΠΈΡΠ»ΠΈΡΠ΅Π»Π½ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΎΠΏΠ°ΡΠΊΠΈ ΠΈ ΡΠΏΠΈΡΡΡΠΈ Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΈ ΠΈ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΈ Π½Π° heap, ΠΊΠΎΡΠ΅Π½Π½ΠΈ ΡΠΈΠ³Π½Π°ΡΡΡΠΈ, Π½Π΅ΠΏΠΎΠ΄ΡΠ΅Π΄Π΅Π½ Π΄ΠΎΡΡΡΠΏ, ΡΠ΅ΠΌΠΏΠ»Π΅ΡΠΈ, ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈ ΡΠΈΠ³Π½Π°ΡΡΡΠΈ, ΠΊΠΎΡΠ΅Π½Π½ΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠΈ, ΠΈΠ½Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΡΠ΅Π½Π΄ΠΈΡΠ°Π½Π΅, ΠΌΠ΅ΡΠΎΠ΄ΠΈ Clear*() ΠΈ Copy*(). libvkd3d-shader ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ° ΠΏΡΠ΅Π²ΠΎΠ΄ Π½Π° Π±Π°ΠΉΡΠΊΠΎΠ΄Π° Π½Π° ΡΠ΅ΠΉΠ΄ΡΡΠ½ΠΈΡ ΠΌΠΎΠ΄Π΅Π» Π² SPIR-V ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅. ΠΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΡΠ΅ ΡΠ΅ΠΉΠ΄ΡΡΠΈ Π·Π° Π²ΡΡΡ ΠΎΠ²Π΅, ΠΏΠΈΠΊΡΠ΅Π»ΠΈ, ΡΠ΅ΡΠ΅Π»Π°ΡΠΈΡ, ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΈ ΠΎΠΏΡΠΎΡΡΠ΅Π½Π° Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡ, ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΊΠΎΡΠ΅Π½ΠΎΠ²ΠΈ ΡΠΈΠ³Π½Π°ΡΡΡΠΈ. ΠΠ½ΡΡΡΡΠΊΡΠΈΠΈΡΠ΅ Π½Π° ΡΠ΅ΠΉΠ΄ΡΡΠ° Π²ΠΊΠ»ΡΡΠ²Π°Ρ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ½ΠΈ, Π°ΡΠΎΠΌΠ½ΠΈ ΠΈ Π±ΠΈΡΠΎΠ²ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈ Π·Π° ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΡΠΎΠΊΠ° ΠΎΡ Π΄Π°Π½Π½ΠΈ, ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π·Π° ΡΠ΅ΠΌΠΏΠ»ΠΈΡΠ°Π½Π΅, ΡΡΠ±ΠΈΡΠ°Π½Π΅ ΠΈ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π° Π½Π΅ΠΏΠΎΠ΄ΡΠ΅Π΄Π΅Π½ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΈΠ·Π³Π»Π΅Π΄ (UAV).
Π Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ:
- ΠΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ° Π½Π° Π΅Π·ΠΈΠΊΠ° Π·Π° ΡΠ΅ΠΉΠ΄ΡΡΠΈ HLSL Π΅ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Ρ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½Π° ΠΏΠ°ΠΌΠ΅Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π³ΡΡΠΏΠΈ Π½ΠΈΡΠΊΠΈ, ΡΠ°Π·ΡΠΈΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ½ΠΈ ΡΠ΅ΠΉΠ΄ΡΡΠΈ ΠΈ ΠΏΠ°ΡΡΠ΅Ρ Π·Π° ΡΠ΅ΡΡΡΡΠΈ Π½Π° StructuredBuffer.
- ΠΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ° Π½Π° Π΅Π·ΠΈΠΊΠ° Π·Π° ΡΠ΅ΠΉΠ΄ΠΈΠ½Π³ Metal (MSL), ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ ΠΎΡ Apple Π² ΡΠ΅Ρ Π½ΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅Π½ API Π·Π° Metal, ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π° Π΄Π° ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, MSL Π²Π΅ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠΈΠΊΠ»ΠΈ, ΠΈΠ½Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π°Π΄ΡΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΈ Π±ΡΡΠ΅ΡΠΈ, ΡΠ΅ΠΌΠΏΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅ΠΊΡΡΡΡΠΈ ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½ΠΈ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ½ΠΈ ΠΈ ΡΡΠ°Π²Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ.
- Π Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° libvkd3d, ΠΌΠ΅ΡΠΎΠ΄ΡΡ EnumerateMetaCommands() Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΠΊΡΠΌ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ° Π½Π° API ID3D12Device5.
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ Π½ΠΎΠ² ΡΠΈΠΏ ΡΠ΅ΠΉΠ΄ΡΡ "tx" (VKD3D_SHADER_SOURCE_TX), ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π·Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠ΅ΠΉΠ΄ΡΡΠΈ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΠ΅ΠΊΡΡΡΡΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
