Aaron Plattner, Π΅Π΄ΠΈΠ½ ΠΎΡ Π²ΠΎΠ΄Π΅ΡΠΈΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ Π½Π° ΠΏΠ°ΡΠ΅Π½ΡΠΎΠ²Π°Π½ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ Π½Π° NVIDIA, ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Wayland Π² ΡΠ΅ΡΡΠΎΠ²ΠΈΡ ΠΊΠ»ΠΎΠ½ Π½Π° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ R515, Π·Π° ΠΊΠΎΠΈΡΠΎ NVIDIA ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈ ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ΄ Π·Π° Π²ΡΠΈΡΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ, ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ Π½Π° Π½ΠΈΠ²ΠΎ ΡΠ΄ΡΠΎ. ΠΡΠ±Π΅Π»ΡΠ·Π²Π° ΡΠ΅, ΡΠ΅ Π² ΡΠ΅Π΄ΠΈΡΠ° ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Wayland Π² Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π½Π° NVIDIA Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ Π΅ Π΄ΠΎΡΡΠΈΠ³Π½Π°Π»Π° ΡΠ°Π²Π΅Π½ΡΡΠ²ΠΎ Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° X11. Π ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π°Π±Π°Π²ΡΠ½Π΅ΡΠΎ ΡΠ΅ Π΄ΡΠ»ΠΆΠΈ ΠΊΠ°ΠΊΡΠΎ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π² Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π½Π° NVIDIA, ΡΠ°ΠΊΠ° ΠΈ Π½Π° ΠΎΠ±ΡΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Wayland ΠΈ Π±Π°Π·ΠΈΡΠ°Π½ΠΈΡΠ΅ Π½Π° Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΠΈ ΡΡΡΠ²ΡΡΠΈ.
ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°:
- ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° libvdpau, ΠΊΠΎΡΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΈ Π·Π° Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΎ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π²Π°ΡΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°, ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ°Π½Π΅, ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ Π½Π° Π²ΠΈΠ΄Π΅ΠΎ, Π½ΡΠΌΠ° Π²Π³ΡΠ°Π΄Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Wayland. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° ΡΡΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Ρ Xwayland.
- Wayland ΠΈ Xwayland Π½Π΅ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° NvFBC (NVIDIA FrameBuffer Capture), ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° Π·Π° Π·Π°ΡΠ½Π΅ΠΌΠ°Π½Π΅ Π½Π° Π΅ΠΊΡΠ°Π½Π°.
- ΠΠΎΠ΄ΡΠ»ΡΡ nvidia-drm Π½Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ Π·Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° ΡΠ΅ΡΡΠΎΡΠ° Π½Π° ΠΎΠΏΡΠ΅ΡΠ½ΡΠ²Π°Π½Π΅, ΠΊΠ°ΡΠΎ G-Sync, ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΡΠ²Π°ΠΉΠΊΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ ΠΈΠΌ Π² ΡΡΠ΅Π΄ΠΈ, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° Wayland.
- Π ΡΡΠ΅Π΄ΠΈ, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° Wayland, ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ ΠΊΡΠΌ Π΅ΠΊΡΠ°Π½ΠΈ Π·Π° Π²ΠΈΡΡΡΠ°Π»Π½Π° ΡΠ΅Π°Π»Π½ΠΎΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅Π·ΠΈ, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ΠΈ ΠΎΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° SteamVR, Π½Π΅ Π΅ Π½Π°Π»ΠΈΡΠ½ΠΎ ΠΏΠΎΡΠ°Π΄ΠΈ Π½Π΅ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΠ° Π½Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Π·Π° Π½Π°Π΅ΠΌΠ°Π½Π΅ Π½Π° DRM, ΠΊΠΎΠΉΡΠΎ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° DRM ΡΠ΅ΡΡΡΡΠΈΡΠ΅, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ΅ΡΠ΅ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π±ΡΡΠ΅ΡΠΈ Π·Π° Π»ΡΠ²ΠΎΡΠΎ ΠΈ Π΄ΡΡΠ½ΠΎΡΠΎ ΠΎΠΊΠΎ ΠΏΡΠΈ ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ ΠΊΡΠΌ ΡΠ»ΡΡΠ°Π»ΠΊΠΈ Π·Π° Π²ΠΈΡΡΡΠ°Π»Π½Π° ΡΠ΅Π°Π»Π½ΠΎΡΡ.
- Xwayland Π½Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ΡΠΎ EGL_EXT_platform_x11.
- ΠΠΎΠ΄ΡΠ»ΡΡ nvidia-drm Π½Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ²ΠΎΠΉΡΡΠ²Π°ΡΠ° GAMMA_LUT, DEGAMMA_LUT, CTM, COLOR_ENCODING ΠΈ COLOR_RANGE, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° ΠΏΡΠ»Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΊΠΎΡΠ΅ΠΊΡΠΈΡ Π½Π° ΡΠ²Π΅ΡΠΎΠ²Π΅ΡΠ΅ Π² ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΠΈ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡΠΈ.
- ΠΠΎΠ³Π°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Wayland, ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΡΠ° Π½Π° ΠΏΠΎΠΌΠΎΡΠ½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° Π·Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π½Π° nvidia Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π°.
- Π‘ Xwayland Π² GLX ΠΈΠ·ΡΠ΅ΡΡΠ°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡ Π±ΡΡΠ΅Ρ ΠΊΡΠΌ Π΅ΠΊΡΠ°Π½Π° (ΠΏΡΠ΅Π΄Π΅Π½ Π±ΡΡΠ΅Ρ) Π½Π΅ ΡΠ°Π±ΠΎΡΠΈ Ρ Π΄Π²ΠΎΠΉΠ½ΠΎ Π±ΡΡΠ΅ΡΠΈΡΠ°Π½Π΅.
ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Wayland ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΠΈΡΠ΅ ΡΡΡΠ²ΡΡΠΈ:
- ΠΡΠΎΡΠΎΠΊΠΎΠ»ΡΡ Wayland ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΠΈΡΠ΅ ΡΡΡΠ²ΡΡΠΈ Π½Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΠ°ΡΠΎ ΡΡΠ΅ΡΠ΅ΠΎ ΠΈΠ·Ρ ΠΎΠ΄, SLI, Multi-GPU Mosaic, Frame Lock, Genlock, Swap Groups ΠΈ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈ ΡΠ΅ΠΆΠΈΠΌΠΈ Π½Π° ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ (ΠΈΠ·ΠΊΡΠΈΠ²ΡΠ²Π°Π½Π΅, ΡΠΌΠ΅ΡΠ²Π°Π½Π΅, ΠΈΠ·ΠΌΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΈΠΊΡΠ΅Π»ΠΈ ΠΈ Π΅ΠΌΡΠ»Π°ΡΠΈΡ Π½Π° YUV420). ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°ΠΊΠ°Π²Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ ΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π½ΠΎΠ²ΠΈ EGL ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ.
- ΠΡΠΌΠ° ΠΎΠ±ΡΠΎΠΏΡΠΈΠ΅Ρ API, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΠΈΡΠ΅ ΡΡΡΠ²ΡΡΠΈ Π½Π° Wayland Π΄Π° ΠΈΠ·ΠΊΠ»ΡΡΠ²Π°Ρ Π²ΠΈΠ΄Π΅ΠΎ ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΡΡΠ΅Π· PCI-Express Runtime D3 (RTD3).
- Π Xwayland Π»ΠΈΠΏΡΠ²Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π½Π° NVIDIA Π·Π° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΈ ΠΈΠ·Ρ ΠΎΠ΄Π° Π½Π° Π΅ΠΊΡΠ°Π½Π°. ΠΠ΅Π· ΡΠ°ΠΊΠ°Π²Π° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΎΠ±ΡΡΠΎΡΡΠ΅Π»ΡΡΠ²Π° Π½Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈ Π²ΠΈΠ·ΡΠ°Π»Π½ΠΈ ΠΈΠ·ΠΊΡΠΈΠ²ΡΠ²Π°Π½ΠΈΡ.
- ΠΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΠΈΡΠ΅ ΡΡΡΠ²ΡΡΠΈ Π½Π° Wayland Π½Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ Π΅ΠΊΡΠ°Π½Π½ΠΈ ΠΌΡΠ»ΡΠΈΠΏΠ»Π΅ΠΊΡΠΎΡΠΈ (mux), ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π½Π° Π»Π°ΠΏΡΠΎΠΏΠΈ Ρ Π΄Π²Π° Π³ΡΠ°ΡΠΈΡΠ½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° (ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½ΠΈ ΠΈ Π΄ΠΈΡΠΊΡΠ΅ΡΠ½ΠΈ) Π·Π° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π½Π° ΠΎΡΠ΄Π΅Π»Π΅Π½ Π³ΡΠ°ΡΠΈΡΠ΅Π½ ΠΏΡΠΎΡΠ΅ΡΠΎΡ ΠΊΡΠΌ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½ ΠΈΠ»ΠΈ Π²ΡΠ½ΡΠ΅Π½ Π΅ΠΊΡΠ°Π½. Π X11 Π΅ΠΊΡΠ°Π½ΡΡ "mux" ΠΌΠΎΠΆΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°, ΠΊΠΎΠ³Π°ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΡΡΠ» Π΅ΠΊΡΠ°Π½ ΡΠ΅ ΠΈΠ·Π²Π΅ΠΆΠ΄Π° ΠΏΡΠ΅Π· Π΄ΠΈΡΠΊΡΠ΅ΡΠ½ΠΈΡ GPU.
- ΠΠ½Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ ΡΡΠ΅Π· GLX Π½Π΅ ΡΠ°Π±ΠΎΡΠΈ Π² Xwayland, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π·Π° ΡΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅ GLAMOUR 2D Π½Π΅ Π΅ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎ Ρ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° EGL Π½Π° NVIDIA.
- GLX ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ°, ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ Π² Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° Xwayland ΡΡΠ΅Π΄ΠΈ, Π½Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΈ Π½Π°ΡΠ»Π°Π³Π²Π°Π½ΠΈΡ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru