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

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

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

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

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

15 ответов

12 просмотров

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
у меня такой вопрос про память в x86 возник, может кто пояснить?.. у процессора есть (как минимум) 3 типа адресов (названия "п1", "п2", "п3" --- мои, чтобы проще было дальше)...
Toideng
10
У них там что-то своё же вроде!?
Евгений Данилов
5
К слову, почему бы не использовать ссылки на папки, вместо инвайтинга?
Артем Уколов
3
Какого хера? /Sources/App/Modules/User/Models/UserLinkApple.swift:21:20: warning: stored property '_id' of 'Sendable'-conforming class 'UserLinkApple' is mutable @ID(...
Alexander Sherbakov
14
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Кастомные эмодзи для ботов доступны только элите, верно?
山 | Bobby | 山
3
Портфолио: Зовут меня Александр, мне 41 год. Город Киров. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github.co...
Magic
11
Второй вопрос: снимаются ли эти ограничения при покупке на fragment хрени за кучу денег? (до 4096 / 2048)
Артем Уколов
3
Карта сайта