Явная синхронизация GPU для Xwayland

Код Explicit GPU Synchronization для Xwayland теперь объединен после более чем годового ожидания. Это довольно большое событие, которое должно особенно порадовать пользователей NVIDIA GPU в будущем.

Явная синхронизация необходима для нормального перехода на Wayland для многих пользователей с видеокартами NVIDIA, поскольку собственный драйвер NVIDIA вообще не поддерживает старую неявную синхронизацию. Пользователи NVIDIA столкнулись c такими глюками как значительное мерцание и проблемы с частотой кадров. Хотя их возникновение зависит от различных факторов.

С явным протоколом синхронизации, который будет реализован в композиторах и очень скоро в Xwayland и проприетарном драйвере NVidia, все эти проблемы наконец-то останутся в прошлом, и самый большой оставшийся препятствие для перехода пользователей NVidia на Wayland исчезнет.

Из запроса на слияние, который был первоначально открыт Эриком Курцингером из NVIDIA:

Вот наше предложение по добавлению явной синхронизации GPU в расширения DRI3 и Present, а также реализация для Xwayland. Хотя мы в NVIDIA, возможно, особенно заинтересованы в этом, так как наш драйвер не имеет поддержки неявной синхронизации, общий консенсус, похоже, формируется вокруг идеи, что явная синхронизация — лучший путь вперед для графического стека Linux. Xwayland, вероятно, останется важным компонентом этого стека еще некоторое время, и поэтому я чувствую, что эта работа принесет долгосрочную пользу сообществу в целом.

Дизайн черпает вдохновение из предложенного Wayland протокола wp_linux_explicit_sync_v2 [1], используя DRM syncobjs в качестве основного примитива. Я считаю, что это дает несколько преимуществ. Во-первых, то, что и X11, и Wayland используют схожий механизм для явной синхронизации, упростит разработку драйверов на стороне клиента, а во-вторых, это, надеюсь, позволит самому Xwayland добавить поддержку протокола явной синхронизации Wayland, предположительно, когда он будет более широко внедрен композиторами.

Я пытался сфокусировать это первоначальное предложение на создании пригодного для использования примитива синхронизации GPU и добавлении его поддержки в запрос PresentPixmap, считая, что это наиболее важная часть конвейера представления. Возможны и другие варианты использования этого примитива, например, в расширении Damage, но я считаю, что их лучше оставить на потом.

Осталось совсем немного, чтобы все подогнать, с учетом грядущей бета-версии драйвера NVIDIA, который должен увидеть свет в следующем месяце. Код для GNOME уже слит, для KDE тоже открыт запрос на слияние, в Mesa он тоже уже слит.

Один мальчик подписался на телеграм-канал Игры в Linux и получил бесплатную игру в Steam! Новости из мира игр в Linux, свежие обзоры игр и полезные инструкции всегда под рукой!

Константин Дьяченко

Автор и основатель сайта Игры в Linux с 2010 года. Пользователь Linux с 2002. Старый злобный сисадмин с 1997.

Если Вам интересна тематика сайта и вы хотите каким-то образом поучаствовать в жизни сайта и его сообществ - напишите мне! Все контакты в разделе о сайте.

Игры в Linux
Добавить комментарий

Поля email и сайт не являются обязательными. Оставляя комментарий вы соглашаетесь с политикой конфиденциальности сайта.