Collabora DirectX-āĻāĻ° āĻ‰āĻĒāĻ°ā§‡ OpenCL āĻāĻŦāĻ‚ OpenGL āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĄ-āĻ…āĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡

āĻ•ā§‹āĻŽā§āĻĒāĻžāĻ¨ā§€ āĻ¸āĻšāĻ¯ā§‹āĻ—ā§€ āĻ‰āĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻŽā§‡āĻ¸āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ—ā§āĻ¯āĻžāĻ˛āĻŋāĻ¯āĻŧāĻžāĻŽ āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ°, āĻ¯āĻž DirectX 1.2 (D3.3D12) āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨āĻ•āĻžāĻ°ā§€ āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ°āĻ—ā§āĻ˛āĻŋāĻ° āĻ‰āĻĒāĻ°ā§‡ OpenCL 3 āĻāĻŦāĻ‚ OpenGL 12 API-āĻāĻ° āĻ•āĻžāĻœ āĻ¸āĻ‚āĻ—āĻ āĻŋāĻ¤ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻ¤āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°ā§‡āĨ¤ āĻ•ā§‹āĻĄ āĻĒā§āĻ°āĻ•āĻžāĻļāĻŋāĻ¤ āĻāĻŽāĻ†āĻ‡āĻŸāĻŋ āĻ˛āĻžāĻ‡āĻ¸ā§‡āĻ¨ā§āĻ¸ā§‡āĻ° āĻ…āĻ§ā§€āĻ¨ā§‡āĨ¤

āĻĒā§āĻ°āĻ¸ā§āĻ¤āĻžāĻŦāĻŋāĻ¤ āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ° āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻāĻŽāĻ¨ āĻĄāĻŋāĻ­āĻžāĻ‡āĻ¸āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ Mesa āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧ āĻ¯āĻž āĻ¸ā§āĻĨāĻžāĻ¨ā§€āĻ¯āĻŧāĻ­āĻžāĻŦā§‡ OpenCL āĻāĻŦāĻ‚ OpenGL āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ•āĻ°ā§‡ āĻ¨āĻž, āĻāĻŦāĻ‚ D3D12-āĻāĻ° āĻ‰āĻĒāĻ°ā§‡ āĻ“āĻĒā§‡āĻ¨āĻœāĻŋāĻāĻ˛/āĻ“āĻĒā§‡āĻ¨āĻ¸āĻŋāĻāĻ˛ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻĒā§‹āĻ°ā§āĻŸ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¸ā§‚āĻšāĻ¨āĻž āĻŦāĻŋāĻ¨ā§āĻĻā§ āĻšāĻŋāĻ¸āĻžāĻŦā§‡āĨ¤ GPU āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻ¤āĻžāĻĻā§‡āĻ° āĻœāĻ¨ā§āĻ¯, āĻ¸āĻžāĻŦāĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ OpenCL āĻāĻŦāĻ‚ OpenGL-āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°āĻž āĻ¸āĻŽā§āĻ­āĻŦ āĻ•āĻ°ā§‡, āĻ¯āĻĻāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° D3D12 āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¸āĻš āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ° āĻ‰āĻĒāĻ˛āĻŦā§āĻ§ āĻĨāĻžāĻ•ā§‡āĨ¤

āĻ¤āĻžā§ŽāĻ•ā§āĻˇāĻŖāĻŋāĻ• āĻĒāĻ°āĻŋāĻ•āĻ˛ā§āĻĒāĻ¨āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ OpenCL 1.2 āĻāĻŦāĻ‚ OpenGL 3.3-āĻāĻ° āĻ¸āĻžāĻŽāĻžā§āĻœāĻ¸ā§āĻ¯āĻĒā§‚āĻ°ā§āĻŖ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻ¯āĻŧ āĻĒā§‚āĻ°ā§āĻŖ āĻ‰āĻ¤ā§āĻ¤ā§€āĻ°ā§āĻŖ āĻšāĻ“āĻ¯āĻŧāĻž, āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻžāĻŽāĻžā§āĻœāĻ¸ā§āĻ¯āĻ¤āĻž āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻž āĻāĻŦāĻ‚ Mesa-āĻāĻ° āĻŽā§‚āĻ˛ āĻ°āĻšāĻ¨āĻžāĻ¯āĻŧ āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ā§‡āĻ° āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤āĻŋāĨ¤ āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻ¸āĻĢā§āĻŸ āĻĒā§āĻ°āĻ•ā§ŒāĻļāĻ˛ā§€ āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨āĻļā§€āĻ˛ āĻ¸āĻ™ā§āĻ—ā§‡ āĻ¯ā§ŒāĻĨāĻ­āĻžāĻŦā§‡ āĻŦāĻžāĻšāĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻ–ā§‹āĻ˛āĻž āĻŸā§āĻ˛āĻ¸ D3D11On12 D3D11 āĻĨā§‡āĻ•ā§‡ D3D12 āĻāĻŦāĻ‚ āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋāĻ¤ā§‡ āĻ—ā§‡āĻŽ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ D3D12 āĻ…āĻ¨ā§āĻŦāĻžāĻĻ āĻ˛ā§‡āĻ¯āĻŧāĻžāĻ°, āĻ¯āĻž D3D12 āĻāĻ° āĻ‰āĻĒāĻ°ā§‡ āĻ†āĻĻāĻ°ā§āĻļ āĻ—ā§āĻ°āĻžāĻĢāĻŋāĻ• āĻ†āĻĻāĻŋāĻŽ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°ā§‡āĨ¤

āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻ—ā§āĻ¯āĻžāĻ˛āĻŋāĻ¯āĻŧāĻžāĻŽ āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ°, āĻ“āĻĒā§‡āĻ¨āĻ¸āĻŋāĻāĻ˛ āĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛āĻžāĻ°, āĻ“āĻĒā§‡āĻ¨āĻ¸āĻŋāĻāĻ˛ āĻ°āĻžāĻ¨āĻŸāĻžāĻ‡āĻŽ āĻāĻŦāĻ‚ āĻāĻ¨āĻ†āĻ‡āĻ†āĻ°-āĻŸā§-āĻĄāĻŋāĻāĻ•ā§āĻ¸āĻ†āĻ‡āĻāĻ˛ āĻļā§‡āĻĄāĻžāĻ° āĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛āĻžāĻ°, āĻ¯āĻž āĻŽā§‡āĻ¸āĻž-āĻ¤ā§‡ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻāĻ¨āĻ†āĻ‡āĻ†āĻ° āĻļā§‡āĻĄāĻžāĻ°āĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯āĻŦāĻ°ā§āĻ¤ā§€ āĻ‰āĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ•ā§‡ āĻĄāĻŋāĻāĻ•ā§āĻ¸āĻ†āĻ‡āĻāĻ˛ (āĻĄāĻžāĻ‡āĻ°ā§‡āĻ•ā§āĻŸāĻāĻ•ā§āĻ¸ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻŽāĻŋāĻĄāĻŋāĻ¯āĻŧā§‡āĻŸ āĻ˛ā§āĻ¯āĻžāĻ™ā§āĻ—ā§āĻ¯āĻŧā§‡āĻœ) āĻŦāĻžāĻ‡āĻ¨āĻžāĻ°āĻŋ āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻŸā§‡ āĻ°ā§‚āĻĒāĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤ āĻ•āĻ°ā§‡, āĻ¯āĻž DirectX 12-āĻ āĻ¸āĻŽāĻ°ā§āĻĨāĻŋāĻ¤ āĻāĻŦāĻ‚ āĻāĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡āĨ¤ LLVM 3.7 āĻŦāĻŋāĻŸāĻ•ā§‹āĻĄ (DirectX Shader āĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛āĻžāĻ° Microsoft āĻĨā§‡āĻ•ā§‡ āĻŽā§‚āĻ˛āĻ¤ LLVM 3.7 āĻāĻ° āĻāĻ•āĻŸāĻŋ āĻŦāĻ°ā§āĻ§āĻŋāĻ¤ āĻ•āĻžāĻāĻŸāĻž)āĨ¤ āĻ“āĻĒā§‡āĻ¨āĻ¸āĻŋāĻāĻ˛ āĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛āĻžāĻ°āĻŸāĻŋ āĻāĻ˛āĻāĻ˛āĻ­āĻŋāĻāĻŽ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒ āĻāĻŦāĻ‚ āĻ¸āĻ°āĻžā§āĻœāĻžāĻŽāĻ—ā§āĻ˛āĻŋāĻ° āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ā§‡āĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ SPIRV-LLVM.

OpenCL āĻāĻ•ā§āĻ¸āĻŸā§‡āĻ¨āĻļāĻ¨ āĻ¸āĻš āĻ‰ā§ŽāĻ¸āĻ—ā§āĻ˛āĻŋ LLVM āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻŽāĻŋāĻĄāĻŋāĻ¯āĻŧā§‡āĻŸ āĻ¸āĻŋāĻ‰āĻĄā§‹āĻ•ā§‹āĻĄ (LLVM IR) āĻ āĻ•ā§āĻ˛ā§āĻ¯āĻžāĻ‚ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ¸āĻ‚āĻ•āĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻ¯āĻž āĻĒāĻ°ā§‡ SPIR-V āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ā§‡ OpenCL āĻ•āĻžāĻ°ā§āĻ¨ā§‡āĻ˛ā§‡āĻ° āĻŽāĻ§ā§āĻ¯āĻŦāĻ°ā§āĻ¤ā§€ āĻ‰āĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ¯āĻŧ āĻ°ā§‚āĻĒāĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤ SPIR-V āĻ‰āĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻ•ā§‹āĻ°āĻ—ā§āĻ˛āĻŋ Mesa-āĻ¤ā§‡ āĻĒāĻžāĻ¸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, NIR āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻŸā§‡ āĻ…āĻ¨ā§āĻŦāĻžāĻĻ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ…āĻĒā§āĻŸāĻŋāĻŽāĻžāĻ‡āĻœ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ DXIL āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻŸā§‡ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸ āĻļā§‡āĻĄāĻžāĻ°ā§āĻ¸ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ NIR-āĻŸā§-DXIL-āĻ āĻĒāĻžāĻ¸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻž DirectX 12-āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋāĻ• āĻ°āĻžāĻ¨āĻŸāĻžāĻ‡āĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ GPU-āĻ¤ā§‡ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ‰āĻĒāĻ¯ā§āĻ•ā§āĻ¤āĨ¤
āĻ•ā§āĻ˛ā§‹āĻ­āĻžāĻ°ā§‡āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡, āĻŽā§‡āĻ¸āĻžāĻ¤ā§‡ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ OpenCL āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨, āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ OpenCL āĻ°āĻžāĻ¨āĻŸāĻžāĻ‡āĻŽ āĻĒā§āĻ°āĻ¸ā§āĻ¤āĻžāĻŦ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¯āĻžāĻ¤ā§‡ DirectX 12 API-āĻ¤ā§‡ āĻ†āĻ°āĻ“ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ°ā§‚āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻ•āĻ°āĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤

Collabora DirectX-āĻāĻ° āĻ‰āĻĒāĻ°ā§‡ OpenCL āĻāĻŦāĻ‚ OpenGL āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĄ-āĻ…āĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡

āĻ“āĻĒā§‡āĻ¨āĻ¸āĻŋāĻāĻ˛ āĻāĻŦāĻ‚ āĻ“āĻĒā§‡āĻ¨āĻœāĻŋāĻāĻ˛ āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ°āĻ—ā§āĻ˛āĻŋ āĻŽā§‡āĻ¸āĻž-āĻ¤ā§‡ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻ—ā§āĻ¯āĻžāĻ˛āĻŋāĻ¯āĻŧāĻžāĻŽ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¯āĻž āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ“āĻĒā§‡āĻ¨āĻœāĻŋāĻāĻ˛-āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻŦāĻŋāĻŦāĻ°āĻŖā§‡ āĻ¨āĻž āĻ—āĻŋāĻ¯āĻŧā§‡āĻ‡ āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ° āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻāĻŦāĻ‚ āĻ†āĻ§ā§āĻ¨āĻŋāĻ• āĻœāĻŋāĻĒāĻŋāĻ‡āĻ‰āĻ—ā§āĻ˛āĻŋ āĻ¯ā§‡ āĻ—ā§āĻ°āĻžāĻĢāĻŋāĻ•ā§āĻ¸ āĻĒā§āĻ°āĻŋāĻŽāĻŋāĻŸāĻŋāĻ­āĻ—ā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ•āĻ°ā§‡ āĻ¤āĻžāĻ° āĻ•āĻžāĻ›āĻžāĻ•āĻžāĻ›āĻŋ āĻ“āĻĒā§‡āĻ¨āĻœāĻŋāĻāĻ˛ āĻ•āĻ˛āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ…āĻ¨ā§āĻŦāĻžāĻĻ āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧāĨ¤ āĻ—ā§āĻ¯āĻžāĻ˛āĻŋāĻ¯āĻŧāĻžāĻŽ āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ°, OpenGL āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ—ā§āĻ°āĻšāĻŖ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ NIR-to-DXIL āĻ…āĻ¨ā§āĻŦāĻžāĻĻāĻ• āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ
āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻŦāĻžāĻĢāĻžāĻ° āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡ āĻ¯āĻž D3D12 āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ GPU-āĻ¤ā§‡ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤

āĻ‰āĻ¤ā§āĻ¸: opennet.ru

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨