Автор | Сообщение |
FalseMaster = UAC Gunner =
| 76 |
Doom Rate: 5.07 Posts quality: +6 |
Отправлено: 30.05.16 00:10:13 | | | Люди добрые и не очень, зело нужен кто-то, хорошо ориентирующийся в ZDoom'овых сорцах. Загорелся тут одной идейкой. ZDoom порт достаточно ресурсоёмкий по части проца, и было бы очень неплохо давать последнему отдохнуть хотя бы на паузе (в текущей реализации движок х**рит впустую даже при свёрнутом окне; даже в режиме карты в районе 8%). Но я случайно заметил, что если кликнуть правой кнопкой мыши по иконке приложения на панели задач, тем самым вызвав системное меню окна, нагрузка падает до 2%, что уже ближе к делу. Вот бы внести небольшое изменение – чтобы при нажатии на паузу порт полностью прекращал работу (кроме пкркрисовки окна и обработки клавы/мыши), но я, честно говоря, теряюсь в таком изообилии кода. Обработчик WM_SYSCOMMAND с uCmdType = SC_MOUSEMENU отсутствует, и непонятно, каким образом прога детектит активацию оконного меню. Собственно, надеюсь на подсказку, куда копать. Алсо интересует, можно ли поумерить аппетиты порта через настройки? Сам игрался, но без видимого эффекта (cl_capfps не в счёт, ибо возникает дёрганье). Единственное, что дало микроскопический (2%) профит – это выставление vid_maxfps в 60 (меньше уже некомфортно). Похоже, этот параметр влияет только на частоту перерисовки экрана, да и работает он весьма странно. Ещё 2% позволил отыграть крайне грязный хак (не буду вдаваться в подробности). Итого 4% – смех да и только. В моих-то влажных фантазиях было намерение ограничить пиковую (на сильно навороченной мапе) загруженность ЦП 30-тью процентами, а суровая реальность показала мне писю 33% (25-41%) на старте 1-го уровня Doom 2. В общем взываю к "коллективному" разуму. |
|
|
| |
ZZYZX - UAC Commissar -
| | 6284 |
Doom Rate: 1.65 Posts quality: +1630 |
Отправлено: 30.05.16 02:11:40 | | | Никак она её не детектит. Винда просто блокирует получение окном любых месседжей при открытии меню. При сворачивании, вроде, тоже. Во всяком случае, от системы. Насколько я знаю, при паузе здум почти ничего не делает кроме рендеринга. Да, рендеринг вызывает заметную нагрузку на проц. Ему так и надо — он софтовый.
зы. Лично у меня 10% при игре, 2% при автокарте и на паузе. Старт d2m1. 1920х1080, cl_capfps 1, софтвар, i5. Пишу cl_capfps 0, vid_vsync 0. Получаю 200фпс и здум хавает всё ядро (25%). Но зачем? У тебя проц какой? |
Рейтинг сообщения: +1, отметил(и): Пурген92 |
|
2 |
2 |
1 |
|
|
| |
FalseMaster = UAC Gunner =
| 76 |
Doom Rate: 5.07 Posts quality: +6 |
Отправлено: 30.05.16 03:37:42 | | | | Винда просто блокирует получение окном любых месседжей при открытии меню. |
Получается, что мне надо определить, при каком сообщении происходит рендеринг и вставить в обработчике проверку на запаузивание?
| При сворачивании, вроде, тоже. |
Практика показывает что нет. При свёрнутом окне рендер продолжает молотить, но менее интенсивно – 23%.
| при паузе здум почти ничего не делает кроме рендеринга. |
Вот! А ведь это совершенно ненужно, какртинка-то не меняется, т.е. достаточно просто перерисовывать окно (при необходимости). Самым правильным вариантом было бы отрубить рендеринг во время паузы с сохранением обновления текущей картинки. Вопрос, как это сделать? В этой куче кода чёрт ногу сломит.
| Лично у меня 10% при игре, 2% при автокарте и на паузе. Старт d2m1. 1920х1080, cl_capfps 1, софтвар, i5. |
1. Как?! Ты вносил изменения в сорцы? У меня даже при cl_capfps = true загрузка 27%, но я снимаю непосредственно с камня, венда кажет 14% на паузе и 0% на карте (без паузы), а при cl_capfps = false: 20-25% на паузе и 9-23% на карте (без паузы), и это при меньшем чем у тебя разрешении. 2. Что есть "софтвар"?
| Пишу cl_capfps 0 … Но зачем? |
cl_capfps 1 аналогично vid_maxfps 35. Очень всё неплавно при значениях менее 60, невыносимо просто для меня.
C2D, задушенный до 512 MHz. |
Рейтинг сообщения: +1, отметил(и): Пурген92 |
|
| |
Unregistered Banned flooder
| 599 |
Doom Rate: 0.96 Posts quality: +42 |
Отправлено: 30.05.16 09:21:06 | | | FalseMaster софтвар - software рендеринг? |
|
|
1 |
2 |
10 |
|
|
| |
klerk - Warrant Officer -
| 1108 |
Doom Rate: 1.13 Posts quality: +803 |
Отправлено: 30.05.16 10:38:07 | | | FalseMaster, и ты потом собираешься в каждой новой версии здума искать, куда воткнуть этот костыль? Во-первых, как это проц "задушенный" до 512 МГц, это явно ненормально - софт-рендер очень требовательный к процу, т.к. он для отрисовки требует именно ресурсов проца, а не видеокарты. Потому он и "софт", что полностью программный.
Первый и самый простой мой совет - поставь GZDoom, там есть OpenGL-рендер. |
Рейтинг сообщения: +1, отметил(и): NighMare |
|
1 |
9 |
|
|
| |
Monsterooovich Chief Petty Officer
| 953 |
Doom Rate: 1.54 Posts quality: +11 |
Отправлено: 30.05.16 18:19:42 | | | klerk: | Первый и самый простой мой совет - поставь GZDoom, там есть OpenGL-рендер. |
Вот. А софт используют либо злые Буратино, либо изгнанные Графом. Теперь это не только рыцари ордена AMD и Intel-мафия, но и владельцы старых видюх. %) |
|
|
| |
FalseMaster = UAC Gunner =
| 76 |
Doom Rate: 5.07 Posts quality: +6 |
Отправлено: 31.05.16 00:03:47 | | | Unregistered: | софтвар - software рендеринг? |
Да это понятно. Я не знаю, какой параметр отвечает за тип рендера.
klerk: | и ты потом собираешься в каждой новой версии здума искать, куда воткнуть этот костыль? |
Достаточно один раз найти. Не думаю, что Ренди каждую версию с нуля переписывает.
klerk: | Во-первых, как это проц "задушенный" до 512 МГц |
Не помню уже (в манах лень копаться), вроде как через MSRы это делается. Пользуюсь сторонней утилитой (RMClock).
klerk: | это явно ненормально |
В Intel так не считают. По своей практике могу сказать, что частоты 512 MHz хватает за глаза для большинства повседневных задач.
klerk: | софт-рендер очень требовательный к процу |
И поэтому на паузе он не должен вызываться.
klerk: | Первый и самый простой мой совет - поставь GZDoom, там есть OpenGL-рендер. |
И каковы показатели по CPU usage? Есть ли резон связываться с этим портом? | |
|
| |
ZZYZX - UAC Commissar -
| | 6284 |
Doom Rate: 1.65 Posts quality: +1630 |
Отправлено: 31.05.16 00:13:26 | | | FalseMaster: | И поэтому на паузе он не должен вызываться. |
А какая разница? Если у тебя говнопроц, не пытайся одновременно что-то делать со свёрнутой игрой.
FalseMaster: | Да это понятно. Я не знаю, какой параметр отвечает за тип рендера. |
vid_renderer 1/0
FalseMaster: | И каковы показатели по CPU usage? Есть ли резон связываться с этим портом? |
Пойди проверь. Но с твоими требованиями к процу я думаю ты пролетишь ещё больше чем с софтом. | |
|
2 |
2 |
1 |
|
|
| |
FalseMaster = UAC Gunner =
| 76 |
Doom Rate: 5.07 Posts quality: +6 |
Отправлено: 31.05.16 00:53:13 | | | Разница такая, что проц не охлаждается никогда.
Нет такого параметра в ZDoom.
Пошёл, проверил – соточка (оба ядра по полной). Долой с винта это вредоносное ПО.
--------------------------------
В обработчике WM_PAINT, кстати, вызывается только перерисовка окна (функция "PaintToWindow"). Похоже, что рендер отрабатывает по WaitForSingleObject, но как это увязать с появлением системного меню, я что-то не догоняю. |
Рейтинг сообщения: +1, отметил(и): alekv |
|
| |
Doomstalker Chief Petty Officer
| 969 |
Doom Rate: 1.49 Posts quality: +847 |
Отправлено: 31.05.16 11:17:49 | | | vid_renderer - этот параметр есть в GZDoom, он и отвечает за тип рендера.
Хм... Полезная тема. | |
|
| |
ZZYZX - UAC Commissar -
| | 6284 |
Doom Rate: 1.65 Posts quality: +1630 |
Отправлено: 31.05.16 11:23:42 | | | FalseMaster: | Нет такого параметра в ZDoom. |
Естественно нет. В здуме только софтвар и есть. Читай выше от думсталкера. | |
|
2 |
2 |
1 |
|
|
| |
Doomstalker Chief Petty Officer
| 969 |
Doom Rate: 1.49 Posts quality: +847 |
Отправлено: 31.05.16 19:24:14 | | | Отлично, можно и в gzdoom подобные операции проделывать. Почти одинаковые порты как никак. 35 fps поставил. Ладно, если бы разработчик порта ставил 60 fps, но 200... Многовато как-то. | |
|
| |
FalseMaster = UAC Gunner =
| 76 |
Doom Rate: 5.07 Posts quality: +6 |
Отправлено: 02.06.16 03:24:27 | | | Понимаю, что всем пофиг, но раз уж я тему начал, оторвав народ от важных дел, следует отчитаться. Задушить рендер не получилось… точнее, получилось, но результат оказался ровно такой же, как от снижения FPS, поэтому оствил как было, а вот затея с разгрузкой проца на паузе в какой-то мере удалась: в игре – 4-5%, в карте – 6-7%, но по непонятной причине через некоторое время повышается вплоть до двукратного значения, потом иногда опять нормализуется, а иногда нет. Предполагаю, что это как-то связано со стабилизацией FPS, да только хрен знает, где и как сие происходит. Пожалуй остановлюсь на достигнутом, ибо никто не горит желанием помочь, а я уже задолбался ковыряться в исходниках. | |
|
| |
klerk - Warrant Officer -
| 1108 |
Doom Rate: 1.13 Posts quality: +803 |
Отправлено: 02.06.16 03:34:22 | | | FalseMaster, не то чтобы абсолютно пофиг, просто я не могу предсказать, как на твоём железе он себя будет вести. У меня лично GZDoom лучше себя ведёт, чем ZDoom. Тебе просто пробовать надо, если ты уж решил сидеть на такой конфигурации, то никто за тебя не попробует. | |
|
1 |
9 |
|
|
| |
ZZYZX - UAC Commissar -
| | 6284 |
Doom Rate: 1.65 Posts quality: +1630 |
Отправлено: 02.06.16 04:03:01 | | | Doomstalker: | 35 fps поставил. Ладно, если бы разработчик порта ставил 60 fps, но 200... Многовато как-то. |
vid_vsync 1. Мне наоборот его приходится целенаправленно выключать, чтобы фпс был выше 60. | |
|
2 |
2 |
1 |
|
|
| |
FalseMaster = UAC Gunner =
| 76 |
Doom Rate: 5.07 Posts quality: +6 |
Отправлено: 03.06.16 01:37:24 | | | После многочисленных экспериментов я таки почти добился своего – в режиме карты на паузе 3-4%. Можно и ещё убавить, но тогда возникает ощутимая задержка при переключении.
UPD: В кабинете раздумий пришла умная мысля; теперь на паузе (и в игре и в карте) 2-3%. Можно считать, что авантюра удалась. | |
|
| |