К архитектуре Arm в компьютерах рынок уже постепенно привыкает, а вот RISC-V, которая в определённых сегментах может конкурировать с Arm, пока что далека от массового потребителя. Но, как показал новый эксперимент, на таком «железе» можно даже запустить современную игру.
Команда энтузиастов, судя по всему, впервые в истории запустила достаточно современную AAA-игру на платформе с процессором RISC-V в основе.
Запускали игру The Witcher 3: Wild Hunt, которая по современным меркам требовательной не является, но всё же, во-первых, до сих пор очень популярна, а во-вторых, совсем уж нетребовательной её тоже не назовёшь. Авторы проекта Box64 использовали компьютер Milk-V Pioneer от Sophgo, в основе которого лежит 64-ядерный процессор RISC-V. А ещё у этого ПК есть слот PCIe для видеокарты, куда авторы установили Radeon RX 5500 XT. Почему именно её, неясно, ибо это далеко не самое мощное решение, но с хорошим процессором в The Witcher 3 карта способна выдавать около 60 к/с в Full HD при максимальных настройках. В случае тестового ПК получилось лишь 15 к/с.
Неясно, можно ли было бы получить больше при более мощной видеокарте, но в любом случае точно всё упирается в процессор.
Всё упирается в первую очередь в отсутствие у процессора RISC-V поддержки многих инструкций x86_64. Поэтому главная проблема эмуляции x86 на архитектуре RISC-V заключается в переводе инструкций процессора x86/x64 в то, что RISC-V действительно может понять. В оригинальном сообщении в блоге подробно описывается несколько инструкций x86, которые особенно сложно эффективно перевести на RISC-V, что приводит к тому, что много аппаратной мощности тратится на излишнюю трансляцию того, что раньше было простыми инструкциями x86, которые архитектура RISC-V усложнила. Ранее эти же энтузиасты сумели адаптировать для платформы такие игры, как Stardew Valley и World of Goo, но с The Witcher 3 всё было сложнее, да и нужен был подходящий ПК с PCIe. В любом случае, пока что это просто эксперимент, но не исключено, что когда-нибудь RISC-V всё же займёт в потребительском сегменте какую-то выделенную нишу.