initialized = true; return true; }

include_directories(${AGS_ROOT}/inc)

return info; }

// Get CrossFire GPU count directly int crossfireCount = detector.GetCrossFireGPUCout();

// Get CrossFire GPU count using agsGetCrossfireGPUCount int GetCrossFireGPUCout();

struct CrossFireInfo { bool isCrossFireEnabled; int gpuCount; std::vector<std::string> gpuNames; bool isAMDPlatform; std::string errorMessage; };

// CrossFireGPUDetector.cpp #include "CrossFireGPUDetector.h" #include <iostream>

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")

if (!detector.Initialize()) { std::cout << "Failed to initialize AMD AGS. Non-AMD system?" << std::endl; return -1; }

return crossfireGPUs; }

link_directories(${AGS_ROOT}/lib)

// Cleanup AGS context void Shutdown(); private: AGSContext* agsContext; AGSGPUInfo gpuInfo; bool initialized; };

void CrossFireDetector::Shutdown() { if (agsContext) { agsDeInit(agsContext); agsContext = nullptr; } initialized = false; } // main.cpp - Example usage #include "CrossFireGPUDetector.h" #include <iostream> int main() { CrossFireDetector detector;

agsgetcrossfiregpucount
Customer Reviews