Class AbstractGraphicsCard

java.lang.Object
oshi.hardware.common.AbstractGraphicsCard
All Implemented Interfaces:
GraphicsCard
Direct Known Subclasses:
LinuxGraphicsCard, MacGraphicsCard

@Immutable public abstract class AbstractGraphicsCard extends Object implements GraphicsCard
An abstract Graphics Card
  • Constructor Details

    • AbstractGraphicsCard

      protected AbstractGraphicsCard(String name, String deviceId, String vendor, String versionInfo, long vram)
      Constructor for AbstractGraphicsCard
      Parameters:
      name - The name
      deviceId - The device ID
      vendor - The vendor
      versionInfo - The version info
      vram - The VRAM
  • Method Details

    • getName

      public String getName()
      Description copied from interface: GraphicsCard
      Retrieves the full name of the card.
      Specified by:
      getName in interface GraphicsCard
      Returns:
      The name of the card.
    • getDeviceId

      public String getDeviceId()
      Description copied from interface: GraphicsCard
      Retrieves the card's Device ID
      Specified by:
      getDeviceId in interface GraphicsCard
      Returns:
      The Device ID of the card
    • getVendor

      public String getVendor()
      Description copied from interface: GraphicsCard
      Retrieves the card's manufacturer/vendor
      Specified by:
      getVendor in interface GraphicsCard
      Returns:
      The vendor of the card as human-readable text if possible, or the Vendor ID (VID) otherwise
    • getVersionInfo

      public String getVersionInfo()
      Description copied from interface: GraphicsCard
      Retrieves a list of version/revision data from the card. Users may need to further parse this list to identify specific GPU capabilities.
      Specified by:
      getVersionInfo in interface GraphicsCard
      Returns:
      A comma-delimited list of version/revision data
    • getVRam

      public long getVRam()
      Description copied from interface: GraphicsCard
      Retrieves the Video RAM (VRAM) available on the GPU
      Specified by:
      getVRam in interface GraphicsCard
      Returns:
      Total number of bytes.
    • createStatsSession

      public GpuStats createStatsSession()
      Description copied from interface: GraphicsCard
      Opens a new GpuStats session for sampling dynamic GPU metrics. The caller is responsible for closing the session when done, preferably via try-with-resources.

      Never returns null and never throws. Platforms that do not support a native session return a no-op instance whose metric methods return sentinel values.

      Specified by:
      createStatsSession in interface GraphicsCard
      Returns:
      a new, open GpuStats session
    • toString

      public String toString()
      Returns a string representation of this graphics card including any available dynamic metrics.

      Performance note: this method opens a native GpuStats session via createStatsSession(), samples all available metrics, then closes the session. On platforms with native GPU subscriptions (e.g. Apple Silicon via IOReport) this involves kernel-level IPC and should not be called in hot paths. Cache the result if repeated string representations are needed.

      Delta-based metric backends (GpuStats.getGpuUtilization() and GpuStats.getPowerDraw()) may return -1 on the first call after a session is opened while they record the initial baseline. Backends that read instantaneous values (e.g. Linux sysfs and the macOS IOAccelerator fallback) can return a valid value on the first call. Use a persistent GpuStats session with a polling loop for reliable delta values.

      Overrides:
      toString in class Object
      Returns:
      a human-readable description of this graphics card