diff --git a/Editor/main.cpp b/Editor/main.cpp index 8e43da9cd..f46f740c2 100644 --- a/Editor/main.cpp +++ b/Editor/main.cpp @@ -53,11 +53,42 @@ struct Application : boo::IApplicationCallback const Zeus::CPUInfo& cpuInf = Zeus::cpuFeatures(); HECL::SystemString cpuName{reinterpret_cast(cpuInf.cpuBrand)}; - HECL::SystemStringView cpuNameView{cpuName}; HECL::SystemString cpuVendor{reinterpret_cast(cpuInf.cpuVendor)}; - HECL::SystemStringView cpuVendorView{cpuVendor}; - Log.report(LogVisor::Info, _S("CPU Name: %s"), cpuNameView.sys_str().c_str()); - Log.report(LogVisor::Info, _S("CPU Vendor: %s"), cpuVendorView.sys_str().c_str()); + Log.report(LogVisor::Info, _S("CPU Name: %s"), cpuName.c_str()); + Log.report(LogVisor::Info, _S("CPU Vendor: %s"), cpuVendor.c_str()); + HECL::SystemString features; + if (cpuInf.AESNI) + features += _S("AES-NI"); + if (cpuInf.SSE1) + { + if (!features.empty()) + features += _S(", SSE1"); + else + features += _S("SSE1"); + } + else + { + Log.report(LogVisor::FatalError, _S("URDE requires SSE1 minimum")); + return; + } + if (cpuInf.SSE2) + features += _S(", SSE2"); + else + { + Log.report(LogVisor::FatalError, _S("URDE requires SSE2 minimum")); + return; + } + if (cpuInf.SSE3) + features += _S(", SSE3"); + if (cpuInf.SSSE3) + features += _S(", SSSE3"); + if (cpuInf.SSE4a) + features += _S(", SSE4a"); + if (cpuInf.SSE41) + features += _S(", SSE4.1"); + if (cpuInf.SSE42) + features += _S(", SSE4.2"); + Log.report(LogVisor::Info, _S("CPU Features: %s"), features.c_str()); } };