CrossFireInfo CrossFireDetector::GetCrossFireInfo() { CrossFireInfo info; info.isCrossFireEnabled = false; info.gpuCount = 0; info.isAMDPlatform = initialized;
CrossFireDetector::CrossFireDetector() : agsContext(nullptr), initialized(false) { ZeroMemory(&gpuInfo, sizeof(AGSGPUInfo)); }
int crossfireGPUs = 0; // Core function: agsGetCrossfireGPUCount AGSReturnCode result = agsGetCrossfireGPUCount(agsContext, &crossfireGPUs); if (result != AGS_SUCCESS) { std::cerr << "Failed to get CrossFire GPU count. Error code: " << result << std::endl; return 0; }
// Initialize AGS context and detect CrossFire configuration bool Initialize(); agsgetcrossfiregpucount
add_executable(CrossFireDetector main.cpp CrossFireGPUDetector.cpp)
CrossFireDetector::~CrossFireDetector() { Shutdown(); }
// Get detailed info CrossFireInfo info = detector.GetCrossFireInfo(); info.isCrossFireEnabled = false
detector.Shutdown(); return 0; } cmake_minimum_required(VERSION 3.10) project(CrossFireDetector) set(CMAKE_CXX_STANDARD 17) Path to AMD AGS SDK set(AGS_ROOT "C:/Path/To/AMD/AGS_SDK")
std::cout << "=== AMD CrossFire Detection ===" << std::endl; std::cout << "CrossFire Active: " << (info.isCrossFireEnabled ? "Yes" : "No") << std::endl; std::cout << "Active CrossFire GPUs: " << info.gpuCount << std::endl;
// Retrieve detailed CrossFire information CrossFireInfo GetCrossFireInfo(); info.gpuCount = 0
// Get CrossFire GPU count info.gpuCount = GetCrossFireGPUCout(); info.isCrossFireEnabled = (info.gpuCount > 1);
// Get CrossFire GPU count directly int crossfireCount = detector.GetCrossFireGPUCout();