NVIDIA рдбреНрд░рд╛рдпрд╡реНрд╣рд░реНрд╕рдордзреНрдпреЗ рд╡реЗрд▓рдБрдб рд╕рдорд░реНрдердирд╛рдЪреА рд╕реНрдерд┐рддреА

Aaron Plattner, NVIDIA рдкреНрд░реЛрдкреНрд░рд╛рдпрдЯрд░реА рдбреНрд░рд╛рдпрд╡реНрд╣рд░реНрд╕рдЪреНрдпрд╛ рд▓реАрдб рдбреЗрд╡реНрд╣рд▓рдкрд░рдкреИрдХреА рдПрдХ, рдиреЗ R515 рдбреНрд░рд╛рдпрд╡реНрд╣рд░реНрд╕рдЪреНрдпрд╛ рдЪрд╛рдЪрдгреА рд╢рд╛рдЦреЗрдд Wayland рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╕рдкреЛрд░реНрдЯрдЪреА рд╕реНрдерд┐рддреА рдкреНрд░рдХрд╛рд╢рд┐рдд рдХреЗрд▓реА рдЖрд╣реЗ, рдЬреНрдпрд╛рд╕рд╛рдареА NVIDIA рдиреЗ рдХрд░реНрдирд▓ рд╕реНрддрд░рд╛рд╡рд░ рдЪрд╛рд▓рдгрд╛рд▒реНрдпрд╛ рд╕рд░реНрд╡ рдШрдЯрдХрд╛рдВрд╕рд╛рдареА рд╕реНрддреНрд░реЛрдд рдХреЛрдб рдкреНрд░рджрд╛рди рдХреЗрд▓рд╛ рдЖрд╣реЗ. рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдШреЗрддрд▓реЗ рдЬрд╛рддреЗ рдХреА рдЕрдиреЗрдХ рдХреНрд╖реЗрддреНрд░рд╛рдВрдордзреНрдпреЗ, NVIDIA рдбреНрд░рд╛рдпрд╡реНрд╣рд░рдордзреАрд▓ рд╡реЗрд▓рдБрдб рдкреНрд░реЛрдЯреЛрдХреЙрд▓рд╕рд╛рдареА рд╕рдорд░реНрдерди рдЕрджреНрдпрд╛рдк X11 рд╕рдорд░реНрдердирд╛рд╕рд╣ рд╕рдорд╛рдирддреЗрдкрд░реНрдпрдВрдд рдкреЛрд╣реЛрдЪрд▓реЗрд▓реЗ рдирд╛рд╣реА. рддреНрдпрд╛рдЪ рд╡реЗрд│реА, NVIDIA рдбреНрд░рд╛рдпрд╡реНрд╣рд░ рдЖрдгрд┐ рд╡реЗрд▓рдБрдб рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЖрдгрд┐ рддреНрдпрд╛рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рд╕рдВрдпреБрдХреНрдд рд╕рд░реНрд╡реНрд╣рд░рдЪреНрдпрд╛ рд╕рд╛рдорд╛рдиреНрдп рдорд░реНрдпрд╛рджрд╛ рдпрд╛ рджреЛрдиреНрд╣реА рд╕рдорд╕реНрдпрд╛рдВрдореБрд│реЗ рдЕрдВрддрд░ рдЖрд╣реЗ.

рдЪрд╛рд▓рдХ рдорд░реНрдпрд╛рджрд╛:

  • libvdpau рд▓рд╛рдпрдмреНрд░рд░реА, рдЬреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдкреЛрд╕реНрдЯ-рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ, рдХрдВрдкреЛрдЭрд┐рдЯрд┐рдВрдЧ, рдбрд┐рд╕реНрдкреНрд▓реЗ рдЖрдгрд┐ рд╡реНрд╣рд┐рдбрд┐рдУ рдбреАрдХреЛрдбрд┐рдВрдЧрд╕рд╛рдареА рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░ рдкреНрд░рд╡реЗрдЧ рдпрдВрддреНрд░рдгрд╛ рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ, рдордзреНрдпреЗ Wayland рд╕рд╛рдареА рдЕрдВрдЧрднреВрдд рд╕рдорд░реНрдерди рдирд╛рд╣реА. Xwayland рд╕рд╣ рд▓рд╛рдпрдмреНрд░рд░реА рджреЗрдЦреАрд▓ рд╡рд╛рдкрд░рд▓реА рдЬрд╛рдК рд╢рдХрдд рдирд╛рд╣реА.
  • рд╕реНрдХреНрд░реАрди рдХреЕрдкреНрдЪрд░рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ NvFBC (NVIDIA FrameBuffer Capture) рд▓рд╛рдпрдмреНрд░рд░реАрдордзреНрдпреЗ Wayland рдЖрдгрд┐ Xwayland рд╕рдорд░реНрдерд┐рдд рдирд╛рд╣реАрдд.
  • Nvidia-drm рдореЙрдбреНрдпреВрд▓ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рд░рд┐рдлреНрд░реЗрд╢ рд░реЗрдЯ рдХреНрд╖рдорддрд╛рдВрдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рдкреНрд░рджрд╛рди рдХрд░рдд рдирд╛рд╣реА рдЬрд╕реЗ рдХреА G-Sync, рддреНрдпрд╛рдВрдирд╛ Wayland-рдЖрдзрд╛рд░рд┐рдд рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд рд╡рд╛рдкрд░рдгреНрдпрд╛рдкрд╛рд╕реВрди рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рддреЗ.
  • рд╡реЗрд▓рдБрдб-рдЖрдзрд╛рд░рд┐рдд рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд, рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рд░рд┐рдЕреЕрд▓рд┐рдЯреА рд╕реНрдХреНрд░реАрдирдЪреЗ рдЖрдЙрдЯрдкреБрдЯ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╕реНрдЯреАрдорд╡реНрд╣реАрдЖрд░ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорджреНрд╡рд╛рд░реЗ рд╕рдорд░реНрдерд┐рдд, рдбреАрдЖрд░рдПрдо рд▓реАрдЬ рдпрдВрддреНрд░рдгреЗрдЪреНрдпрд╛ рдЕрдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдореБрд│реЗ рдЙрдкрд▓рдмреНрдз рдирд╛рд╣реА, рдЬреЗ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдмрдлрд░рд╕рд╣ рд╕реНрдЯрд┐рд░рд┐рдУ рдкреНрд░рддрд┐рдорд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдбреАрдЖрд░рдПрдо рд╕рдВрд╕рд╛рдзрдиреЗ рдкреНрд░рджрд╛рди рдХрд░рддреЗ. рдЖрднрд╛рд╕реА рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рд╣реЗрдбрд╕реЗрдЯрд╡рд░ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддрд╛рдирд╛ рдбрд╛рд╡реЗ рдЖрдгрд┐ рдЙрдЬрд╡реЗ рдбреЛрд│реЗ.
  • Xwayland EGL_EXT_platform_x11 рд╡рд┐рд╕реНрддрд╛рд░рд╛рд▓рд╛ рд╕рдорд░реНрдерди рджреЗрдд рдирд╛рд╣реА.
  • nvidia-drm рдореЙрдбреНрдпреВрд▓ GAMMA_LUT, DEGAMMA_LUT, CTM, COLOR_ENCODING рдЖрдгрд┐ COLOR_RANGE рдЧреБрдгрдзрд░реНрдорд╛рдВрдирд╛ рд╕рдВрдорд┐рд╢реНрд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХрд╛рдВрдордзреНрдпреЗ рд░рдВрдЧ рд╕реБрдзрд╛рд░рдгреНрдпрд╛рд╕рд╛рдареА рдкреВрд░реНрдг рд╕рдорд░реНрдердирд╛рд╕рд╛рдареА рд╕рдорд░реНрдерди рджреЗрдд рдирд╛рд╣реА.
  • Wayland рд╡рд╛рдкрд░рддрд╛рдирд╛, nvidia-рд╕реЗрдЯрд┐рдВрдЧ рдпреБрдЯрд┐рд▓рд┐рдЯреАрдЪреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдорд░реНрдпрд╛рджрд┐рдд рдЕрд╕рддреЗ.
  • GLX рдордзреАрд▓ Xwayland рд╕рд╣, рдЖрдЙрдЯрдкреБрдЯ рдмрдлрд░ рд╕реНрдХреНрд░реАрдирд╡рд░ (рдлреНрд░рдВрдЯ-рдмрдлрд░) рдХрд╛рдврдгреЗ рджреБрд╣реЗрд░реА рдмрдлрд░рд┐рдВрдЧрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдд рдирд╛рд╣реА.

рд╡реЗрд▓рдБрдб рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЖрдгрд┐ рд╕рдВрдпреБрдХреНрдд рд╕рд░реНрд╡реНрд╣рд░рдЪреНрдпрд╛ рдорд░реНрдпрд╛рджрд╛:

  • рд╡реЗрд▓рдБрдб рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд┐рдВрд╡рд╛ рдХрдВрдкреЛрдЭрд┐рдЯ рд╕рд░реНрд╡реНрд╣рд░ рд╕реНрдЯрд┐рд░рд┐рдУ рдЖрдЙрдЯрдкреБрдЯ, рдПрд╕рдПрд▓рдЖрдп, рдорд▓реНрдЯреА-рдЬреАрдкреАрдпреВ рдореЛрдЭреЕрдХ, рдлреНрд░реЗрдо рд▓реЙрдХ, рдЬреЗрдирд▓реЙрдХ, рд╕реНрд╡реЕрдк рдЧреНрд░реБрдкреНрд╕ рдЖрдгрд┐ рдкреНрд░рдЧрдд рдбрд┐рд╕реНрдкреНрд▓реЗ рдореЛрдбреНрд╕ (рд╡реЙрд░реНрдк, рдмреНрд▓реЗрдВрдб, рдкрд┐рдХреНрд╕реЗрд▓ рд╢рд┐рдлреНрдЯ рдЖрдгрд┐ YUV420 рдЗрдореНрдпреВрд▓реЗрд╢рди) рд╕рд╛рд░рдЦреНрдпрд╛ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдирд╛ рд╕рдорд░реНрдерди рджреЗрдд рдирд╛рд╣реАрдд. рд╡рд░рд╡рд░ рдкрд╛рд╣рддрд╛, рдЕрд╢рд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдирд╡реАрди EGL рд╡рд┐рд╕реНрддрд╛рд░ рддрдпрд╛рд░ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.
  • PCI-Express Runtime D3 (RTD3) рджреНрд╡рд╛рд░реЗ рд╡реЗрд▓рдБрдб рдХрдВрдкреЛрдЭрд┐рдЯ рд╕рд░реНрд╡реНрд╣рд░рд▓рд╛ рд╡реНрд╣рд┐рдбрд┐рдУ рдореЗрдорд░реА рдХрдореА рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрдгрд╛рд░реЗ рдХреЛрдгрддреЗрд╣реА рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╕реНрд╡реАрдХрд╛рд░рд▓реЗрд▓реЗ API рдирд╛рд╣реА.
  • рдНрдкреНрд▓рд┐рдХреЗрд╢рди рд░реЗрдВрдбрд░рд┐рдВрдЧ рдЖрдгрд┐ рд╕реНрдХреНрд░реАрди рдЖрдЙрдЯрдкреБрдЯ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЭ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА NVIDIA рдбреНрд░рд╛рдпрд╡реНрд╣рд░рдордзреНрдпреЗ рд╡рд╛рдкрд░рддрд╛ рдпреЗрдгрд╛рд░реА рдпрдВрддреНрд░рдгрд╛ Xwayland рдордзреНрдпреЗ рдирд╛рд╣реА. рдЕрд╢рд╛ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЭреЗрд╢рдирд╢рд┐рд╡рд╛рдп, рдХрд╛рд╣реА рдкрд░рд┐рд╕реНрдерд┐рддреАрдВрдордзреНрдпреЗ, рджреГрд╢реНрдп рд╡рд┐рдХреГрддреА рдирд╛рдХрд╛рд░рддрд╛ рдпреЗрдд рдирд╛рд╣реА.
  • рд╡реЗрд▓рдБрдб рдХрдВрдкреЛрдЭрд┐рдЯ рд╕рд░реНрд╡реНрд╣рд░ рд╕реНрдХреНрд░реАрди рдорд▓реНрдЯреАрдкреНрд▓реЗрдХреНрд╕рд░реНрд╕ (рдореНрдпреВрдХреНрд╕) рд▓рд╛ рд╕рдорд░реНрдерди рджреЗрдд рдирд╛рд╣реАрдд, рджреЛрди GPU (рдПрдХрд╛рддреНрдорд┐рдХ рдЖрдгрд┐ рд╕реНрд╡рддрдВрддреНрд░) рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд▓реЕрдкрдЯреЙрдкрд╡рд░ рдПрдХрд╛рддреНрдорд┐рдХ рдХрд┐рдВрд╡рд╛ рдмрд╛рд╣реНрдп рд╕реНрдХреНрд░реАрдирд╢реА рдереЗрдЯ GPU рдХрдиреЗрдХреНрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддрд╛рдд. X11 рдордзреНрдпреЗ, рдЬреЗрд╡реНрд╣рд╛ рдкреВрд░реНрдг-рд╕реНрдХреНрд░реАрди рдНрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрд╡рддрдВрддреНрд░ GPU рджреНрд╡рд╛рд░реЗ рдЖрдЙрдЯрдкреБрдЯ рд╣реЛрдд рдЕрд╕рддреЗ рддреЗрд╡реНрд╣рд╛ "mux" рд╕реНрдХреНрд░реАрди рдЖрдкреЛрдЖрдк рд╕реНрд╡рд┐рдЪ рд╣реЛрдК рд╢рдХрддреЗ.
  • GLX рджреНрд╡рд╛рд░реЗ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рдкреНрд░рд╕реНрддреБрддреАрдХрд░рдг Xwayland рдордзреНрдпреЗ рдХрд╛рд░реНрдп рдХрд░рдд рдирд╛рд╣реА рдХрд╛рд░рдг GLAMOR 2D рдкреНрд░рд╡реЗрдЧ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА NVIDIA рдЪреНрдпрд╛ EGL рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрд╢реА рд╕реБрд╕рдВрдЧрдд рдирд╛рд╣реА.
  • Xwayland-рдЖрдзрд╛рд░рд┐рдд рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд рдЪрд╛рд▓рдгрд╛рд░реЗ GLX рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░ рдЖрдЪреНрдЫрд╛рджрдирд╛рдВрдирд╛ рд╕рдорд░реНрдерди рджреЗрдд рдирд╛рд╣реАрдд.

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛