Graphics

In this section you will learn how to get information about installed graphics conrollers and connected displays:

For function reference and examples we assume, that we imported systeminformation as follows:

    const si = require('systeminformation');

## Graphics Controllers, Displays

All functions in this section return a promise or can be called with a callback function (parameter cb in the function reference)

Function | Result object | Linux | BSD | Mac | Win | Sun | Comments
--- | --- | --- | --- | --- | --- | --- | ---
si.graphics(cb) | {...} | X |  | X | X |  | arrays of graphics controllers and displays
| controllers[] | X |  | X | X |  | graphics controllers array
| ...[0].model | X |  | X | X |  | graphics controller model
| ...[0].vendor | X |  | X | X |  | e.g. ATI
| ...[0].bus | X |  | X | X |  | on which bus (e.g. PCIe)
| ...[0].vram | X |  | X | X |  | VRAM size (in MB)
| ...[0].vramDynamic | X |  | X | X |  | true if dynamically allocated ram
| ...[0].subDeviceId | X |  |  | X |  | (pptional nvidia-smi) - sub device ID
| ...[0].driverVersion | X |  |  | X |  | (pptional nvidia-smi) - driver version
| ...[0].name | X |  |  | X |  | (pptional nvidia-smi) - name
| ...[0].pciBus | X |  |  | X |  | (pptional nvidia-smi) - PCI bus ID
| ...[0].fanSpeed | X |  |  | X |  | (pptional nvidia-smi) - fan speed
| ...[0].memory total | X |  |  | X |  | (pptional nvidia-smi) - memory total
| ...[0].memoryUsed | X |  |  | X |  | (pptional nvidia-smi) - memory used
| ...[0].memoryFree | X |  |  | X |  | (pptional nvidia-smi) - memory free
| ...[0].utilizationGpu | X |  |  | X |  | (pptional nvidia-smi) - utilization GPU
| ...[0].utilizationMemory | X |  |  | X |  | (pptional nvidia-smi) - utilization memory
| ...[0].temperatureGpu | X |  |  | X |  | (pptional nvidia-smi) - temperature GPU
| ...[0].temperatureMemory | X |  |  | X |  | (pptional nvidia-smi) - temperature memory
| ...[0].powerDraw | X |  |  | X |  | (pptional nvidia-smi) - power draw
| ...[0].powerLimit | X |  |  | X |  | (pptional nvidia-smi) - power limit
| ...[0].clockCore | X |  |  | X |  | (pptional nvidia-smi) - clock core
| ...[0].clockMemory | X |  |  | X |  | (pptional nvidia-smi) - clock memory
| displays[] | X |  | X | X |  | monitor/display array
| ...[0].vendor |  |  |  | X |  | monitor/display vendor
| ...[0].deviceName |  |  |  | X |  | e.g. \\.\DISPLAY1
| ...[0].model | X |  | X | X |  | monitor/display model
| ...[0].main | X |  | X | X |  | true if main monitor
| ...[0].builtin | X |  | X |  |  | true if built-in monitor
| ...[0].connection | X |  | X | X |  | e.g. DisplayPort, HDMI
| ...[0].sizex | X |  | X | X |  | size in mm horizontal
| ...[0].sizey | X |  | X | X |  | size in mm vertical
| ...[0].pixeldepth | X |  | X | X |  | color depth in bits
| ...[0].resolutionx | X |  | X | X |  | pixel horizontal
| ...[0].resolutiony | X |  | X | X |  | pixel vertical
| ...[0].currentResX | X |  | X | X |  | current pixel horizontal
| ...[0].currentResY | X |  | X | X |  | current pixel vertical
| ...[0].positionX |  |  |  | X |  | screen position X
| ...[0].positionY |  |  |  | X |  | screen position Y
| ...[0].currentRefreshRate | X |  |  | X |  | current screen refresh rate
| ##### Example
    const si = require('systeminformation');
    si.graphics().then(data => console.log(data));
    {
      controllers: [
        {
          vendor: 'Intel',
          model: 'Intel Iris Plus Graphics 655',
          bus: 'Built-In',
          vram: 1536,
          vramDynamic: true
        }
      ],
      displays: [
        {
          vendor: '',
          model: 'Color LCD',
          main: true,
          builtin: false,
          connection: 'Internal',
          sizex: -1,
          sizey: -1,
          pixeldepth: 24,
          resolutionx: 2560,
          resolutiony: 1600,
          currentResX: 2560,
          currentResY: 1600,
          positionX: 0,
          positionY: 0,
          currentRefreshRate: -1
        }
      ]
    }