Driver info API

该文件包含应用程序接口(API),允许用户获取有关驱动程序、当前状态和运行硬件的各种信息。

Enums

enum class APISupport

Enum representing the level of API support for a current hardware. Currently it is only used to check DX12 support with a fallback on DX11 if the support is not full.

Values:

enumerator FULL_SUPPORT

Full support for the API.

enumerator OUTDATED_OS

The Windows version is outdated.

enumerator OUTDATED_DRIVER

The driver is outdated.

enumerator BLACKLISTED_DRIVER

The driver is blacklisted (we know about bugs in the driver)

enumerator NO_DEVICE_FOUND

No compatible device found.

class Driver3dInitCallback

Callback class for initializing the 3D driver.

Public Types

using NeedStereoRenderFunc = bool (*)()

Function pointer type for checking if stereo rendering is needed.

using StereoRenderDimensionFunc = int (*)()

Function pointer type for getting the dimension of stereo rendering.

using StereoRenderExtensionsFunc = const char *(*)()

Function pointer type for getting the extensions for stereo rendering.

using StereoRenderVersionsFunc = VersionRange (*)()

Function pointer type for getting the supported versions for stereo rendering

using StereoRenderAdapterFunc = int64_t (*)()

Function pointer type for getting the adapter for stereo rendering.

Public Functions

inline virtual void verifyResolutionSettings(int &ref_scr_wdt, int &ref_scr_hgt, int base_scr_wdt, int base_scr_hgt, bool window_mode) const

Verifies the resolution settings.

Parameters
  • ref_scr_wdt – The reference screen width

  • ref_scr_hgt – The reference screen height

  • base_scr_wdt – The base screen width

  • base_scr_hgt – The base screen height

  • window_mode – Flag indicating if the window mode is enabled

virtual int validateDesc(Driver3dDesc &desc) const = 0

Validates the driver description.

Todo:

This fucntion is not used anywhere. Remove it?

Parameters

desc – The driver description to validate

Returns

something

virtual int compareDesc(Driver3dDesc &A, Driver3dDesc &B) const = 0

Compares two driver descriptions.

Todo:

This fucntion is not used anywhere. Remove it?

Parameters
  • A – The first driver description

  • B – The second driver description

Returns

something

inline virtual bool desiredStereoRender() const

Checks if stereo rendering is desired.

Returns

True if stereo rendering is desired, false otherwise

inline virtual int64_t desiredAdapter() const

Gets the desired adapter.

Returns

The desired adapter ID

inline virtual RenderSize desiredRendererSize() const

Gets the desired size of the renderer.

Returns

The desired size of the renderer

inline virtual const char *desiredRendererDeviceExtensions() const

Gets the desired device extensions for the renderer.

Returns

The desired device extensions for the renderer

inline virtual const char *desiredRendererInstanceExtensions() const

Gets the desired instance extensions for the renderer.

Returns

The desired instance extensions for the renderer

inline virtual VersionRange desiredRendererVersionRange() const

Gets the desired version range for the renderer.

Returns

The desired version range for the renderer

struct RenderSize

Struct representing the size of the render area.

Public Members

int width

The width of the render area.

int height

The height of the render area.

struct VersionRange

Struct representing a range of driver versions.

Public Members

uint64_t minVersion

The minimum driver version.

uint64_t maxVersion

The maximum driver version.

namespace d3d

Functions

int guess_gpu_vendor(String *out_gpu_desc = NULL, uint32_t *out_drv_ver = NULL, DagorDateTime *out_drv_date = NULL, uint32_t *device_id = nullptr)

Guesses and returns the GPU vendor ID.

Parameters
  • out_gpu_desc – Pointer to store the GPU description

  • out_drv_ver – Pointer to store the driver version

  • out_drv_date – Pointer to store the driver date

  • device_id – Pointer to store the device ID

Returns

The GPU vendor ID for enum D3D_VENDOR_…

DagorDateTime get_gpu_driver_date(int vendor)

Gets the driver date for the GPU vendor.

Parameters

vendor – The GPU vendor ID

Returns

The driver date for the GPU vendor

unsigned get_dedicated_gpu_memory_size_kb()

Determines and returns the size of the dedicated GPU memory in KB.

Returns

The size of the dedicated GPU memory in KB

unsigned get_free_dedicated_gpu_memory_size_kb()

Determines and returns the size of the free dedicated GPU memory in KB.

Returns

The size of the free dedicated GPU memory in KB

void get_current_gpu_memory_kb(uint32_t *dedicated_total, uint32_t *dedicated_free)

Gets the current GPU memory during the game (supports only Nvidia GPUs).

Parameters
  • dedicated_total – Pointer to store the total dedicated GPU memory

  • dedicated_free – Pointer to store the free dedicated GPU memory

bool get_gpu_freq(String &out_freq)

Gets the GPU frequency.

Note

This function works only for Nvidia GPUs

Parameters

out_freq – String to store the GPU frequency

Returns

True if the GPU frequency was successfully retrieved, false otherwise

int get_gpu_temperature()

Gets the GPU temperature.

Note

This function works only for Nvidia GPUs

Returns

The GPU temperature

void get_video_vendor_str(String &out_str)

Gets the video vendor string.

Parameters

out_str – String to store the video vendor string

float get_display_scale()

Gets the display scale.

Returns

The display scale

void disable_sli()

Disables SLI settings for the profile.

Todo:

Remove. We don’t support SLI anymore

const char *get_driver_name()

Gets the driver name.

Returns

The driver name

DriverCode get_driver_code()

Gets the driver code.

Returns

The driver code

static inline bool is_stub_driver()

Checks if the d3d-stub driver is used.

Returns

True if the d3d-stub driver is used, false otherwise

const char *get_device_driver_version()

Gets the device driver version.

Note

Work only for Vulkan. On other platforms returns “1.0”

Returns

The device driver version

const char *get_device_name()

Gets the device name.

Returns

The device name

const char *get_last_error()

Gets the last error message.

Returns

The last error message

uint32_t get_last_error_code()

Gets the last error code.

Returns

The last error code

void *get_device()

Gets the raw pointer to the device interface (implementation and platform specific).

Returns

The raw pointer to the device interface

void *get_context()

Gets the raw pointer to the device context (implementation and platform specific).

Returns

The raw pointer to the device context

const Driver3dDesc &get_driver_desc()

Gets the driver description.

Returns

The driver description

bool is_in_device_reset_now()

Checks if the device is in device reset or being reset.

Returns

True if the device is in device reset or being reset, false otherwise

bool is_window_occluded()

Checks if the game rendering window is completely occluded.

Returns

True if the game rendering window is completely occluded, false otherwise

bool should_use_compute_for_image_processing(std::initializer_list<unsigned> formats)

Checks if compute commands should be preferred for image processing.

Note

Implemented only for DX11

Parameters

formats – The list of image formats

Returns

True if compute commands should be preferred, false otherwise