рдХреЛрд▓рд╛рдмреЛрд░рд╛рд▓реЗ DirectX рдХреЛ рд╢реАрд░реНрд╖рдорд╛ OpenCL рд░ OpenGL рдЪрд▓рд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рдПрдб-рдЕрди рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрджрдЫ

рдХреЛрд▓рд╛рдмреЛрд░рд╛ рдХрдореНрдкрдиреА рдкреНрд░рд╕реНрддреБрдд рдореЗрд╕рд╛рдХрд╛ рд▓рд╛рдЧрд┐ рдирдпрд╛рдБ рдЧреНрдпрд╛рд▓рд┐рдпрдо рдбреНрд░рд╛рдЗрднрд░, рдЬрд╕рд▓реЗ DirectX 1.2 (D3.3D12) рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрдиреЗ рдбреНрд░рд╛рдЗрднрд░рд╣рд░реВрдХреЛ рд╢реАрд░реНрд╖рдорд╛ OpenCL 3 рд░ OpenGL 12 API рдХреЛ рдХрд╛рдо рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рддрд╣ рд▓рд╛рдЧреВ рдЧрд░реНрджрдЫред рдХреЛрдб рдкреНрд░рдХрд╛рд╢рд┐рдд MIT рд▓рд╛рдЗрд╕реЗрдиреНрд╕ рдЕрдиреНрддрд░реНрдЧрддред

рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдбреНрд░рд╛рдЗрднрд░рд▓реЗ рддрдкрд╛рдЗрдБрд▓рд╛рдИ рдпрдиреНрддреНрд░рд╣рд░реВрдорд╛ рдореЗрд╕рд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ рдЬреБрди рдиреЗрдЯрд┐рдн рд░реВрдкрдорд╛ OpenCL рд░ OpenGL рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджреИрди, рд░ D3D12 рдХреЛ рд╢реАрд░реНрд╖рдорд╛ рдЪрд▓рд╛рдЙрди OpenGL/OpenCL рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ рдкреЛрд░реНрдЯ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рд╕реБрд░реВрд╡рд╛рдд рдмрд┐рдиреНрджреБрдХреЛ рд░реВрдкрдорд╛ рдкрдирд┐ред GPU рдирд┐рд░реНрдорд╛рддрд╛рд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐, рдЙрдкрдкреНрд░рдгрд╛рд▓реАрд▓реЗ OpenCL рд░ OpenGL рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдЧрд░реНрди рд╕рдореНрднрд╡ рдмрдирд╛рдЙрдБрдЫ, рдпрджрд┐ D3D12 рд╕рдорд░реНрдерди рднрдПрдХрд╛ рдЪрд╛рд▓рдХрд╣рд░реВ рдорд╛рддреНрд░ рдЙрдкрд▓рдмреНрдз рдЫрдиреНред

рддрддреНрдХрд╛рд▓рдХрд╛ рдпреЛрдЬрдирд╛рд╣рд░реВ рдордзреНрдпреЗ OpenCL 1.2 рд░ OpenGL 3.3 рдХреЛ рдЕрдиреБрдХреВрд▓рддрд╛ рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рдкреВрд░рд╛ рдЧрд░реНрдиреЗ рдЙрдкрд▓рдмреНрдзрд┐, рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрд╕рдБрдЧ рдЕрдиреБрдХреВрд▓рддрд╛ рдЬрд╛рдБрдЪ рд░ рдореЗрд╕рд╛рдХреЛ рдореБрдЦреНрдп рд╕рдВрд░рдЪрдирд╛рдорд╛ рд╡рд┐рдХрд╛рд╕рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрдиреЗ рдЙрдкрд▓рдмреНрдзрд┐рд╣рд░реВ рдЫрдиреНред рд╡рд┐рдХрд╛рд╕ рдорд╛рдЗрдХреНрд░реЛрд╕рдлреНрдЯ рдЗрдиреНрдЬрд┐рдирд┐рдпрд░рд╣рд░реБ рдХреЛ рд╡рд┐рдХрд╛рд╕ рд╕рдВрдЧ рд╕рдВрдпреБрдХреНрдд рд░реВрдкрдорд╛ рдЧрд░рд┐рдиреНрдЫ рдЦреЛрд▓реНрдиреБрд╣реЛрд╕реН рдЙрдкрдХрд░рдгрд╣рд░реВ D3D11On12 рдЦреЗрд▓рд╣рд░реВ D3D11 рдмрд╛рдЯ D3D12 рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпрдорд╛ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ D3D12 рдЕрдиреБрд╡рд╛рдж рддрд╣, рдЬрд╕рд▓реЗ D3D12 рдХреЛ рд╢реАрд░реНрд╖рдорд╛ рдорд╛рдирдХ рдЧреНрд░рд╛рдлрд┐рдХ рдЖрджрд┐рдорд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░реНрджрдЫред

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдорд╛ рдЧреНрдпрд╛рд▓рд┐рдпрдо рдбреНрд░рд╛рдЗрднрд░, рдУрдкрдирд╕реАрдПрд▓ рдХрдореНрдкрд╛рдЗрд▓рд░, рдУрдкрдирд╕реАрдПрд▓ рд░рдирдЯрд╛рдЗрдо рд░ рдПрдирдЖрдИрдЖрд░-рдЯреВ-рдбреАрдПрдХреНрд╕рдЖрдИрдПрд▓ рд╢реЗрдбрд░ рдХрдореНрдкрд╛рдЗрд▓рд░ рд╕рдорд╛рд╡реЗрд╢ рдЫ, рдЬрд╕рд▓реЗ рдореЗрд╕рд╛рдорд╛ рдкреНрд░рдпреЛрдЧ рд╣реБрдиреЗ рдПрдирдЖрдИрдЖрд░ рд╢реЗрдбрд░рд╣рд░реВрдХреЛ рдордзреНрдпрд╡рд░реНрддреА рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡рд▓рд╛рдИ DXIL (рдбрд╛рдпрд░реЗрдХреНрдЯрдПрдХреНрд╕ рдордзреНрдпрд╡рд░реНрддреА рднрд╛рд╖рд╛) рдмрд╛рдЗрдирд░реА рдврд╛рдБрдЪрд╛рдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрджрдЫ, DirectX 12 рдорд╛ рд╕рдорд░реНрдерд┐рдд рд░ рдЖрдзрд╛рд░рд┐рддред LLVM 3.7 рдмрд┐рдЯрдХреЛрдб (рдбрд╛рдЗрд░реЗрдХреНрдЯрдПрдХреНрд╕ рд╢реЗрдбрд░ рдХрдореНрдкрд╛рдЗрд▓рд░ Microsoft рдмрд╛рдЯ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдкрдорд╛ LLVM 3.7 рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдлреЛрд░реНрдХ рд╣реЛред OpenCL рдХрдореНрдкрд╛рдЗрд▓рд░ LLVM рдкрд░рд┐рдпреЛрдЬрдирд╛ рд░ рдЙрдкрдХрд░рдгрд╣рд░реВрдХреЛ рд╡рд┐рдХрд╛рд╕рдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЫ SPIRV-LLVM.

рдУрдкрдирд╕реАрдПрд▓ рдПрдХреНрд╕рдЯреЗрдиреНрд╕рдирд╣рд░реВ рднрдПрдХрд╛ рд╕реНрд░реЛрддрд╣рд░реВрд▓рд╛рдИ LLVM рдордзреНрдпрд╡рд░реНрддреА рд╕реНрдпреВрдбреЛрдХреЛрдб (LLVM IR) рдорд╛ рдХреНрд▓реНрдпрд╛рдЩреН рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░рд┐рдиреНрдЫ, рдЬреБрди рддреНрдпрд╕рдкрдЫрд┐ SPIR-V рдврд╛рдБрдЪрд╛рдорд╛ OpenCL рдХрд░реНрдиреЗрд▓рд╣рд░реВрдХреЛ рдордзреНрдпрд╡рд░реНрддреА рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡рдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рд╣реБрдиреНрдЫред SPIR-V рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡рдХрд╛ рдХреЛрд░рд╣рд░реВрд▓рд╛рдИ Mesa рдорд╛ рдкрд╛рд╕ рдЧрд░рд┐рдиреНрдЫ, NIR рдврд╛рдБрдЪрд╛рдорд╛ рдЕрдиреБрд╡рд╛рдж рдЧрд░рд┐рдиреНрдЫ, рдЕрдиреБрдХреВрд▓рд┐рдд рдЧрд░реА NIR-to-DXIL рдорд╛ рдкрд╛рд╕ рдЧрд░рд┐рдиреНрдЫ DXIL рдврд╛рдБрдЪрд╛рдорд╛ рдХрдореНрдкреНрдпреБрдЯ рд╢реЗрдбрд░рд╣рд░реВ рдЙрддреНрдкрдиреНрди рдЧрд░реНрди, DirectX 12-рдЖрдзрд╛рд░рд┐рдд рд░рдирдЯрд╛рдЗрдо рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ GPU рдорд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрдпреБрдХреНрддред
Clover рдХреЛ рд╕рдЯреНрдЯрд╛, Mesa рдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ OpenCL рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, рдПрдХ рдирдпрд╛рдБ OpenCL рд░рдирдЯрд╛рдЗрдо рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдЫ, DirectX 12 API рдорд╛ рдердк рдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдкрд╛рдиреНрддрд░рдгрд╣рд░реВрд▓рд╛рдИ рдЕрдиреБрдорддрд┐ рджрд┐рдБрджреИред

рдХреЛрд▓рд╛рдмреЛрд░рд╛рд▓реЗ DirectX рдХреЛ рд╢реАрд░реНрд╖рдорд╛ OpenCL рд░ OpenGL рдЪрд▓рд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рдПрдб-рдЕрди рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрджрдЫ

рдУрдкрдирд╕реАрдПрд▓ рд░ рдУрдкрдирдЬреАрдПрд▓ рдбреНрд░рд╛рдЗрднрд░рд╣рд░реВ рдореЗрд╕рд╛рдорд╛ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рдЧреНрдпрд╛рд▓рд┐рдпрдо рдЗрдиреНрдЯрд░рдлреЗрд╕ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рддрдпрд╛рд░ рд╣реБрдиреНрдЫрдиреН, рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдУрдкрдирдЬреАрдПрд▓-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╡рд░рдгрд╣рд░реВрдорд╛ рдирдЬрд╛рдЗрдХрди рдбреНрд░рд╛рдЗрднрд░рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд░ рдЖрдзреБрдирд┐рдХ GPU рд╣рд░реВрд▓реЗ рд╕рдЮреНрдЪрд╛рд▓рди рдЧрд░реНрдиреЗ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдкреНрд░рд┐рдорд┐рдЯрд┐рд╡рд╣рд░реВрдХреЛ рдирдЬрд┐рдХ OpenGL рдХрд▓рд╣рд░реВ рдЕрдиреБрд╡рд╛рдж рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред Gallium рдЪрд╛рд▓рдХ, OpenGL рдЖрджреЗрд╢рд╣рд░реВ рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрджрдЫ рд░ NIR-to-DXIL рдЕрдиреБрд╡рд╛рджрдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛
D3D12 рдбреНрд░рд╛рдЗрднрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ GPU рдорд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдПрдХрд╛ рдЖрджреЗрд╢ рдмрдлрд░рд╣рд░реВ рдЙрддреНрдкрдиреНрди рдЧрд░реНрджрдЫред

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди