• ВНИМАНИЕ! НОВЫЙ АДРЕС САЙТА

    РКН заблокировал текущий домен

    Актуальный адрес сайта всегда указан здесь - EGROUND-ZERKALO.COM

Чтиво Wargaming не любит AMD

Как вы думаете, это честно

  • Да.

    Голосов: 0 0,0%
  • Не интересует, просто прохожу мимо.

    Голосов: 0 0,0%

  • Всего проголосовало
    2
D

Denzila

Пользователь
Сообщения
16
Лайки
17
Играю в танчики часто, но компьютер на процике от AMD, танки довольно медленно идут, решил поискать и разобраться в чем дело)


Что происходит:
Компилятор для программного кода может выдавать несколько версий машинного
кода, каждая из которых оптимизирована для определённого процессора и набора
инструкций, например, SSE2, SSE3, и т.д. Система включает в себя функцию,
которая определяет, на каком типе процессора она запущена и выбирает самую
подходящую версию. Эта функция называется диспетчером процессора. Диспетчер
процессора Intel проверяет не только набор инструкций, поддерживаемый
процессором, но также идентификатор производителя процессора.
Если идентификатор — строка «GenuineIntel», то выбирается наиболее
оптимальный вариант кода. Но если процессор не от Intel, то в большинстве
случаев будет выбран самый медленный из возможных вариантов, даже если
процессор полностью совместим с лучшей версией.

Wargaming не уважает пользователей процессоров AMD и компилирует игры под процессоры Intel, что вызывает замедление у пользователей использующих процессоры AMD.
В частности замедление касается игр World of Tanks и World of Warships.

Патч 0.9.15.0.1 обновился worldoftanks.exe (без изменений в лучшую сторону)


Добавлю инструкцию используемой программы которая недолжна находить ничего если используется нормальный или пропатченный компилятор:

Intel Compiler Patcher

ВНИМАНИЕ! ВЫ ИСПОЛЬЗУЕТЕ ЭТУ ПРОГРАММУ НА СВОЙ СТРАХ И РИСК. АВТОР НЕ НЕСЕТ
ОТВЕТСТВЕННОСТИ ЗА ЛЮБУЮ ВОЗМОЖНУЮ ПОРЧУ ИНФОРМАЦИИ, ВОЗНИКШУЮ В РЕЗУЛЬТАТЕ
ИСПОЛЬЗОВАНИЯ ЭТОЙ ПРОГРАММЫ. ПОЖАЛУЙСТА ПРОЧИТАЙТЕ ФАЙЛ LICENSE.TXT ДЛЯ
ПОДРОБНОЙ ИНФОРМАЦИИ.

ВАЖНО! Данная программа может вносить изменения в исполняемые файлы сторонних
разработчиков, фирм и компаний. В результате этого Вы можете нарушить условия
лицензионного соглашения программ о «не допустимости модификации программы и
ее частей». Пожалуйста, перед тем, как применять данную программу для
модификации любых сторонних исполняемых файлов, ознакомьтесь с условиями
лицензии этих программ.

СОДЕРЖАНИЕ
1. ОПИСАНИЕ
2. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
3. ПРАКТИЧЕСКАЯ ЧАСТЬ
4. ПРИНЦИП РАБОТЫ ICP
5. РАБОТА С ПРОГРАММОЙ
5.1 РАБОТА С ПРОГРАММОЙ — ОПЦИИ
5.2 РАБОТА С ПРОГРАММОЙ — СКАНИРОВАНИЕ (ПОИСК)
5.3 РАБОТА С ПРОГРАММОЙ — ПАТЧИНГ
6. БЛАГОДАРНОСТИ
7. АВТОР

1. ОПИСАНИЕ
Программа Intel Compiler Patcher (далее ICP) предназначена для поиска
исполняемых файлов, скомпилированных с помощью Intel C++ Compiler, с
возможностью дальнейшего отключения «диспетчера процессора» в найденных
файлах. ICP может повысить производительность таких программ на процессорах,
отличных от Intel.

2. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
Компилятор для программного кода может выдавать несколько версий машинного
кода, каждая из которых оптимизирована для определённого процессора и набора
инструкций, например, SSE2, SSE3, и т.д. Система включает в себя функцию,
которая определяет, на каком типе процессора она запущена и выбирает самую
подходящую версию. Эта функция называется диспетчером процессора. Диспетчер
процессора Intel проверяет не только набор инструкций, поддерживаемый
процессором, но также идентификатор производителя процессора.
Если идентификатор — строка «GenuineIntel», то выбирается наиболее
оптимальный вариант кода. Но если процессор не от Intel, то в большинстве
случаев будет выбран самый медленный из возможных вариантов, даже если
процессор полностью совместим с лучшей версией.

3. ПРАКТИЧЕСКАЯ ЧАСТЬ
Часть функции диспетчера задач от компиляторов Intel представляет из себя
код вида:

[..skip..]
mov eax, [ebp][-0008]
cmp eax, 0756E6547 ;"uneG" ; Проверка на «Genu»
jne not_intel ; если не равно, уходим на not_intel
mov eax, [ebp][-0010]
cmp eax, 049656E69 ;"Ieni" ; Проверка на «ineI»
jne not_intel ; не равно — not_intel
mov eax, [ebp][-0014]
cmp eax, 06C65746E ;"letn" ; Проверка на «ntel»
jne not_intel ; не равно — not_intel
mov edx, 000000001 ; тот самый секретный байт
jmps next
not_intel:
xor edx, edx ; а здесь 0, для всех не-интел процессоров
next:
[..skip..]

Здесь видно, что происходят три сравнения с сигнатурами «Genu», «ineI»,
«ntel» и если все три проверки завершились удачей, регистру EDX присваивается
значение «1» (один) — процессор от компании Intel. В противном случае — «0»
(ноль) — процессор от любых других производителей. Из этого следует, что
если отключить данные проверки, или заменить их на условие, которое всегда
будет верно, на выходе в регистре EDX будет содержатся «1» (один) не зависимо
от типа процессора.

4. ПРИНЦИП РАБОТЫ ICP
ICP базируется на алгоритме оригинального патчера от M. D Mackey © 2004 на
языке Perl: в исполняемом файле производится поиск на наличие сигнатур команд
сравнения, например 81 fa 47 65 6e 75 (cmp edx, 0756E6547), и последующей их
заменой на команды вида testl edx, 000000000 (f7 c2 00 00 00 00). Условие
testl edx, 00000000 всегда будет верным, а значит в EDX будет всегда значение
«1» (один), не зависимо от полученной ранее командой CPUID сроки. Таким
образом программа всегда будет считать, что она выполняется на процессоре от
фирмы Intel.
Регистры у команд сравнения могут быть различными, в зависимости от версий
компиляторов. ICP проверяет сигнатуры команд сравнения с регистрами: EAX, EBX,
ECX, EDX, EBP, ESI, EDI и [EBP][offset].

5. РАБОТА С ПРОГРАММОЙ
Интерфейс программы состоит из главного окна, на котором располагаются кнопки
управления программой, список найденных файлов и ниже — информация о каждом
найденном файле. Работа с программой сводится к двум основным этапам: 1)
непосредственно сканирование (поиск) файлов и 2) отключение диспетчера
процессора в найденных файлах (патчинг).

5.1 РАБОТА С ПРОГРАММОЙ — ОПЦИИ
Кнопка «Опции» предоставляет возможность настроить параметры поиска и
некоторые другие параметры:

«Минимальный размер» — Минимальный размер сканируемых файлов. По умолчанию
равен 500 байтам. Изменить в меньшую сторону параметр нельзя, поскольку
вряд ли Вам встретится исполняемый файл в Windows меньше пятиста байт.

«Максимальный размер» — Максимальный размер сканируемых файлов. По умолчанию
равен 100 Mb. Уменьшение этого параметра приведет к повышению быстродействия
сканирования, так как ICP загружает ПОЛНОСТЬЮ каждый файл в оперативную память.

«Искать файлы с не одинаковыми регистрами» — Этот параметр следует объяснить
подробнее. Обычно, процедура проверки типа процессора в компиляторах Intel
состоит из трех команд сравнения сигнатур «Genu»,"ineI","ntel" с одинаковым
регистром, то есть например только с EAX или только с EDX и тд. Однако,
встречаются исполняемые файлы в которых проверка сигнатуры производится с
различными регистрами, например:
cmp eax, «Genu»; cmp ebx, «ineI»; cmp edx, «ntel». Такой алгоритм сравнения
обычно применяется просто для идентификации процессора и не указывает на
принадлежность программы к Intel Compiler'у. С другой стороны, в программе
может сначала встретится обычная проверка диспетчера процессора Intel
(сравнение с одним и тем-же регистром), а где-то в конце программы уже
собственный алгоритм проверки типа процессора, написанный программистом. По
умолчанию данный параметр выключен. Не рекомендуется его включение, если Вы
не понимаете, что Вы делаете.

«Искать файлы с нечетным количеством совпадений» — Процедура проверки в
диспетчере процессора Intel состоит из трех команд сравнения. Так например, если
в программе встречается только одна команда сравнения cmp eax,"Genu" это
говорит о не принадлежности программы к Intel Compiler'у, а о собственной
функции определения типа процессора написанной программистом. Однако, как и
в предыдущем случае, возможен вариант, когда в начале программы встречается
обычная проверка диспетчера процессора Intel (cmp eax, «Genu»; cmp eax, «ineI»;
cmp eax, «ntel»), а где-то в конце программы — одинокая команда cmp ebx,"Genu".
По умолчанию данный параметр выключен. Не рекомендуется его включение, если Вы
не понимаете, что Вы делаете.

«Делать бекап» — Делать резервное копирование файлов перед их изменением
(патчем). Файл копируется в ту же директорию, где находится оригинальный файл,
с расширением .orig По умолчанию данная функция включена.

«Расширения файлов» — указывает, файлы с какими расширениями следует искать.
По умолчанию ICP ищет и проверяет все файлы с расширениями «.EXE», «.DLL»,
«.ACM», «.AX», «.CPL», «.OCX». Каждое расширение должно начинаться с точки,
разделителем служит символ «;» (точка с запятой).

«Язык» — Язык интерфейса программы.

«Автоматическая прокрутка файл-листа» — Позволяет автоматически прокручивать
в низ список файлов при сканировании. По умолчанию включена.

«Влючить лог-файл» — Позволяет включить протоколирование действий программы.
Лог файл имеет имя «icc_patch.log» и создается в директории, откуда запускалась
программа ICP.

5.2 РАБОТА С ПРОГРАММОЙ — СКАНИРОВАНИЕ (ПОИСК)
ВНИМАНИЕ! Перед началом сканирования файлов рекомендуется отключить
анти-вирусный резидентный сканер. Так как ICP работает с исполняемыми файлами
(производит открытие файла и его чтение в память), то как правило,
анти-вирусный резидентный сканер перехватывает обращения к файлам и
предварительно сканирует их на вирусы, тем самым значительно замедляя поиск
файлов. ICP НЕ запускает загруженный исполняемый файл на выполнение, а значит
не может активировать вредоносный код, случайно встреченный в программах.

Для поиска файлов, скомпилированных Intel Compiler'ом служит кнопка «Поиск».
Вам предлагается выбрать начальный каталог, откуда начнется сканирование.
Процесс сканирования отображается в нижней статусной строке. Найденные файлы
помещаются в центральное окно программы. Для просмотра информации о файле и
найденных в нем сигнатур необходимо нажать на имени файла в списке файлов.
Можно остановить процесс сканирования кнопкой «Стоп».

5.3 РАБОТА С ПРОГРАММОЙ — ПАТЧИНГ
После сканирования необходимо отметить нужные файлы галочками в списке и
нажать кнопку «Патчить».

6. БЛАГОДАРНОСТИ
В данном документе частично использован перевод статьи «Will Intel be
forced to remove the „cripple AMD“ function from their compiler?» Алексея
Романова.
Based on Perl version © Copyright M. D Mackey 2004. e-mail: mark@swallowtail.org
Third party library:
TaskEx v1.4 © Alexander Alexeev
AsyncCalls © 2006-2009 Andreas Hausladen
RXLib port © Oleg Fedorov
 
skipper47

skipper47

Пользователь
Сообщения
102
Лайки
74
Много текста. Очень сложна))) Но, хочу сказать, что у самого процик от AMD. Очень старый. А в танчики играю очень часто, и не замечал, цитата: "довольно медленно идут". Все летает хорошо. А кораблики, так вообще оптимизированы лучше, чем танки. Конечно, сугубо личное замечание.
 
D

Denzila

Пользователь
Сообщения
16
Лайки
17
Много текста. Очень сложна))) Но, хочу сказать, что у самого процик от AMD. Очень старый. А в танчики играю очень часто, и не замечал, цитата: "довольно медленно идут". Все летает хорошо. А кораблики, так вообще оптимизированы лучше, чем танки. Конечно, сугубо личное замечание.
Видео сейчас GTX 780 Ti, у друга почти аналогичная ситуация) Имелась в виду игра на максимальных( или близких к ним настройках) Тем более может пригодиться тем, у кого слабенькие ПК)
 
Сверху Снизу