Как обычно параллелят игровые процессы? Что то слышал про многопоточный

рендеринг, в чём он заключаеется вообще?

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

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

Но кажется хочется отвязать рендеринг от этого всего, то есть как минимум рисовать "параллельно" всей остальной игре, но тут сразу возникает синхронизация жесткая, как это принято решать?

15 ответов

61 просмотр

афаик заключается в том что комманд буфферы заполняешь с нескольких ядер и пото отправляешь на очередь

Kelbon- Автор вопроса
feedable
афаик заключается в том что комманд буфферы заполн...

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

Kelbon
а точно на синхронизации не потеряешь больше, скла...

Буферы можно иметь отдельные на каждый поток

Kelbon
а точно на синхронизации не потеряешь больше, скла...

ну так ты не складываешь с нескольких ядер на один буффер офк

KivApple
Буферы можно иметь отдельные на каждый поток

Там только очередь буферов общая, но в неё ты сабмитишь один раз за кадр или что-то такое

Kelbon- Автор вопроса
feedable
ну так ты не складываешь с нескольких ядер на один...

ну короче это надо напрямую вулкан юзать

Kelbon
ну короче это надо напрямую вулкан юзать

или так или юзать полностью готовый движок

то что ты описал это fork-join, как по мне отличный вариант, обмазать таск системой на корутинах/экзекуторах запилить

Kelbon
ну короче это надо напрямую вулкан юзать

да, рендер сам по себе не на всех gapi можно распараллелить?

disba1ancer
то что ты описал это fork-join, как по мне отличны...

я не видел нигде, где бы это называлось fork-join, кроме джавы и юникса :)))

есть очень тупая идея копировать всю сцену и использовать временную копию

Kelbon- Автор вопроса
disba1ancer
Cow, как вариант

какой смысл, если ты знаешь что будешь менять

Kelbon
какой смысл, если ты знаешь что будешь менять

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

Kelbon- Автор вопроса
disba1ancer
Обычно твои данные это не супер мега блоб, который...

ну нет, у объектов каждый кадр меняются физические координаты уж точно

Похожие вопросы

Обсуждают сегодня

Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
1
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Раз начали говорить про embassy, то присоединюсь со своими парой вопросов. 1) Есть ли сопоставимые аналоги для асинхронного кода в emdebbed? 2) Можно ли внутри задач embassy ...
NI_isx
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Коллеги, я тут для личных нужд пошел ставить MQTT сервер, пощупал mosquitto, но ужаснулся отсутствию такой банальности, как HTTP API для посмотреть список топиков. А тут что,...
Maksim Lapshin
14
У меня задача: написать брокер сообщений. Очереди и потребители. Очереди поддерживают приоритеты. Очередь отдает сообщения, только обработчикам с соответствующими характеристи...
Aleksandr Filippov
2
Решил тут попробовать embassy на bluepill. Все установил, собрал blink и успешно залил с помощью St link 2 китайского. Но после этого чип шиться перестал. На форумах прочел, ч...
Lukutin R2AJP
6
Немного оффтопа: а кто на чем сидит для осдева в плане ide/редактора? Последнее время сидел на vscode, но я его прям не могу нормально воспринимать, перешел на сlion, но меня...
Evg Resh
29
Карта сайта