Форум HeroesWorld-а - Показать сообщение отдельно - [ПРОБЛЕМА] Heroes3 на двухядерном процессоре
Показать сообщение отдельно
#26
Старый 27.04.2008, 12:09
  #26
^
C13
 
Аватар для C13
📖
Регистрация: 04.06.2007
Адрес: Санкт-Петербург
Сообщения: 31
Регистрация: 04.06.2007
Адрес: Санкт-Петербург
Сообщения: 31
По умолчанию
Re: [ПРОБЛЕМА] Запуск игры на двухядерном процессоре

Приведу данные рекомендации, если что спрашивайте.
В двухъядерной системе наиболее часто наблюдаемая проблема (с которой можно столкнуться и в случае с процессором, c технологией Hyper-Threading) состоит в снижении производительности по сравнению с аналогичной одноядерной системой. К тому же в играх наблюдается, к примеру, резкое увеличение внутриигровой скорости (не производительности!). Причиной этого является некорректный выбор таймера операционной системы - вместо таймера управления питанием ACPI используется таймер TSC, что приводит к ошибкам в программах, задействующих в своей работе вызов функции ядра QueryPerformanceCounter.

В таком случае необходимо сделать следующее: в первую очередь нужно добавить в файл boot.ini, расположенный в корневом каталоге диска C, в конец строчки вида «multi(0)disk(0)rdisk(0)partition(1)WINDOWS="Microsoft Windows XP Professional"/noexecute=optin/fastdetect» ключ/usepmtimer. Если вы не видите в Проводнике данного файла, то выберите в меню в разделе Сервис пункт Свойства папки . В появившемся окне на вкладке Вид уберите галочку возле пункта Скрывать защищенные системные файлы и в разделе Скрытые файлы и папки выберите Показывать скрытые файлы и папки . Далее владельцы процессоров AMD должны скачать и установить программу AMD DualCore Optimizer, Заметим, что если вы используете для управления частотой процессора не системные средства, а программу RMClock версии 2.15, то достаточно только добавить /usepmtimer в загрузочный файл. Если же, несмотря на выполнение вышеописанных действий, в ходе игры все равно возникают проблемы (зависания, выбрасывание на Рабочий стол и т. п.), то стоит попробовать жестко привязать игру к одному из ядер. Для этого после запуска игры нажимаем Ctrl+Alt+Del , в появившемся диспетчере задач щелкаем правой кнопкой на игре, выбираем пункт Перейти к процессам , затем кликаем опять правой кнопкой на выделенном процессе и выбираем Задать соответствие . В появившемся окне снимаем галочку возле одного из ядер, какого именно - не имеет значения, после чего закрываем окно, сам диспетчер задач и возвращаемся в игру. Если же после указанных действий проблемы не исчезли, и при этом у вас установлена видеокарта фирмы NVIDIA, можно попробовать отключить многопоточные оптимизации в видео-драйверах. Запускаем редактор реестра ( Пуск -> Выполнить -> regedit.exe), идем по адресу HKey_Local_MachineHardwareDeviceMapVideo и выписываем из переменной devicevideo0 адрес, по которому расположены настройки видеокарты. Заметим, что указанный адрес у систем Windows 2000 и Windows XP отличается, в Windows 2000 он будет иметь вид \REGISTRY\Machine\System\ControlSet001\Services\nv \Device0 , в то время как в Windows XP \Registry\Machine\System\Current ControlSet\Control\Video{DD18ED74-F584-4145-B29B-E3A6C6189FAA}\0000 . Переходим по указанному адресу, учитывая следующее: \Registry в данном случае говорит о том, что информация находится в реестре, а \Machine - что она хранится в разделе HKEY_LOCAL_MACHINE . Щелкаем мышью в правой части окна, выбираем Создать - Параметр DWORD , называем его OGL_ThreadControl и присваиваем ему значение 2 . Для отключения многопоточности в приложениях Direct3D нужно создать переменную WTD_EXECMODEL того же типа и присвоить ей значение 0 . [[COLOR="Red"Заметим, что обычно производители игр достаточно оперативно реагируют на проблемы такого рода, и прежде чем отключать поддержку двухъядерников, стоит проверить, нет ли COLOR]патча для игры, исправляющего возможные ошибки.

Добавлено через 17 минут
В прошлый раз погорячился про проц, думал что о пятёрке речь.
C13 вне форума
Ответить с цитированием