123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- program navapitest;
- {$APPTYPE CONSOLE}
- {$ifdef fpc}{$mode delphi}{$endif}
- uses
- SysUtils,
- NvAPI;
- procedure TestGraphicAPI;
- var
- info : NV_DISPLAY_DRIVER_VERSION;
- res : NvAPI_Status;
- begin
- writeln('Graphic Driver API: ' );
- FillChar(info, sizeof(info), 0);
- info.version:=NV_DISPLAY_DRIVER_VERSION_VER;
- res:=NvAPI_GetDisplayDriverVersion(0, @info);
- if res= NVAPI_OK then begin
- writeln('DriverVer: ', info.drvVersion div 100, '.', info.drvVersion mod 100);
- writeln('Branch: ', info.szBuildBranchString);
- writeln('Adpater: ', info.szAdapterString);
- end else
- writeln('Not available or Failed (err ', Integer(res),')');
- writeln;
- end;
- procedure TestGPUAPI;
- var
- phys : TNvPhysicalGpuHandleArray;
- log : TNvLogicalGpuHandleArray;
- cnt : LongWord;
- i : Integer;
- name : NvAPI_ShortString;
- thermal : TNvGPUThermalSettings;
- res : NvAPI_Status;
- begin
- writeln('GPU API: ' );
- if NvAPI_EnumPhysicalGPUs(phys, cnt) = NVAPI_OK then begin
- writeln('Physical GPUs ', cnt);
- for i:=0 to cnt - 1 do
- if NvAPI_GPU_GetFullName(phys[i], name) = NVAPI_OK then begin
- write(' ', name,' ');
- FillChar(thermal, sizeof(thermal), 0);
- thermal.version:=NV_GPU_THERMAL_SETTINGS_VER;
- res:=NvAPI_GPU_GetThermalSettings(phys[i],0, @thermal);
- if res= NVAPI_OK then
- write('temp: ', thermal.sensor[0].currentTemp, ' C');
- writeln;
- end;
- end;
- if NvAPI_EnumLogicalGPUs(log, cnt) = NVAPI_OK then
- writeln('Logical GPUs ', cnt);
- writeln;
- end;
- procedure TestDisplayAPI;
- var
- i : Integer;
- hnd : NvDisplayHandle;
- name : NvAPI_ShortString;
- begin
- writeln('Display APIs: ');
- i:=0;
- hnd:=0;
- while NvAPI_EnumNVidiaDisplayHandle(i, hnd) = NVAPI_OK do begin
- if NvAPI_GetAssociatedNVidiaDisplayName(hnd, name) = NVAPI_OK then
- writeln('Display: ', name);
- inc(i);
- end;
- writeln;
- end;
- procedure TestStereoscopicAPI;
- var
- res : NvAPI_Status;
- b : NvU8;
- begin
- writeln('Stereoscopic API check');
- res:=NvAPI_Stereo_IsEnabled(b);
- if res = NVAPI_OK then begin
- Writeln('Stereo is available');
- if b = 0 then
- writeln(' disabled')
- else
- writeln(' enabled');
- end else
- Writeln('Stereo is unavailable');
- writeln;
- end;
- procedure TestSystemAPI;
- var
- info : NV_CHIPSET_INFO_v1;
- res : NvAPI_Status;
- begin
- writeln('System APIs: ');
- FillChar(info, sizeof(info), 0);
- info.version:=NV_CHIPSET_INFO_VER_1;
- res:=NvAPI_SYS_GetChipSetInfo ( info );
- if res = NVAPI_OK then begin
- writelN('Vendor: ', info.szVendorName);
- writeln('Chipset: ', info.szChipsetName);
- writelN('Vendor ID: ', IntToHex(info.vendorId, 4));
- writelN('Device ID: ', IntToHex(info.deviceId, 4));
- end;
- writeln;
- end;
- var
- ver : NvAPI_ShortString;
- res : NvAPI_Status;
- begin
- res:=NvAPI_Initialize;
- if res<>NVAPI_OK then begin
- writeln('unable to initialize NvAPI');
- Exit;
- end;
- writeln('NvAPI test');
- NvAPI_GetInterfaceVersionString(ver);
- writeln('Version: ', ver);
- writeln;
- TestSystemAPI;
- TestGraphicAPI;
- TestDisplayAPI;
- TestGPUAPI;
- TestStereoscopicAPI;
- end.
|