на главную
об игре

Как в Microsoft Visual Studio запустить эмуляцию AVX-инструкций?

Всем привет. На моем процессоре Xeon X5670 нет AVX инструкций, которые на данный момент требуются в играх Journey и Flower (один и тот же разработчик), но я хочу в них поиграть, а процессор менять не собираюсь. Недавно нашел комментарий в Steam-обществе steamcommunity. com/app/966330/discussions/0/3247562523070871218/ (уберите лишний пробел в адресе), согласно которому существует возможность запуска игр (с отладкой приложения), требующих AVX на ПК, которые такими инструкциями не обладают. Для этого нужен компонент "intel sde (Software Development Emulator)" для эмуляции AVX-инструкций. Он устанавливается поверх Microsoft Visual Studio 2012-2015 (более поздние версии возможно тоже поддерживаются).
Что получилось сделать у себя из задуманного:
1. Установил Visual Studio 2012
- снять галочки со всех компонентов кроме "Microsoft Foundation Classes для C++"
2. Установил пакет sde-msvs2015-3.0.2 (intel sde)

На чем остановился (дальше не знаю что делать):
3. По идее нужно открыть Visual Studio 2012 и в меню "Файл"-"Открыть"-"Решение или проект"-"Исполняемые файлы проектов" указать на запускной (.ехе) файл игры, после чего в меню "Отладка" нажать "Начать Отладку".
- У меня на данном этапе, после нажатия на кнопку "Начать Отладку" выскакивает куча ошибок (игра не запускается), первая из которых эта (пробовал с игрой Flower):

- Возможно следует запускать игру через с параметром "sde --", как указано ниже из примера использования Intel SDE (как запустить игру с ним не знаю, пробовал дописать как аргумент в свойствах запуска файла внутри Visual Studio - не помогает).
Информация, которая поможет разобраться как работает эмуляция AVX в Visual Studio, описана на русском здесь: habr. com/ru/post/99367/ (уберите лишний пробел в адресе)
Я выделили для себя наиболее важные положения оттуда:

Чтобы убедиться в работоспособности AVX кода лучше написать к нему Unit-тесты. Однако встаёт вопрос: как запустить эти Unit-тесты, если ни один ныне продаваемый процессор не поддерживает AVX? В этом вам поможет специальная утилита от Intel — Software Development Emulator (SDE). Всё, что умеет SDE — это запускать программы, на лету эмулируя новые наборы инструкций. Разумеется, производительность при этом будет далека от таковой на реальном железе, но проверить корректность работы программы таким образом можно. Использовать SDE проще простого: если у вас есть unit-тест для AVX кода в файле avx-unit-test.exe и его нужно запускать с параметром «Hello, AVX!», то вам просто нужно запустить SDE с параметрами
sde -- avx-unit-test.exe "Hello, AVX!"
При запуске программы SDE сэмулирует не только AVX инструкции, но также и инструкции XGETBV и CPUID, так что если вы используете предложенный ранее метод для детектирования поддержки AVX, запущенная под SDE программа решит, что AVX действительно поддерживается. Кроме AVX, SDE (вернее, JIT-компилятор pin, на котором SDE построен) умеет эмулировать SSE3, SSSE3, SSE4.1, SSE4.2, SSE4a, AES-NI, XSAVE, POPCNT и PCLMULQDQ инструкции, так что даже очень старый процессор не помешает вам разрабатывать софт под новые наборы инструкций.

Использование AVX в коде на C/C++
Поддержка AVX реализована в следующих популярных компиляторах:
- Microsoft C/C++ Compiler начиная с версии 16 (входит в Visual Studio 2010)
- Intel C++ Compiler начиная с версии 11.1
- GCC начиная с версии 4.4

Комментарии: 7
Ваш комментарий

Игорь Остапенко
Это называется мы не ищем лёгких путей.)))

2

РАБОЧЕЕ РЕШЕНИЕ

Пред коменты 2019 год, но думаю, что тема еще актуальна. Вдруг кому помогу.
Пишу коротко. Далее пошаговот + ссылки на эмулятор и скрины для пояснения.

Порядок действий:
1. Скачать и распаковать Intel SDE ('released July 18, 2021' - проверен)
2. Запустить консоль от имени администратора - пример на скрине
3. Ваша команда: X:\SDE-PATH>sde.exe -CPUID -- "GAME-PATH" - пример
4. Ждем какое-то время, для эмуляции и запуска приложения.

Для ежедневного использования:
1. Создайте ярлык файла sde.exe, из папки эмулятора
2. Зайдмите в "Свойства" этого ярлыка
3. Вам нужно поле "Объект"
4. В это после вставляем нашу командуя . Вуа-ля!

Пояснение команды:
- Х - диск, а SDE-PATH - путь к файлам распакованого эмулятора
- у меня это C:\Users\roman\Downloads\sde-external-9.24.0-2023-07-13-win
- sde.exe - что идет после пути и знака > по сути и есть запуск среды
- далее идет пробел, дефис, и CPUID, что означает какой-то процессор
- я использовал -cpx , это ID процессора Xeon Platinum 8360H, у него есть AVX
- далее идет пробел, дефис, дефис, пробел, и через кавычки путь к приложению
- у меня это аппка диагностики, чтобы проверить - с эмуляцией и без эмуляции
- в вашем случае это будет игра, ну или тоже диагностика, чтобы проверить. вот эвер.
- путь к апке в кавычках т.к. там есть пробелы, есть путь с пробелами - бери в "кавычки"

2

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

1

Игра уже запускается на процах без avx,с последним патчем.

0

Forum2019
Спасибо за инфу, попробую. А не подскажите где вообще есть список изменений по игре Flower Journey - где только не искал - не нашел (в магазине Steam есть Flower, но список изменений там не содержит нужной информации, а в системных требованиях по прежнему написано "Must support AVX instructions set")

0

xenia не запускается без AVХ, а эмуль интела всё в тыкву превращает

0

Нашел видео на Youtube, которое показывает какая производительность AVX-эмулятора в игре Horizon Zero Dawn (ее можно запустить на ПК без AVX-инструкций, но комфортных FPS не наблюдается из-за DirectX12, а в приложениях с DirectX11 эмулятор позволяет выдавать больше FPS)

0
Новое на форуме Journey