LINUX.ORG.RU

Wayland 1.8

 ,


0

2

Доступен новый релиз Wayland 1.8 — протокола для организации графического сервера в Linux и других UNIX-подобных операционных систем, а так же связанного с ним эталонного композитного сервера Weston 1.8. Основная разработка протокола завершена, и сейчас идёт оттачивание кодовой базы и улучшение документации. В новой версии:

Wayland 1.8

  • Осуществлено разделение заголовочных файлов для клиента (wayland-client-core.h) и сервера (wayland-server-core.h) на базовые компоненты и генерируемые протоколы.
  • В scanner добавлена опция --include-core-only, что позволяет использовать только базовые заголовки при разработки биндингов (bindings), а также при генерации кода протоколов на основе новых файлов wayland.xml в libwayland.

Weston 1.8

  • В состав приняты подготовленные компанией Collabora изменения, касающиеся модернизации EGL и создания тестового фреймворка. Улучшена реализация EGL в gl-renderer и добавлен тестовый режим рендеринга без экрана («headless rendering»), который позволяет синтетически запустить Weston в идеальных условиях, исключив влияние системы вывода.
  • Началось тестирование оболочки для информационно-развлекательных систем (IVI), добавлена экранная раскладка для IVI.
  • Поддержка перерисовки по расписанию.
  • Добавлен API для захвата содержимого поверхностей (surface-shooting API).
  • Добавлена возможность указания альтернативного файла конфигурации (weston --config=my-weston.ini). Заданный файл конфигурации будет охватывать все приложения, запущенные в данном экземпляре Weston.
  • В компоненты редактирования текста добавлена поддержка операций помещения и извлечения данных из буфера обмена.

Выход Wayland 1.9 запланирован на конец сентября 2015 года.

>>> Подробности

★★★★★

Проверено: JB ()
Последнее исправление: ymn (всего исправлений: 5)

Упомянутый код с goto я бы писал так:

static int
set_cloexec_or_close(int fd)
{
    long flags;

    if (fd == -1)
        return -1;

    flags = fcntl(fd, F_GETFD);
    if (flags != -1) {
        if (fcntl(fd, F_SETFD, flags | FD_CLOEXEC) != -1) {
            return fd;
        }
    }
    close(fd);
    return -1;
}

anonymous
()

А можно даже так:

if ((flags = fcntl(fd, F_GETFD)) != -1) {

anonymous
()

добавлен тестовый режим рендеринга без экрана («headless rendering»)

Нужно. С иксами так и не получилось на сервере без головы рендерить картинки и высылать клиенту. Решение, конечно, нашли, но осадок остался.

anonymous
()
Ответ на: комментарий от next_time

Во втором случае переменная flag не определена. И вообще второй вызов fcntl зависит от первого, поэтому объединять их в одно выражение нехорошо, тк , в отличии от хипстерских языков, порядок вычисления в логигическом выражении на усмотрение компилятора.

anonymous
()
Ответ на: комментарий от Sunderland93

Кварцу лет двадцать, если не больше. Раньше он назывался Display Post Script, а когда NextStep переименовали в MacOS X, то его переделали в кварц, запилив 3д ускорение. Да и иксов там никогда не было.

А вайланд уже года два как в sailfish OS крутиться и никто не жалуется. То есть у него уже вполне себе сложившаяся судьба в дикой природе.

Gorthauer ★★★★★
()

Эталонное ненужно

anonymous
()
Ответ на: комментарий от Gorthauer

Кварцу лет двадцать, если не больше. Раньше он назывался Display Post Script, а когда NextStep переименовали в MacOS X, то его переделали в кварц, запилив 3д ускорение. Да и иксов там никогда не было.

Спасибо за инфу

Sunderland93 ★★★★★
() автор топика
Ответ на: комментарий от Sunderland93

С какого перепугу это X server?

Взято из перепоста.

grim ★★☆☆
()
Ответ на: комментарий от anonymous

порядок вычисления в логигическом выражении на усмотрение компилятора

Читни стандарт и не позорься.

anonymous
()
Ответ на: комментарий от KennyMinigun

AMD вообще драйвер для ядра написали, и тем самым вышли в опенсорс. fglrx теперь не нужен.

nexfwall ★★★★
()
Ответ на: комментарий от anonymous

Во втором случае переменная flag не определена.

да, прошу извинить: сходу полностью не разобрался в сабжевой нечитабельной простыне

в отличии от хипстерских языков, порядок вычисления в логигическом выражении на усмотрение компилятора.

вообще-то нет, он вполне определён, именно для логических операторов http://alenacpp.blogspot.ru/2005/11/sequence-points.html

next_time ★★★★★
()
Последнее исправление: next_time (всего исправлений: 1)
Ответ на: комментарий от next_time

alenacpp

Отличный источник, братан.

anonymous
()
Ответ на: комментарий от Reset

В моем варианте не вызовется.

напишите сюда его, что-ли. иначе не до конца ясно, что вы имели в виду.

Цифра с потолка.

вам неизвестно, что вызов ф-ции стоит, как минимум, в 2 раза дороже if? (переход по call и обратно)

При fd == -1:

>if (fd == -1) return -1;

1 единственная операция if

вместо:

if (fd == -1) goto exit;
exit:
close(fd);
return -1;
if + close(fd)

как видите, затраты на исполнение тела сабжевой ф-ции по этому пути исполнения возрастают минимум в 3 раза

next_time ★★★★★
()
Ответ на: комментарий от next_time

напишите сюда его, что-ли. иначе не до конца ясно, что вы имели в виду.

if (fd >= 0) {
  close(fd);
}

вам неизвестно, что вызов ф-ции стоит, как минимум, в 2 раза дороже if? (переход по call и обратно)

Ну и? Более того, тут не просто функция, а сискол, но это не значит, что производительность приложения просядет в 200 раз.

как видите, затраты на исполнение тела сабжевой ф-ции по этому пути исполнения возрастают минимум в 3 раза

И что? Эта функция может вызываться 1 раз за весь жизненный цикл процесса. Может стоит не заниматься преждевренной оптимизацией и не писать непонятный плохо поддерживаемый код пока об этом явно не сказал профайлер?

Reset ★★★★★
()
Ответ на: комментарий от ssedov

Еще один школьник-быдлокодер... Да откуда вы лезете-то?

Indexator ★★★
()
Ответ на: комментарий от Deleted

Если поковырять его поглубже, то возникает такое желание, но стоит оглянуться и посмотреть вокруг как попускает.

Dark_SavanT ★★★★★
()
Ответ на: комментарий от Reset
 if (fd >= 0) {
  close(fd);
}

и получаем лишний if для ветки исполнения при fd == -1? в критичном по скорости коде?

производительность приложения просядет в 200 раз.

200 раз != 200%

Может стоит не заниматься преждевренной оптимизацией и не писать непонятный плохо поддерживаемый код пока об этом явно не сказал профайлер?

оптимизация может быть преждевременна, как минимум, до тех пор, пока продукт не релизнулся

Эта функция может вызываться 1 раз за весь жизненный цикл процесса

эта функция будет вызываться регулярно, речь о ПО, отвечающим почти за всю системную графику

next_time ★★★★★
()

тема срача про вяленого не раскрыта) плохо стараются:)

oblepiha_pie
()
Ответ на: комментарий от next_time

К моменту появления C# VB6 был очень даже жив, здоров и успешен. Где-то рядом крутились Дельфи. Для веба был перл и похапе.

Dark_SavanT ★★★★★
()
Ответ на: комментарий от Gorthauer

А вайланд уже года два как в sailfish OS крутиться и никто не жалуется
никто не жалуется

ЕМНИП, sailfish еще оооочень сырая и забагованная ось для geeks-only. Так, что это еще ни о чем не говорит:)

fang90 ★★★★★
()
Ответ на: комментарий от next_time

заставьте goto прыгнуть из одной ф-ции в другую

я гоутой пользовался только в бейсике — там прокатывало, а в сях — не знаю.

// не называй меня «на Вы» — ААААА!!!!!!111

pihter ★★★★★
()
Ответ на: комментарий от Dark_SavanT

C# убил VB, который стал ненужен.

VB был нужен?

// однажды, в бытность студентом, мне пришлось писать программу рисования домика, по просьбе девушки некст дор (ей задали в универе), но мне перепало не до конца, так что ВБ — _почти_ бесполезен, инфа 100%

pihter ★★★★★
()

И никто в теме не отрефакторил

if (fcntl(fd, F_SETFD, flags | FD_CLOEXEC) != -1) {
...

в

long res;

res = fcntl(fd, F_SETFD, flags | FD_CLOEXEC);
if (res != -1) {
...

а прицепились к goto.

... ой, да это же не development. Ontop: wayland нужен.

Deleted
()
Ответ на: комментарий от Deleted

вот и ещё один человек, который в этой простыне не заметил flags в

if (fcntl(fd, F_SETFD, flags | FD_CLOEXEC) != -1)
...

next_time ★★★★★
()
Ответ на: комментарий от next_time

В кровавом энтерпрайзе он жил и жил весьма неплохо в качестве быстрой рисовалки всяких вспомогательных программок. Напоминаю - 2001 год вроде.

Dark_SavanT ★★★★★
()
Ответ на: комментарий от pihter

VB как ни странно был вполне нужен. Для специфичных задач, но нужен. С появлением .net все переехали на C#, который был лучше и удобнее.

Dark_SavanT ★★★★★
()
Ответ на: комментарий от next_time

и получаем лишний if для ветки исполнения при fd == -1? в критичном по скорости коде?

«критичный по скорости код» это твои фантазии

эта функция будет вызываться регулярно, речь о ПО, отвечающим почти за всю системную графику

Опять же твои фантазии. Если «критичный по скорости код» постоянно дергает сисколы fcntl/close, то это либо не «критичный по скорости код» либо надо что-то пересматривать в архитектуре.

эта функция будет вызываться регулярно, речь о ПО, отвечающим почти за всю системную графику

Ты сейчас пытаешься оправдать свое нубство каким-то совершенно глупыми отмазками.

Reset ★★★★★
()
Ответ на: комментарий от Reset

вся реализация вейланда, целиком, критична по скорости, т.к. отвечает почти за всю системную графику. удивительно, что находятся технические специалисты, этого не понимающие.

next_time ★★★★★
()
Ответ на: комментарий от Dark_SavanT

В кровавом энтерпрайзе и кобол до сих пор жив — не показатель.

next_time ★★★★★
()
Ответ на: комментарий от Dark_SavanT

Для специфичных задач, но нужен.

кроме вордомакросов, для каких?

next_time ★★★★★
()
Ответ на: комментарий от next_time

вся реализация вейланда, целиком, критична по скорости, т.к. отвечает почти за всю системную графику.

Запуск сервера, его завершение, перечитывание конфигурации и т.п. тоже? Настолько, чтобы обсуждать оптимизацию лишнего вызова функции и лишнюю проверку 5 страниц? Я думаю, что разработчикам есть чем заняться.

А действительно критичные к скорости обработка и отрисовка графики никакого отношения к вводу/выводу на диск не имеют. Совсем.

Ivan_qrt ★★★★★
()

при разработки биндингов

Может всё-таки «при разработке»?

MrClon ★★★★★
()
Ответ на: комментарий от Ivan_qrt

Запуск сервера, его завершение, перечитывание конфигурации и т.п. тоже? Настолько, чтобы обсуждать оптимизацию лишнего вызова функции и лишнюю проверку 5 страниц?

разработчики вейланда посчитали, что да и написали оптимальный код, а не тот, который предлагает Reset. ежели лично вы не согласны с выбранными ими приоритетами — вас никто не держит, перепишите вейланд с тормозами, лишь бы выглядело красиво. советую сразу взять Java или питон.

next_time ★★★★★
()
Ответ на: комментарий от Reset

лол. даже на полнейшее капитанство на ЛОРе потребуют провести анализы, графики и кучу тестов.

next_time ★★★★★
()
Ответ на: комментарий от next_time

разработчики вейланда посчитали, что да и написали оптимальный код, а не тот, который предлагает Reset.

Насчёт их мотивации у меня большие сомнения. Предполагаю, что это больше стилистическое решение, нежели оно продиктовано скоростью. Хотя возможно ты и прав.

Но про критичность к скорости этого кода, ты, все же, не прав.

Ivan_qrt ★★★★★
()
Ответ на: комментарий от Ivan_qrt

я имею в виду, что решение Резета, стилистически если и лучше, то на копейку. ради этого не стоит вставлять лишний if в релизе критичного по скорости софта.

next_time ★★★★★
()
Ответ на: комментарий от next_time

Мне решение reset'а тоже не нравится. Меня лично полностью устраивает код в реализации, не думаю, что надо его менять, но я не разработчик и в сишку почти не умею.

Но, упомянутый код не критичен к скорости!

Ivan_qrt ★★★★★
()
Ответ на: комментарий от Ivan_qrt

Но, упомянутый код не критичен к скорости!

не «бутылочное горлышко», конечно, я к тому, что такие вещи, как вейланд, не стоит замусоривать лишними инструкциями на пустом месте, как это хочет сделать Резет

next_time ★★★★★
()
Ответ на: комментарий от Sunderland93

которую определённо нужно менять.

определённо

ни на чём не основанное утверждение.

anonymous
()

Переписали бы уже этот свой фреймбуфер на православном Расте же, хоть толк какой-то был бы от этого ненужно.

anonymous
()
Ответ на: комментарий от anonymous

Переписали бы уже этот свой фреймбуфер на православном Расте же, хоть толк какой-то был бы от этого ненужно.

Воистину! И goto не понадобится.

stylemistake
()
Ответ на: комментарий от anonymous

У раста пока что ABI не стандартизирован. А сишный ABI для проекта такой величины замучаешься вкорячивать, как мне кажется. Библиотеки общего пользования пусть остаются на си.

А вот конечные приложения - от DE до либреофиса - хорошо бы переписать на расте

makoven ★★★★★
()
Ответ на: комментарий от Sunderland93

Этот код был хорош в те времена, когда создавались иксы. Чтобы хоть как-то осовременить их, к ним начали писать тонну расширений, в результате которого они превратились тяжёлого и огромного монстра. Или может быть ты мне расскажешь, чем превосходны иксы и почему они должны жить вечно?

О, любители минимализма подтянулись.

Чем иксы утяжелены? Реализацией устаревшего АПИ рисования, которое занимает нихрена процентов от общего объёма кода? Это разумеется фатальный недостаток.

Иксы не только не перетяжелены, но наоборот содержат недостаточно фич, чтобы отвечать требованиям современности.

Как минимум,

Нет средств оптимизации вывода глифов, каждое приложение вручную рендерит глифы и хранит их копии. Нужен частичный возврат к идее серверного рендеринга на новой технологической базе.

Нет средств проброски через единый канал доступа не только видео, но звука, принтера и других устройств.

Нет возможности сохранять состояние на стороне клиента при разрывах соединения.

Нет механизма распределения обязанностей рендеринга между клиентом и сервером в зависимости от особенностей канала связи и возможностей сервера.

Эти сложные задачи надо решать, а не делать вид, что потребности пользователей ограничиваются голым фреймбуфером.

Проводя аналогию, Нива конечно хреновый автомобиль, но если в мире нет других внедорожников (как в случае с иксами нет альтернатив), придётся ездить на нём и дорабатывать его. Если же пользователь Нивы получит предложение пересесть на мотороллер, будет закономерно послан на три буквы.

Что защитники идеи «вейланд на рабочии станции и десктопы» периодически и слышат от пользователей.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.