Опять перекос фаз...
Дата: 29.04.2016 20:09:17
Santcoder: Здравствуйте. Увидел эту тему и решил вам отписать. Для начала: 1)
Безотносительно "перекосы фаз", как изменилась игровая
производительность для вас? 2) Ваш CPU не проходит наши системные требования 3) Перекос фаз - это норма и не
стоит опираться на него как на критерий "оптимизированности" игры.
Здесь распишу подробнее: Есть операции, которые не
распаралелливаются (ну или на данный момент не распараллелены). Это
большая часть подготовки к отправке на рендер видеокарте операций,
python скрипты игровой логики и еще много других.
Вот они работают на одном ядре в так называемом "Render Thread" - он и поселяется на одно из ядер и является самым загруженным) В то же время, есть задачи, которые можно технически выполнять параллельно, не останавливая при этом основной поток игры и они ровным слоем размазываются на все остальные доступные ядра.
Из самых тяжелых это - WWISE (звуковая подсистема), Scaleform (расчет и отрисовка интерфейса), некоторые операции (но не все) по расчету физики и часть скриптов. + еще часть сервисных задач по синхронизации всего этого добра. В общем, грубо говоря, есть так называемый main-тред и он всегда самый тяжелый, а есть остальные и они всегда будут легче. Важно понять (и эта претензия слышится в сторону многих игр), что нельзя просто взять игру и сделать ее равномерно загруженной по всем ядрам одной строчкой кода.
Есть операции, очень трудно поддающиеся распараллеливанию - мы двигаемся в направлении, чтобы выносить в фоновые потоки все, что только можно, но работа с параллельными потоками всегда несет большое количество проблем и багов и требует долгой как стабилизации так и оптимизации. Надеюсь, я ответил на ваш вопрос.
Вот они работают на одном ядре в так называемом "Render Thread" - он и поселяется на одно из ядер и является самым загруженным) В то же время, есть задачи, которые можно технически выполнять параллельно, не останавливая при этом основной поток игры и они ровным слоем размазываются на все остальные доступные ядра.
Из самых тяжелых это - WWISE (звуковая подсистема), Scaleform (расчет и отрисовка интерфейса), некоторые операции (но не все) по расчету физики и часть скриптов. + еще часть сервисных задач по синхронизации всего этого добра. В общем, грубо говоря, есть так называемый main-тред и он всегда самый тяжелый, а есть остальные и они всегда будут легче. Важно понять (и эта претензия слышится в сторону многих игр), что нельзя просто взять игру и сделать ее равномерно загруженной по всем ядрам одной строчкой кода.
Есть операции, очень трудно поддающиеся распараллеливанию - мы двигаемся в направлении, чтобы выносить в фоновые потоки все, что только можно, но работа с параллельными потоками всегда несет большое количество проблем и багов и требует долгой как стабилизации так и оптимизации. Надеюсь, я ответил на ваш вопрос.
Опять перекос фаз...














