HLFX.Ru Forum Страницы (41): « Первая ... « 28 29 30 31 [32] 33 34 35 36 » ... Последняя »
Показать все 608 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Наши проекты (https://hlfx.ru/forum/forumdisplay.php?forumid=1)
-- PrimeXT - логическое продолжение XashXT (https://hlfx.ru/forum/showthread.php?threadid=5371)


Отправлено SNMetamorph 19-09-2022 в 21:09:

Сделал меню с регулировкой различных настроек постпроцессинга в реалтайме. В будущем будет специальная энтити, в которой маппер будет прописывать эти настройки, и по активации они будут плавно применяться игрокам. Неплохой художественный инструмент.

__________________
Мой сайт
Xash3D Modding Discord


Отправлено SNMetamorph 29-10-2022 в 01:40:

Появились кое какие интересные данные.
Где-то приблизительно 1-2 недели назад, мне Креозот зарепортил о проблемах при компиляции карты. Компилятор падает с out of memory, это притом что свободной памяти в системе есть как минимум несколько гигабайт, чего более чем достаточно. Путём недолгих разбирательств выяснилось, что дело в фрагментации памяти. В качестве эксперимента, я решил прикрутить менеджер памяти mimalloc, что успешно сделал. Осталось его хорошо протестировать. Но есть еще один момент. На системах, начиная с Windows Vista, есть такой механизм как ASLR, который при запуске процесса рандомизует базовые адреса модулей, в т.ч. системных библиотек. И вот я решил поглядеть, что же такое половинит огромные куски свободной памяти в адресном пространстве. Это оказались системные библиотеки . И если для 64-разрядных процессов это не сыграет никакой роли в плане фрагментации, ибо адресное пространство там огромнейшее, то на 32-разрядных процессах оно вставляет палки в колёса. Причём, системе не важно, собран ли файл старым компилятором, который про ASLR понятия не имеет, либо же новым, и там включен ASLR - система все равно, по умолчанию, будет грузить библиотеки по рандомным адресам. Хотя это поведение отключаемое. А вывод какой: если бы была возможность собрать приложение под 64 бита безо всяких переделок, то не пришлось бы с этим всем возиться. То есть в будущем надо все таки обязательно весь код портировать под 64 бита, чем я когда-то начал заниматься, но пока не закончил. Переделать всё, это ещё ладно, надо ещё всё тщательно протестировать.

__________________
Мой сайт
Xash3D Modding Discord


Отправлено Дядя Миша 29-10-2022 в 06:56:

Цитата из Вики:

Цитата:

Для использования ASLR исполняемые файлы требуется собирать со специальными флагами. В результате в коде не будут использоваться постоянные адреса, но при этом:

увеличится размер кода исполняемых файлов;
увеличится время загрузки в память каждого исполняемого файла;
возникнет дополнительная несовместимость с ПО и библиотеками, разработанным под версии ОС без ASLR.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено SNMetamorph 29-10-2022 в 19:06:

Чтож, по предварительной информации, mimalloc не дал значимых преимуществ в преодолении фрагментации в 32-разрядных процессах. А поскольку выключать ASLR во всей системе только ради того чтобы работали компиляторы это не вариант, остаётся лишь портировать компиляторы под 64 бита. Иных вариантов нет.

__________________
Мой сайт
Xash3D Modding Discord


Отправлено Дядя Миша 29-10-2022 в 20:17:

Цитата:
SNMetamorph писал:
Чтож, по предварительной информации, mimalloc не дал значимых преимуществ в преодолении фрагментации в 32-разрядных процессах

У тебя память на уровне системы случайно фрагментирована в момент запуска. Какого чуда ты ожидаешь от пользовательской приблуды, основанной на всё том же маллоке?

Цитата:
SNMetamorph писал:
поскольку выключать ASLR во всей системе

Ты точно читал, то что я привёл?

Цитата:
Дядя Миша писал:
Для использования ASLR исполняемые файлы требуется собирать со специальными флагами

Пересобери исходники без ASLR. Или ты полагаешь что принудительный распил памяти для всего софта не похоронил бы новую винду в глазах её пользователей уже в момент выхода?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено SNMetamorph 29-10-2022 в 21:04:

Цитата:
SNMetamorph писал:
Причём, системе не важно, собран ли файл старым компилятором, который про ASLR понятия не имеет, либо же новым, и там включен ASLR - система все равно, по умолчанию, будет грузить библиотеки по рандомным адресам. Хотя это поведение отключаемое.

Я ж писал про это уже

Добавлено 30-10-2022 в 00:56:

Цитата:
Дядя Миша писал:
Пересобери исходники без ASLR.

Это влияет только на модуль самой программы. На остальные модули, типо системных библиотек, это никакого влияния не оказывает. Они так и будут грузиться в рандомные адреса. Я это уже проверил

Добавлено 30-10-2022 в 01:04:

Чтобы не быть голословным, я запустил HLMV который был собран шестой студией, разумеется она понятия никакого не имеет об ASLR. И что же мы видим:

__________________
Мой сайт
Xash3D Modding Discord


Отправлено Дядя Миша 30-10-2022 в 09:38:

Оригинальный p2rad тоже падает с нехваткой памяти на системе с ASLR?
Я помню строго обратное поведение. Там где на той же XP не хватало памяти, на 64-х битной системе это же 32-х битное приложение вполне комфортно себя чувствовало. Пример - Stalker. Lost Alpha. Очевидно в данном случае все эти распилы ей шли только на пользу.

Добавлено 30-10-2022 в 12:38:

Кстати. Вот еще что вспомнил. Кто как не знаю, но лично я с незапамятных времён укрепился в мысли, что ни одну винду без предварительного твикинга юзать вообще невозможно. Поэтому после установки запускаю подходящий твикер и долго-долго отключаю там всякую пердь. Вполне вероятно что и ASLR я тоже таким образом отключал, но он скрывался под какой-то общей галкой, оптимизация потребления памяти может.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено SNMetamorph 30-10-2022 в 20:36:

Цитата:
Дядя Миша писал:
Оригинальный p2rad тоже падает с нехваткой памяти на системе с ASLR?

Странно, но нет. Он вцелом build kD trees очень быстро пролетает, вот в данном конкретном случае, на карте на которой out of memory вылетает.

__________________
Мой сайт
Xash3D Modding Discord


Отправлено Дядя Миша 31-10-2022 в 07:08:

C++ Source Code:
patch_t = 432 bytes
sample_t = 128 bytes

Это очень много на самом деле. Соптимизировать бы. Я просто знал, что у меня впереди XashNT, поэтому не стал возиться с ним бесконечно.
Там-то лайтмапер в десятки раз лучше оптимизирован. Он у меня радиосити на сталкеровских картах рассчитывает, причём с luxel_size = 8, chop=64.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено SNMetamorph 31-10-2022 в 18:04:

По предварительным данным тестов, праймовские 64-битные компиляторы собрали карту ЧАЭС за 10 минут, а оригинальные p2st собирают её за 1 час 7 минут. Причём, в p2st генерация kD-trees происходит намного быстрее, чем в прайм-компиляторах. Но зато прайм-компиляторы гораздо быстрее считают саму лайтмапу (именно на этот процесс уходит больше всего времени в случае с p2st).

Добавлено 31-10-2022 в 22:04:

Но это не имеет значения, до тех пор пока я не убедюсь что результат в обоих случаях валидный.

__________________
Мой сайт
Xash3D Modding Discord


Отправлено Дядя Миша 31-10-2022 в 18:46:

Цитата:
SNMetamorph писал:
а оригинальные p2st собирают её за 1 час 7 минут

Насколько я помню, он с ней управлялся за несколько минут. Но это конечно только прямой свет.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено FiEctro 01-11-2022 в 09:40:

Цитата:
Дядя Миша писал:
Насколько я помню, он с ней управлялся за несколько минут. Но это конечно только прямой свет.


Жуть. Когда будет поддержка GPU?

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено SNMetamorph 01-11-2022 в 18:16:

Цитата:
FiEctro писал:
Жуть. Когда будет поддержка GPU?

У психопата лайтбейкер на GPU работает, уже.

__________________
Мой сайт
Xash3D Modding Discord


Отправлено SNMetamorph 08-11-2022 в 02:00:

Что ж, попробовал я в прайме запустить карту ЧАЭС. И при запуске вылетает с out of memory где-то в коде создания кэша коллизии. Вообще точно та же проблема, что была с компиляторами карт, и тут ясно было что причина в фрагментации памяти. После чего портировал код под 64 бита - тщательных тестов пока не проводил, но и ни на какие проблемы не наткнулся за всё время. На 64 битах карта всё-таки запускается где-то 1-2 минуты. Из проблем, пожалуй, коллизия криво сгенерилась местами, но тут как я понял вина старого PhysX SDK. Оперативной памяти отожрало ровно 2 гигабайта. Ещё не очень понравилась лайтмапа на моделях, местами есть разного рода артефакты, местами всё ок. Уж не знаю, в чём причина, это сама карта так скомпилирована (я запускал карту из тестового пака для P2) или же это какие-то косяки в рендере. Скриншоты я приложу










__________________
Мой сайт
Xash3D Modding Discord


Отправлено Дядя Миша 08-11-2022 в 06:21:

В Параное не было PhysX, а тут он видимо отъел дополнительно памяти.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Временная зона GMT. Текущее время 11:01. Страницы (41): « Первая ... « 28 29 30 31 [32] 33 34 35 36 » ... Последняя »
Показать все 608 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024