diff --git a/.gitmodules b/.gitmodules index d6965722..4dfb37c7 100644 --- a/.gitmodules +++ b/.gitmodules @@ -58,3 +58,6 @@ [submodule "externals/tracy"] path = externals/tracy url = https://github.com/shadps4-emu/tracy.git +[submodule "externals/hwinfo"] + path = externals/hwinfo + url = https://github.com/shadps4-emu/ext-hwinfo.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 6724bff9..da3ba430 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -541,7 +541,7 @@ endif() create_target_directory_groups(shadps4) -target_link_libraries(shadps4 PRIVATE magic_enum::magic_enum fmt::fmt toml11::toml11 tsl::robin_map xbyak::xbyak Tracy::TracyClient) +target_link_libraries(shadps4 PRIVATE magic_enum::magic_enum fmt::fmt toml11::toml11 tsl::robin_map xbyak::xbyak Tracy::TracyClient hwinfo::HWinfo) target_link_libraries(shadps4 PRIVATE Boost::headers GPUOpen::VulkanMemoryAllocator sirit Vulkan::Headers xxHash::xxhash Zydis::Zydis glslang::SPIRV glslang::glslang SDL3::SDL3) if (NOT ENABLE_QT_GUI) diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt index ca9c6747..ceec21c0 100644 --- a/externals/CMakeLists.txt +++ b/externals/CMakeLists.txt @@ -140,3 +140,6 @@ option(TRACY_ON_DEMAND "" ON) option(TRACY_NO_FRAME_IMAGE "" ON) option(TRACY_FIBERS "" ON) # For AmdGpu frontend profiling add_subdirectory(tracy) + +# hwinfo +add_subdirectory(hwinfo) \ No newline at end of file diff --git a/externals/hwinfo b/externals/hwinfo new file mode 160000 index 00000000..81ea6332 --- /dev/null +++ b/externals/hwinfo @@ -0,0 +1 @@ +Subproject commit 81ea6332fd4839890b1904f9668865145450f8da diff --git a/src/emulator.cpp b/src/emulator.cpp index 596c526b..303accf3 100644 --- a/src/emulator.cpp +++ b/src/emulator.cpp @@ -15,12 +15,14 @@ #include "common/logging/backend.h" #include "common/path_util.h" #include "common/singleton.h" +#include "common/version.h" #include "core/file_sys/fs.h" #include "core/libraries/kernel/thread_management.h" #include "core/libraries/libs.h" #include "core/linker.h" #include "core/memory.h" #include "emulator.h" +#include "hwinfo/hwinfo.h" Frontend::WindowSDL* g_window = nullptr; @@ -40,6 +42,8 @@ Emulator::Emulator() // Start logger. Common::Log::Initialize(); Common::Log::Start(); + LOG_INFO(Loader, "Starting shadps4 emulator v{} ", Common::VERSION); + PrintSystemInfo(); } Emulator::~Emulator() { @@ -177,4 +181,17 @@ void Emulator::LoadSystemModules(const std::filesystem::path& file) { } } +void Emulator::PrintSystemInfo() { + auto cpus = hwinfo::getAllCPUs(); + for (const auto& cpu : cpus) { + LOG_INFO(Loader, "CPU #{} {}", cpu.id(), cpu.modelName()); + } + hwinfo::OS os; + LOG_INFO(Loader, "{}", os.name()); + auto gpus = hwinfo::getAllGPUs(); + for (auto& gpu : gpus) { + LOG_INFO(Loader, "GPU #{} {}", gpu.id(), gpu.name()); + } +} + } // namespace Core diff --git a/src/emulator.h b/src/emulator.h index b61ce95e..fce612dc 100644 --- a/src/emulator.h +++ b/src/emulator.h @@ -29,6 +29,7 @@ public: private: void LoadSystemModules(const std::filesystem::path& file); + void PrintSystemInfo(); Core::MemoryManager* memory; Input::GameController* controller = Common::Singleton::Instance();