Многопоточность
Отчёт о разработке
На сегодняшний день игровой движок DCS выполняется в одном потоке и только звуковая система может считаться на другом ядре. В большинстве случаев это не было проблемой, так как основная нагрузка по визуализации лежит на видеокарте, точнее на её графическом процессоре (GPU), который и выполняет большую часть этой работы. Поэтому FPS в основном ограничивался именно производительностью GPU, а не возможностями центрального процессора (ЦП).
По мере развития DCS развивались и графические процессоры. Они становились мощнее и быстрее, в то время как производительность одного ядра ЦП практически не менялась. Производители процессоров шли по пути увеличения количества ядер, а не их тактовой частоты. Как следствие, возросшие требования DCS стали упираться в производительность достижимую в пределах одного ядра ЦП. Параллельно с ростом графики в DCS World совершенствуются летательные аппараты, оружие, другая боевая техника, моделирование которой целиком реализуется на ЦП и это ещё более усугубляет проблему.
Для повышения эффективности использования ресурсов процессора мы переработали программное ядро нашего движка. Во-первых, на архитектурном уровне все вычисления были разделены на два основных потока: графический и логический. Это открывает новые возможности для дальнейшего распараллеливания вычислений в потоках как в логической, так и в графической части движка независимо друг от друга.
Во-вторых, для удовлетворения требований масштабируемости для многопоточности и потребностей современных графических API, часть графического движка была значительно усовершенствована, и более того, многие подсистемы были обновлены или написаны с нуля.
Внутреннее тестирование уже началось, и мы планируем выпустить обновлённый графический движок DCS (EDGE) в следующем году. Первоначальный выпуск версии с поддержкой многопоточности будет содержать переработанный движок, включая всю подготовку данных графического фрейма для GPU и разделение графической и логической подсистем на два независимых потока.
Следует также отметить, что улучшение производительности будет заметно в насыщенных миссиях на загруженных серверах, где количество юнитов обычно намного выше чем в однопользовательской игре. Ожидается улучшение производительности VR, особенно в больших миссиях.
Следите за дальнейшими выпусками новостей.
|