The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

В библиотеке SDL3 отложили переход на Wayland по умолчанию, opennews (??), 26-Мрт-24, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


347. "В библиотеке SDL3 отложили переход на Wayland по умолчанию"  +/
Сообщение от n00by (ok), 27-Мрт-24, 14:15 
>> Кто-то может объяснить, зачем нужна SDL, если пишется под Vulkan?
> На нем можно сделать что-нибудь например чисто 2D и со звуком.

Vulkan предназначен для вывода трёхмерной графики. 2D можно имитировать треугольниками. Звук, очевидно, выводится не через Vulkan. Например, вот я как раз сделал 2D и со звуком https://opennet.ru/53778-game

> Зачем тогда вулкан и вообще его требование?!

Потому что якобы именно с Vulkan проблема в Wayland.

> А надо сие чтобы не
> париться вопросом какая там у кого звуковая систем в разных линях,
> виндах, маке и проч. И как они графику на экран выводят.
> И проч.

Кому это надо? Мак и Виндовс ушли из России.

> Посмотри блин примеры libsdl какие-нибудь не очень древние. Это низкоуровневый уровень
> абстракции для геймдевов от системной конкретики.

Посмотрел. Вот прямо сейчас полез и скопировал:


    for (int i = 0; i < imageViewCount; i++) {
        framebufferCreateInfo.pAttachments = &imageViews[i];
        result = vkCreateFramebuffer(rendererData->device, &framebufferCreateInfo, NULL, &framebuffers[i]);
        if (result != VK_SUCCESS) {
            SDL_LogError(SDL_LOG_CATEGORY_RENDER, "vkCreateFramebuffer(): %s\n", SDL_Vulkan_GetResultString(result));
            return result;
        }
    }

https://github.com/libsdl-org/SDL/blob/02c63667c7b8107bb2958...

Вот это буквально и есть низкоуровневый уровень. Не низкий уровень абстракции, а низкое качество. Я мог бы сейчас сидеть в луже, если бы не предугадал, что там окажется вот такой вот цикл.

Вся тонкость в том, что Khronos Group спроектировали Vulkan с целью дать программистам максимальный контроль над происходящим. Что бы программисты могли выжимать из железа лишние кадры в секунду.

Вот этот код под Wayland создаст на 1 кадровый буфер больше, чем под X11. Если же как следует подумать и не копировать код из Vulkan Tutorial (что очевидно и проделано), а реализовать ленивую инициализацию, тогда наоборот в Wayland удастся сэкономить 1 буфер.

Проблема вовсе не в Wayland, как тут пытаются преподнести.

> На самом деле либ умеет довольно много чего. Аудио. Вывод графики, 2D
> и 3D. Сеть. Вгрузка разных форматов. Рендер фонтов. В версии 2
> и новее - портабельная работа с клипбордом. Ты же не хотел
> лично кодить куски кода под линухи с разными оконными системами и
> вводом, винду и мак, не говоря про какие там еще андроиды?!
> На которых ЭТО внезапно тоже пашет. Да, игроделы там прожали запуск
> нативного кода.

Если это для примерно таких изделий, как по моей ссылке, то "потеря производительности" не происходит. Там треугольников столько, что нечему тормозить.

> А ты сколько будешь такой код сам выписывать? Вместо реализации задуманных фич
> гамесы или что там у тебя было?

Выше есть ссылка, возьми да и сравни количество строк. И это в игрушке, которая ничего толком не делает. Как только начнётся действительное использование Vulkan, то есть сложное 3D, так вся эта мелочь устремится в объёме к статпогрешности. Зато вон тот цикл уже сожрал совершенно не лишнюю память. И я не хочу тратить время на вопрос "а сколько там еще подобного?"

> Или может, ты желая
> проиграть пару "бзынь!" всегда мечтал для этого написать ресамплер и микшер?
> На случай какого-нибудь луддита с алсой без опционального микшера?! Ну а
> вон то - таки - решает эти вопросы само. И игродел
> может - гамесу делать, а не...

snd_pcm_open() совершенно внезапно работает с устройствами "hw", "pulse" и "pipewire".

> NB: это не движок графона, только низкоуровенвая платформенно нейтральная подложка, позволяющая
> работать с всеми ОС одинаково.

Скорее, позволяющая программисту не париться с написанием элементарного кода. За универсальность приходится платить и "одинаково плохо" вполне себе "одинаково".

Ответить | Правка | Наверх | Cообщить модератору

395. "В библиотеке SDL3 отложили переход на Wayland по умолчанию"  +/
Сообщение от Аноним (-), 28-Мрт-24, 23:38 
> Vulkan предназначен для вывода трёхмерной графики. 2D можно имитировать треугольниками.

1) Это повышает системные требования. Надо требовать от юзерей современную GPU'ху, с не очень кривыми дровами. Автору 2D программы нафиг надо огрести все проблемы топового игростроя на ровном месте.
2) Это может усложнить реализацию. Теперь, вместо того чтобы отрисовать график в терминах осей X, Y, точек и линий, текста там какого и проч, я должен чесать репу "блин, как же из этого треугольники то сделать?!". А оно надо?

> Звук, очевидно, выводится не через Vulkan.

Спасибо кэп.

>> Зачем тогда вулкан и вообще его требование?!
> Потому что якобы именно с Vulkan проблема в Wayland.

Там проблема с 1 конкретным довольно специфичным аспектом, я б сказал.

> Кому это надо? Мак и Виндовс ушли из России.

Удачи вам в софтострое, чего уж.

[...skip]
> Проблема вовсе не в Wayland, как тут пытаются преподнести.

Проблема в несколько дурацкой реализации одной из фич. А основной косяк в том что к вэйландщикам никто не пришел и не высказал мнение вообще. На самом деле фэйл там.

> Если это для примерно таких изделий, как по моей ссылке, то "потеря
> производительности" не происходит. Там треугольников столько, что нечему тормозить.

ValvE это серьезные коммерческие игроделы. И если не ошибаюсь, libSDL часть их steam runtime и проч, и этим по идее довольно много кто из проф игроделов пользуется в результате, не говоря о чертовой куче опенсорсных игр, которые это юзают - почти все поголовно.

А вот чтоб самим не разбираться с дюжиной звуковых подсистем и оконных систем, занявшись вместо этого - в освободившееся время - созданием гамезы.

> Выше есть ссылка, возьми да и сравни количество строк.

Лично мне похрен сколько строк в libSDL - но очень сильно не похрен перспектива выписывать поддержку дюжины звуковых систем самому.

> лишнюю память. И я не хочу тратить время на вопрос "а сколько там еще подобного?"

Можно подумать, кто-то заставляет. Дело то авторское. Это лишь 1 из вариантов "как это делать". Но он довольно много кому в целом - понравился.

> snd_pcm_open() совершенно внезапно работает с устройствами "hw", "pulse" и "pipewire".

Совершенно внезапно, в всяких андроидах, макосях, виндах и проч этого может и не оказаться. Сабж же слой кроссплатформенной абстракции для игроделов. Если вам это не надо - окей, вам эта прослойка вообще лишняя. Но многим нравится когда написаный 1 раз код можно на куче платформ скомпилять и запустить.

> Скорее, позволяющая программисту не париться с написанием элементарного кода.

С доброй дюжиной code paths, в вопросах которых програмер мог быть и не вхож. Это называется делегирование. В данном случае - платформенной специфики. В пользу занятий в это время вместо этого чем-то более тематичным для - создания гамезы, или логики своей программы.

> За универсальность приходится платить и "одинаково плохо" вполне себе "одинаково".

Никто не обещал free lunch. Но вообще по задумке САБЖ это простой, шустрый и минимальный слой, который как раз тормозить и не должен.

Ответить | Правка | Наверх | Cообщить модератору

400. "В библиотеке SDL3 отложили переход на Wayland по умолчанию"  +/
Сообщение от n00by (ok), 29-Мрт-24, 08:05 
>> Vulkan предназначен для вывода трёхмерной графики. 2D можно имитировать треугольниками.
> 1) Это повышает системные требования. Надо требовать от юзерей современную GPU'ху, с
> не очень кривыми дровами. Автору 2D программы нафиг надо огрести все
> проблемы топового игростроя на ровном месте.
> 2) Это может усложнить реализацию. Теперь, вместо того чтобы отрисовать график в
> терминах осей X, Y, точек и линий, текста там какого и
> проч, я должен чесать репу "блин, как же из этого треугольники
> то сделать?!". А оно надо?

Этот опус к чему? Мой вопрос касался Vulkan + SDL. Если кому надо "чисто 2D", советую DirectX 7й версии - там оно есть. А как оно эмулируется, девам понимать не надо. Скопировал код из туториала, и выставляй в магазин.


Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру