ΠΡΠΎΠ΅ΠΊΡ Π·Π° Π²ΠΈΠ½ΠΎ
Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° libvkd3d
Π libvkd3d-shader Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π±Π°ΠΉΡ ΠΊΠΎΠ΄Π° Π½Π° ΡΠ΅ΠΉΠ΄ΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ 4 ΠΈ 5 Π² ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΎ SPIR-V ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅. ΠΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΡΠ΅ Π²ΡΡΡ ΠΎΠ²ΠΈ, ΠΏΠΈΠΊΡΠ΅Π»Π½ΠΈ, ΡΠ΅ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½ΠΈ, ΠΈΠ·ΡΠΈΡΠ»ΠΈΡΠ΅Π»Π½ΠΈ ΠΈ ΠΏΡΠΎΡΡΠΈ Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ½ΠΈ ΡΠ΅ΠΉΠ΄ΡΡΠΈ, ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΠΎΠ΄ΠΏΠΈΡ Π½Π° ΠΊΠΎΡΠ΅Π½. ΠΠ½ΡΡΡΡΠΊΡΠΈΠΈΡΠ΅ Π½Π° ΡΠ΅ΠΉΠ΄ΡΡΠ° Π²ΠΊΠ»ΡΡΠ²Π°Ρ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ½ΠΈ, Π°ΡΠΎΠΌΠ½ΠΈ ΠΈ Π±ΠΈΡΠΎΠ²ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈ Π·Π° ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° ΠΏΠΎΡΠΎΠΊΠ° ΠΎΡ Π΄Π°Π½Π½ΠΈ, ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π·Π° ΠΈΠ·Π²Π°Π΄ΠΊΠ°, ΡΡΠ±ΠΈΡΠ°Π½Π΅ ΠΈ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π° Π½Π΅ΠΏΠΎΠ΄ΡΠ΅Π΄Π΅Π½ Π΄ΠΎΡΡΡΠΏ (UAV, ΠΈΠ·Π³Π»Π΅Π΄ Π½Π° Π½Π΅ΠΏΠΎΠ΄ΡΠ΅Π΄Π΅Π½ Π΄ΠΎΡΡΡΠΏ).
Π‘ΡΠ΅Π΄ Π½Π°ΠΉ-Π·Π½Π°ΡΠΈΠΌΠΈΡΠ΅
- ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Π½Π° libvkd3d-shader Π΅ Π³ΠΎΡΠΎΠ²Π° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π² ΠΏΡΠΎΠ΅ΠΊΡΠΈ Π½Π° ΡΡΠ΅ΡΠΈ ΡΡΡΠ°Π½ΠΈ.
- ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠ΅ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π΅Π½ ΡΠ΅ΠΉΠ΄ΡΡ.
- ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅, ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ (vkd3d_serialize_versioned_root_signature() ΠΈ vkd3d_create_versioned_root_signature_deserializer()).
- ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΏΠΎΡΠΎΡΠ½ΠΎ ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅.
- ΠΠ½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΠΈ ΠΏΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° Direct3D 12, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΌΡΠ»ΡΠΈΡΠ΅ΠΌΠΏΠ»ΠΈΡΠ°Π½Π΅, ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅ΡΡΡΡΠΈ,
ΠΈΠ½Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ°Π½ΠΎ ΡΠ΅Π½Π΄ΠΈΡΠ°Π½Π΅, ΡΠ΅Π½Π΄ΠΈΡΠ°Π½Π΅ Π² Π΄ΡΠ»Π±ΠΎΡΠΈΠ½Π° Π±Π΅Π· ΠΏΠΈΠΊΡΠ΅Π»Π½ΠΈ ΡΠ΅ΠΉΠ΄ΡΡΠΈ, Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π΅Π½ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΠ΅ΡΡΡΡΠΈ ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΎΠΏΠ°ΡΠΊΠΈ Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, Π½ΡΠ»Π΅Π²ΠΈ ΠΈΠ·Π³Π»Π΅Π΄ΠΈ. - ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° ΡΡΠ΅Π΄Π°ΡΠ°: VKD3D_CONFIG Π·Π° Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΎΠΏΡΠΈΠΈ Π·Π° ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° libvkd3d ΠΈ VKD3D_VULKAN_DEVICE Π·Π° Π·Π°ΠΌΡΠ½Π° Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΡΠΎ Π·Π° API Π½Π° Vulkan.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π·Π° ΡΠ΅ΠΉΠ΄ΡΡ Π½Π° bufinfo,
eval_centroid,
eval_sample_index,
ld2ms,
sample_b,
sample_d,
sample_info,
samplepos.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru