From 08be8af5c0efc4e2f0f06dd5e290c03d8b6ea87a Mon Sep 17 00:00:00 2001 From: gibbed Date: Mon, 26 Nov 2018 10:24:17 -0600 Subject: [PATCH] [App] Abort out early with an error message if CPU does not support AVX. --- src/xenia/app/xenia_main.cc | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/xenia/app/xenia_main.cc b/src/xenia/app/xenia_main.cc index 2597fc02f..98dcbf4f4 100644 --- a/src/xenia/app/xenia_main.cc +++ b/src/xenia/app/xenia_main.cc @@ -37,6 +37,8 @@ #include "xenia/hid/xinput/xinput_hid.h" #endif // XE_PLATFORM_WIN32 +#include "third_party/xbyak/xbyak/xbyak_util.h" + DEFINE_string(apu, "any", "Audio system. Use: [any, nop, xaudio2]"); DEFINE_string(gpu, "any", "Graphics system. Use: [any, vulkan, null]"); DEFINE_string(hid, "any", "Input system. Use: [any, nop, winkey, xinput]"); @@ -138,6 +140,14 @@ int xenia_main(const std::vector& args) { Profiler::Initialize(); Profiler::ThreadEnter("main"); + Xbyak::util::Cpu cpu; + if (!cpu.has(Xbyak::util::Cpu::tAVX)) { + xe::FatalError( + "Your CPU is too old to support Xenia. See the FAQ for system " + "requirements at https://xenia.jp"); + return -1; + } + // Figure out where content should go. std::wstring content_root; if (!FLAGS_content_root.empty()) {