рд╡рд╛рдЗрди рдкреНрд░реЛрдЬреЗрдХреНрдЯрд▓реЗ Direct3D 1.11 рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд╕рд╛рде vkd3d 12 рдкреНрдпрд╛рдХреЗрдЬрдХреЛ рд░рд┐рд▓реАрдЬ рдкреНрд░рдХрд╛рд╢рд┐рдд рдЧрд░реЗрдХреЛ рдЫ рдЬреБрди Vulkan рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ API рдорд╛ рдкреНрд░рд╕рд╛рд░рдг рдХрд▓рд╣рд░реВ рдорд╛рд░реНрдлрдд рдХрд╛рдо рдЧрд░реНрджрдЫред рдкреНрдпрд╛рдХреЗрдЬрд▓реЗ Direct3D 3 рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд╕рд╛рде libvkd12d рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВ, shader рдореЛрдбреЗрд▓ 3 рд░ 4 рдХреЛ рдЕрдиреБрд╡рд╛рджрдХрдХреЛ рд╕рд╛рде libvkd5d-shader рд░ Direct3D 3 рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдХреЛ рдкреЛрд░реНрдЯрд┐рдЩрд▓рд╛рдИ рд╕рд░рд▓ рдмрдирд╛рдЙрдиреЗ рдХрд╛рд░реНрдпрд╣рд░реВ рд╕рд╣рд┐рдд libvkd12d-utils, рд╕рд╛рдереИ рдбреЗрдореЛ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВрдХреЛ рд╕реЗрдЯ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред Direct3D 12 рдорд╛ glxgears рдХреЛред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛрдб LGPLv2.1 рдЕрдиреНрддрд░реНрдЧрдд рд▓рд╛рдЗрд╕реЗрдиреНрд╕ рд╡рд┐рддрд░рдг рдЧрд░рд┐рдПрдХреЛ рдЫред
libvkd3d рдкреБрд╕реНрддрдХрд╛рд▓рдпрд▓реЗ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд░ рдХрдореНрдкреНрдпреБрдЯрд┐рдЩ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ, рд▓рд╛рдо рд░ рдЖрджреЗрд╢ рд╕реВрдЪреАрд╣рд░реВ, рд╣реНрдпрд╛рдиреНрдбрд▓рд╣рд░реВ рд░ рд╣рд┐рдк рд╣реНрдпрд╛рдиреНрдбрд▓рд╣рд░реВ, рд░реВрдЯ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд╣рд░реВ, рдЖрдЙрдЯ-рдЕрдл-рдЕрд░реНрдбрд░ рдкрд╣реБрдБрдЪ, рдирдореВрдирд╛рд╣рд░реВ, рдЖрджреЗрд╢ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд╣рд░реВ, рдореВрд▓ рд╕реНрдерд┐рд░рддрд╛рд╣рд░реВ, рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рдкреНрд░рддрд┐рдкрд╛рджрди, рд╕реНрдкрд╖реНрдЯ рд╡рд┐рдзрд┐рд╣рд░реВ *( ) рд░ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ *()ред libvkd3d-shader рдорд╛, рдордзреНрдпрд╡рд░реНрддреА SPIR-V рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡рдорд╛ shader рдореЛрдбреЗрд▓ 12 рд░ 3 рдХреЛ рдмрд╛рдЗрдЯрдХреЛрдбрдХреЛ рдЕрдиреБрд╡рд╛рдж рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдПрдХреЛ рдЫред рднреЗрд░реНрдЯреЗрдХреНрд╕, рдкрд┐рдХреНрд╕реЗрд▓, рдЯреЗрд╕реЗрд▓реЗрд╕рди, рдХрдореНрдкреНрдпреБрдЯ рд░ рд╕рд╛рдзрд╛рд░рдг рдЬреНрдпрд╛рдорд┐рддрд┐ рд╢реЗрдбрд░рд╣рд░реВ, рд░реВрдЯ рд╕рд┐рдЧреНрдиреЗрдЪрд░ рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬреЗрд╕рди рд░ рдбрд┐рд╕реЗрд░рд┐рдпрд▓рд╛рдЗрдЬреЗрд╕рдирд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫред рд╢реЗрдбрд░ рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВрдорд╛ рдЕрдВрдХрдЧрдгрд┐рдд, рдкрд░рдорд╛рдгреБ рд░ рдмрд┐рдЯ рдЕрдкрд░реЗрд╢рдирд╣рд░реВ, рддреБрд▓рдирд╛ рд░ рдбреЗрдЯрд╛ рдкреНрд░рд╡рд╛рд╣ рдирд┐рдпрдиреНрддреНрд░рдг рдЕрдкрд░реЗрдЯрд░рд╣рд░реВ, рдирдореВрдирд╛, рд╕рдЩреНрдХрд▓рди рд░ рд▓реЛрдб рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ, рдЕрдХреНрд░рдорд┐рдд рдкрд╣реБрдБрдЪ рд╕рдЮреНрдЪрд╛рд▓рдирд╣рд░реВ (UAV, Unordered Access View) рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреНред
рдирдпрд╛рдБ рд╕рдВрд╕реНрдХрд░рдгрдорд╛:
- SPIR-V рд╢реЗрдбрд░ рдордзреНрдпрд╡рд░реНрддреА рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡рдорд╛ рд▓рд┐рдЧреЗрд╕реА Direct3D рдмрд╛рдЗрдЯрдХреЛрдб рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░реНрди рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рд╕рдорд░реНрдерди рдердкрд┐рдпреЛред
- HLSL рдХрдореНрдкрд╛рдЗрд▓рд░рд▓реЗ Direct3D рдкреНрд░рднрд╛рд╡ рдкреНрд░реЛрдлрд╛рдЗрд▓рд╣рд░реВ ('fx_2_0', 'fx_4_0', 'fx_4_1', рд░ 'fx_5_0') рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░реНрди рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рд╕рдорд░реНрдерди рдердкреЗрдХреЛ рдЫред
- SPIR-V рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд░ Direct3D рд╢реЗрдбрд░ рдЕрд╕реЗрдВрдмрд▓реА рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВрдорд╛ DirectX рдордзреНрдпрд╡рд░реНрддреА рднрд╛рд╖рд╛ (DXIL) рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░реНрди рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд╕рдорд░реНрдерди рдердкрд┐рдпреЛред
- HLSL рд▓реЗ рдЕрдм "fx_2_0", "fx_4_0", "fx_4_1" рд░ "fx_5_0" рдкреНрд░реЛрдлрд╛рдЗрд▓рд╣рд░реВрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ, рдирд┐рд░реНрдорд┐рдд рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ acos(), asin(), atan() рд░ atan2() рд▓рд╛рдЧреВ рдЧрд░реНрджрдЫ, рд░ "рдмрдлрд░" рд╕реНрд░реЛрддрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред
- рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдЕрдкрдбреЗрдЯрд╣рд░реВ рдПрд╕рд┐рдиреНрдХреНрд░реЛрдирд╕ рд░реВрдкрдорд╛ рдЧрд░реНрдиреЗ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рди рдердкрд┐рдпреЛ, рдЬрд╕рд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рдлреНрд░реЗрдордорд╛ рдареВрд▓реЛ рд╕рдВрдЦреНрдпрд╛рдорд╛ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░рд╣рд░реВ рдЕрдкрдбреЗрдЯ рдЧрд░реНрдиреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдХреЛ рдЧрддрд┐ рдмрдврд╛рдЙрди рд╕рдХреНрдЫред
- рд╡рд░реНрдгрдирдХрд░реНрддрд╛ рдкреВрд▓рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреЗ рджрдХреНрд╖рддрд╛ рд╕реБрдзрд╛рд░ рдЧрд░реНрди рд░ рднреЗрд░реНрдЯреЗрдХреНрд╕ рд░ рдЯреЗрд╕реЗрд▓реЗрд╕рди рд╢реЗрдбрд░ рдПрд░реЗрд╣рд░реВрдХреЛ рд░реЗрдиреНрдбрд░рд┐рдЩрд▓рд╛рдИ рдЧрддрд┐ рджрд┐рди Vulkan рдПрдХреНрд╕рдЯреЗрдиреНрд╕рди VK_EXT_mutable_descriptor_type рд░ VK_EXT_shader_viewport_index_layer рдХреЛ рдкреНрд░рдпреЛрдЧ рд╕рдХреНрд╖рдо рдкрд╛рд░рд┐рдпреЛред
- ID3D12Device7 рд░ ID3D12Resource2 рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рдЗрдиреНрдЯрд░рдлреЗрд╕рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдердкрд┐рдпреЛред GetResourceAllocationInfo3() рд╡рд┐рдзрд┐ ID12D4Device1 рдЗрдиреНрдЯрд░рдлреЗрд╕рдорд╛ рдердкрд┐рдПрдХреЛ рдЫред
- D3DReflect() рд░ D3DDisassemble() рдЗрдиреНрдЯрд░рдлреЗрд╕рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдердкрд┐рдпреЛред
- рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдПрдХрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд░рд╢реНрдирд╣рд░реВ D3D12_FEATURE_D3D12_OPTIONS6 D3D12_FEATURE_D3D12_OPTIONS7, D3D12_FEATURE_D3D12_OPTIONS8, D3D12_FEATURE_D3D12_OPTIONS9, D3D12_FEATURE_D3D12_OPTIONS10, D3D12_FEATURE_D3D12_OPTIONS11, D3D12_FEATURE_D3D12_OPTIONS12, D3D12_FEATURE_D3D12_OPTIONS13ред
- рдирдпрд╛рдБ рдирд┐рд░реНрдорд╛рдг рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдердкрд┐рдПрдХрд╛ рдЫрдиреН: VKD3D_SHADER_COMPILE_OPTION_FEATURE, VKD3D_SHADER_COMPILE_OPTION_FEATURE_INT64, VKD3D_SHADER_COMPILE_OPTION_FEATURE_FLOAT64, VKD3D_SHADER_API_VERSION_1_10 рд░ VKD3D_SHADER_SPIRV_EXTENSION_EXT_VIEWPORT_INDEX_LAYERред
- D3D12CreateDeviceVKD3D() рд░ D3D12CreateDevice() рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрд▓реЗ Vulkan рдПрдХреНрд╕рдЯреЗрдиреНрд╕рдирд╣рд░реВ VK_KHR_android_surface, VK_KHR_wayland_surface, VK_KHR_win32_surface, VK_KHR_xlib_surface, VK_EXT_metal_surface, рд░ VK_MVK_ios_surface рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫрдиреНред
рд╕реНрд░реЛрдд: opennet.ru
