oeaixy Posted October 1 Share Posted October 1 (edited) привет. первый день узнал про вас и посмотрел бенчмарки - в топе интелы , амдшные вообще слив, а я поднимал тему поддержки процессоров и для юнити и для анрила. у меня гипотеза, что в основном заточка двжика и даже языковых сдк идёт в основном под интеловские процы, в то время как те же амд имели 64-битные инструкции 20 лет назад, а интел клепали 32бит процы - поэтому виндовоз был в двух исполнениях многие годы. Смысл, что амдшные инструкции не используются по полной и движки не оптимизируются. я эту тему расписал тут https://forums.unrealengine.com/t/cpu-gpu-profiler/1338092 . пока что не понял какая у вас совместимость - q2/bsp или ue/pak , но вообще оно под мобилы умеет готовить ? потому что это важная тема в геймдеве и это снова тема процов и поддержки гэпэу тоже и вот об этом тоже расписано в профайлере, что можно создать промежуточный слой для исполнения инстукций под конкретный проц, как виртуальная машина примерно, но можно проще сделать. такая вот идея. как пример - я поставил вашу СДК и там пришли библиотеки .net8 в принципе они должны быть у меня на w10 22H, но вот я поставил и у меня комп завис, один раз, второй, наверное и третий будет, но я лучше снесу эти библиотеки . скорее всего у меня была 8.0.8 или 8.0.4 а вы воткнули 8.0.1 - конечно у меня слетит всё / Заново последний SDK накатил, вроде нее ребутает. мы же все понимаем, что это простая проверка ? Чтобы сделать промежуточный блок команд - по сути это как openGl или Vulkan / DirectX только туда нужно включить процессорные команды и связку с ГПУ. Потому что часть команд вообще может ГПУ на себя взять, если их нет в проце и эмулировать вообще любой слой. Значит если есть список необходимых команд - то для них можно создать базу аналогов / замен / либо оптимизированных костылей. Причём связка проц-видео - базово примерно известна и ранжируется по годам и поддержке PCIe . DDR то есть через год биоса материнки можно примерно сказать какое железо, либо вообще точные данные получить и сделать запрос на отпимизированный под это железо виртуальный проц - dll , которая просто встаёт в экзешник и имеет свою подпись, версию и тп. А врехний слой уже может не зависеть от поддержки какого-то железа и работать именно с нужными функциями на уровне языка системы. FlatPak видимо по такой же схеме примерно реализован, но в общем случае как ядро линукса, которое точится под железо. или если исполльзовать minGW - это как аналог костылей под виндовоз будет, но на самом деле системы более стандартизованы, но имеют различия даже на уровне winXp / win7 / win11. При этом код игры по сути приходится постоянно перелопачивать под какое-то железо - для андроид или писи, а тут смысл, что можно компилить один общий код, а подгружать нужный фреймворк под конкретную ось и железо - их системно компилить и давать как часть сервис-лоадера В принципе нужно менять архитектуру, но для начала нужно собрать базовый пул инстуркций и проанализировать их доступность для разных моделей и возможность замены, либо аналоги, оптимизация. Грубо говоря на уовне движка нужно зарядить свой директ икс, либо расширить openGL - чтобы уровень задач понятен был, но там есть варианты и что-то упростить можно, зная точно свои запросы. Edited October 1 by oeaixy Link to comment
Recommended Posts