OpenGL āĻāĻŦāĻ Vulkan API - āĻŽā§āĻ¸āĻž 22.3.0 - āĻāĻ° āĻŦāĻŋāĻ¨āĻžāĻŽā§āĻ˛ā§āĻ¯ā§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻĒā§āĻ°āĻāĻžāĻļ āĻĒā§āĻ°āĻāĻžāĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻŽā§āĻ¸āĻž 22.3.0 āĻļāĻžāĻāĻžāĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻĒā§āĻ°āĻāĻžāĻļā§āĻ° āĻāĻāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻŽā§āĻ˛āĻ āĻ āĻŦāĻ¸ā§āĻĨāĻž āĻ°āĻ¯āĻŧā§āĻā§ - āĻā§āĻĄā§āĻ° āĻā§āĻĄāĻŧāĻžāĻ¨ā§āĻ¤ āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻļā§āĻ˛āĻ¤āĻžāĻ° āĻĒāĻ°ā§, āĻāĻāĻāĻŋ āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻļā§āĻ˛ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ 22.3.1 āĻĒā§āĻ°āĻāĻžāĻļāĻŋāĻ¤ āĻšāĻŦā§āĨ¤
Mesa 22.3 Intel GPU-āĻāĻ° āĻāĻ¨ā§āĻ¯ anv-āĻ Vulkan 1.3 āĻā§āĻ°āĻžāĻĢāĻŋāĻā§āĻ¸ API, AMD GPU-āĻāĻ° āĻāĻ¨ā§āĻ¯ radv, Qualcomm GPU-āĻāĻ° āĻāĻ¨ā§āĻ¯ tu, āĻāĻŦāĻ āĻāĻŽā§āĻ˛ā§āĻāĻ° āĻŽā§āĻĄā§ (vn) āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĨ¤ Vulkan 1.1 āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ˛āĻžāĻāĻĒāĻžāĻāĻĒ (lvp) āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ°āĻžāĻ¸ā§āĻāĻžāĻ°āĻžāĻāĻāĻžāĻ°ā§ āĻāĻŦāĻ V1.0dv āĻĄā§āĻ°āĻžāĻāĻāĻžāĻ°ā§ Vulkan 3 āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ (Raspberry Pi 4 āĻĨā§āĻā§ Broadcom VideoCore VI GPU)āĨ¤
āĻāĻāĻžāĻĄāĻŧāĻžāĻ Mesa 4.6, iris (Intel), radeonsi (AMD), zink āĻāĻŦāĻ llvmpipe āĻĄā§āĻ°āĻžāĻāĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ OpenGL 965 āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĨ¤ OpenGL 4.5 āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ AMD (r600), NVIDIA (nvc0) āĻāĻŦāĻ Qualcomm Adreno (freedreno) GPU-āĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ˛āĻŦā§āĻ§, OpenGL 4.3 virgl (QEMU/KVM-āĻāĻ° āĻāĻ¨ā§āĻ¯ virgil3D āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ GPU), āĻāĻŦāĻ OpenGL 4.2 d3d12 organL āĻĄā§āĻ°āĻžāĻāĻāĻžāĻ° (a OpenGL) āĻĄā§āĻ°āĻžāĻāĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ DirectX 12 āĻāĻ° āĻāĻĒāĻ°ā§ āĻāĻžāĻ āĻāĻ°ā§āĻ¨)āĨ¤
āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻāĻĻā§āĻāĻžāĻŦāĻ¨:
- Qualcomm Adreno GPU-āĻ° āĻāĻ¨ā§āĻ¯ freedreno āĻĄā§āĻ°āĻžāĻāĻāĻžāĻ° OpenGL 4.5 āĻā§āĻ°āĻžāĻĢāĻŋāĻā§āĻ¸ API-āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻŽā§āĻ˛ā§āĻāĻ° āĻĄā§āĻ°āĻžāĻāĻāĻžāĻ° (vn) Vulkan 1.3 API āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°ā§āĨ¤
- āĻĒā§āĻ¯āĻžāĻ¨āĻĢā§āĻ°āĻ¸ā§āĻ āĻĄā§āĻ°āĻžāĻāĻāĻžāĻ° āĻĄāĻŋāĻ¸ā§āĻā§ āĻļā§āĻĄāĻžāĻ°ā§āĻ¸ āĻā§āĻ¯āĻžāĻļā§ āĻāĻ°āĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°ā§ āĻāĻŦāĻ āĻŽāĻžāĻ˛āĻŋ T620 GPU-āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°ā§āĨ¤ āĻĄā§āĻ°āĻžāĻāĻāĻžāĻ°āĻāĻŋ OpenGL 3.1 āĻ¸ā§āĻĒā§āĻ¸āĻŋāĻĢāĻŋāĻā§āĻļāĻ¨ āĻāĻŦāĻ OpenGL ES 3.1 āĻāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻžāĻŽāĻā§āĻāĻ¸ā§āĻ¯āĻĒā§āĻ°ā§āĻŖāĨ¤
- RADV (AMD) Vulkan āĻĄā§āĻ°āĻžāĻāĻāĻžāĻ° GFX11/RDNA3 GPUs (Radeon RX 7000 āĻ¸āĻŋāĻ°āĻŋāĻ) āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°ā§āĻā§āĨ¤ āĻ°ā§ āĻā§āĻ°ā§āĻ¸āĻŋāĻāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻĄāĻāĻŋ āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ R8G8B8, B8G8R8 āĻāĻŦāĻ R16G16B16 āĻĒāĻŋāĻā§āĻ¸ā§āĻ˛ āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻāĻā§āĻ˛āĻŋāĻ° āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ 64-āĻŦāĻŋāĻ āĻāĻžāĻ°ā§āĻā§āĻā§āĻ¸ āĻŦāĻžāĻĢāĻžāĻ° āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ā§ˇ ExtendedDynamicState2PatchControlPoints āĻĒāĻ¤āĻžāĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¯āĻž VK_EXT_extended_dynamic_state2 āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§āĨ¤ Radeon Raytracing āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻ āĻ¸āĻŽāĻ¨ā§āĻŦāĻŋāĻ¤.
- āĻĒā§āĻ¯āĻžāĻā§āĻāĻāĻŋāĻ¤ā§ āĻāĻĒā§āĻ¨āĻ¸āĻŋāĻāĻ˛ 3.0 āĻ¸ā§āĻĒā§āĻ¸āĻŋāĻĢāĻŋāĻā§āĻļāĻ¨ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ°āĻžāĻ¸ā§āĻāĻŋāĻāĻ˛ āĻĄā§āĻ°āĻžāĻāĻāĻžāĻ° āĻ°āĻ¯āĻŧā§āĻā§, āĻ¯āĻž āĻā§āĻ°āĻ¸-āĻĒā§āĻ˛ā§āĻ¯āĻžāĻāĻĢāĻ°ā§āĻŽ āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻŋāĻ āĻ¸āĻāĻāĻ āĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻŋāĻāĻ āĻāĻŦāĻ C āĻāĻžāĻˇāĻžāĻ° āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨āĻā§āĻ˛āĻŋāĻā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°ā§āĨ¤ āĻĄā§āĻ°āĻžāĻāĻāĻžāĻ°āĻāĻŋ āĻ°āĻžāĻ¸ā§āĻā§ āĻ˛ā§āĻāĻž, āĻŽā§āĻ¸āĻž-āĻ¤ā§ āĻĻā§āĻāĻ¯āĻŧāĻž āĻā§āĻ¯āĻžāĻ˛āĻŋāĻ¯āĻŧāĻžāĻŽ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻŦāĻŋāĻāĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻŽā§āĻ¸āĻž-āĻ¤ā§ āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻā§āĻ˛ā§āĻāĻžāĻ° āĻāĻĒā§āĻ¨āĻ¸āĻŋāĻāĻ˛ āĻĢā§āĻ°āĻ¨ā§āĻāĻāĻ¨ā§āĻĄā§āĻ° āĻ ā§āĻ¯āĻžāĻ¨āĻžāĻ˛āĻ āĻšāĻŋāĻ¸ā§āĻŦā§ āĻāĻžāĻ āĻāĻ°ā§āĨ¤ āĻā§āĻ˛ā§āĻāĻžāĻ° āĻĻā§āĻ°ā§āĻ āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻ°āĻŋāĻ¤ā§āĻ¯āĻā§āĻ¤ āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻāĻ° āĻāĻŦāĻŋāĻˇā§āĻ¯āĻ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ°āĻžāĻ¸ā§āĻāĻŋāĻāĻ˛ āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ āĻāĻ°āĻā§āĨ¤ āĻŽāĻ°āĻŋāĻāĻž āĻāĻŦāĻ āĻ°āĻžāĻ¸ā§āĻāĻŋāĻā§āĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§ āĻ āĻā§āĻˇāĻŽ āĻāĻ°āĻž āĻĨāĻžāĻā§ āĻāĻŦāĻ "-D gallium-rusticl=true -Dllvm=enabled -Drust_std=2021" āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻŦāĻŋāĻ˛ā§āĻĄ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻ°āĻžāĻ¸ā§āĻāĻ¸āĻŋ āĻāĻŽā§āĻĒāĻžāĻāĻ˛āĻžāĻ°, āĻŦāĻžāĻāĻ¨ā§āĻĄāĻā§āĻ¨ āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻ āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ°, LLVM, SPIRV-Tools āĻāĻŦāĻ SPIRV-LLVM-āĻā§āĻ°āĻžāĻ¨ā§āĻ¸āĻ˛ā§āĻāĻ° āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻž āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤
- RadeonSI āĻĄā§āĻ°āĻžāĻāĻāĻžāĻ°ā§ OpenGL āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§ āĻŽāĻžāĻ˛ā§āĻāĻŋ-āĻĨā§āĻ°ā§āĻĄā§āĻĄ āĻ°ā§āĻ¨ā§āĻĄāĻžāĻ°āĻŋāĻāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤
- āĻŽā§āĻ¸āĻž-āĻĄāĻŋāĻŦāĻŋ āĻĒā§āĻ°āĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ§āĻ°āĻ¨ā§āĻ° āĻļā§āĻĄāĻžāĻ° āĻā§āĻ¯āĻžāĻļā§ āĻ¯āĻž āĻāĻāĻāĻŋ āĻāĻāĻ āĻĢāĻžāĻāĻ˛ā§ āĻĄā§āĻāĻž āĻ¸āĻā§āĻāĻ¯āĻŧ āĻāĻ°ā§āĨ¤
- OpenGL āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§:
- llvmpipe-āĻāĻ° āĻāĻ¨ā§āĻ¯ GL_ARB_shader_clockāĨ¤
- āĻāĻŋāĻā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ GL_KHR_blend_equation_advanced_coherent.
- llvmpipe-āĻāĻ° āĻāĻ¨ā§āĻ¯ GL_NV_shader_atomic_float
- āĻāĻ˛āĻāĻžāĻ¨ āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§:
- āĻ˛āĻžāĻāĻĒāĻžāĻāĻĒā§āĻ° āĻāĻ¨ā§āĻ¯ VK_KHR_shader_clockāĨ¤
- RADV, āĻ˛āĻžāĻāĻĒāĻžāĻāĻĒā§āĻ° āĻāĻ¨ā§āĻ¯ VK_EXT_attachment_feedback_loop_layout.
- RADV-āĻāĻ° āĻāĻ¨ā§āĻ¯ VK_KHR_global_priority.
- RADV-āĻāĻ° āĻāĻ¨ā§āĻ¯ VK_EXT_load_store_op_none
- RADV-āĻāĻ° āĻāĻ¨ā§āĻ¯ VK_EXT_mutable_descriptor_type.
- lvp āĻāĻ° āĻāĻ¨ā§āĻ¯ VK_EXT_shader_atomic_float
- lvp āĻāĻ° āĻāĻ¨ā§āĻ¯ VK_EXT_shader_atomic_float2
- v3dv-āĻāĻ° āĻāĻ¨ā§āĻ¯ VK_EXT_image_robustness.
- āĻ˛āĻžāĻāĻĒāĻžāĻāĻĒ, RADV āĻāĻŦāĻ ANV-āĻāĻ° āĻāĻ¨ā§āĻ¯ VK_EXT_extended_dynamic_state3āĨ¤
- RADV-āĻāĻ° āĻāĻ¨ā§āĻ¯ VK_EXT_extended_dynamic_state2āĨ¤
- v3dv-āĻāĻ° āĻāĻ¨ā§āĻ¯ VK_EXT_pipeline_robustness.
- ANV-āĻāĻ° āĻāĻ¨ā§āĻ¯ VK_EXT_mesh_shaderāĨ¤
āĻāĻ¤ā§āĻ¸: opennet.ru