Fulqrum Publishing Home   |   Register   |   Today Posts   |   Members   |   UserCP   |   Calendar   |   Search   |   FAQ

Go Back   Official Fulqrum Publishing forum > Fulqrum Publishing > IL-2 Sturmovik: Cliffs of Dover

IL-2 Sturmovik: Cliffs of Dover Latest instalment in the acclaimed IL-2 Sturmovik series from award-winning developer Maddox Games.

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #11  
Old 04-14-2012, 10:20 PM
Thee_oddball Thee_oddball is offline
Approved Member
 
Join Date: Mar 2011
Posts: 812
Default

Quote:
That should be possible.

According to the nVidia docs, you can query this via NVCPL.DLL (liked to documentation).

The call to be used is NvCplGetDataInt() (page 67), with the argument NVCPL_API_NUMBER_OF_SLI_GPUS or NVCPL_API_SLI_MULTI_GPU_RENDERING_MODE you should obtain the information required.

In oder to access this information, you'll need P/Invoke. If it is OK to statistically link NVCPL.DLL you just have to create the correct import (static external method) and you're fine. Otherwise, you can also choose the LoadLibrary and GetEntryPoint way and use the Marshal class to create an instance of a delegate (declared with the correct arguments) which represents the function to be called.

Edit: The following snippet may get you started (I don't have a nVidia card though, so that's completely untested and on your own risk ):
Code:
public const int NVCPL_API_NUMBER_OF_GPUS =7;    // Graphics card number of GPUs. 
public const int NVCPL_API_NUMBER_OF_SLI_GPUS = 8;    // Graphics card number of SLI GPU clusters available. 
public const int NVCPL_API_SLI_MULTI_GPU_RENDERING_MODE = 9;    // Get/Set SLI multi-GPU redering mode.  

[DllImport("NVCPL.DLL", CallingConvention=CallingConvention.Cdecl)]
public static extern bool nvCplGetDataInt([In] int lFlag, [Out] out int plInfo);

public static void Main()       {
        int sliGpuCount;
        if (nvCplGetDataInt(NVCPL_API_NUMBER_OF_SLI_GPUS, out sliGpuCount)) {
                // we got the result
                Console.WriteLine(string.Format("SLI GPU present: {0}", sliGpuCount));
        } else {
                // something did go wrong
                Console.WriteLine("Failed to query NV data");
        }
}
source: http://stackoverflow.com/questions/1...mode-is-active
__________________
Gigabyte Z68
Intel 2500K (@4.3 ghz)212 CM Cooler
8GB Ram
EVGA 660SC (super clocked) 2GB Vram
CORSAIR CMPSU-750TX 750W
64 GB SSD SATA II HD
WIN7 UL 64BIT
Reply With Quote
 

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 07:28 PM.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright © 2007 Fulqrum Publishing. All rights reserved.