Overclock

Contents

Overclock#

oneAPI Level Zero Specification - Version 1.18.31

Overclock Functions#

zesOverclockGetDomainProperties#

Added in version 1.5

ZE_APIEXPORT ze_result_t ZE_APICALL zesOverclockGetDomainProperties(zes_overclock_handle_t hDomainHandle, zes_overclock_properties_t *pDomainProperties)#

Get overclock domain control properties.

  • The application may call this function from simultaneous threads.

  • The implementation of this function should be lock-free.

Parameters:
  • hDomainHandle – [in] Handle for the component domain.

  • pDomainProperties – [in,out] The overclock properties for the specified domain.

Returns:

zesOverclockGetDomainVFProperties#

Added in version 1.5

ZE_APIEXPORT ze_result_t ZE_APICALL zesOverclockGetDomainVFProperties(zes_overclock_handle_t hDomainHandle, zes_vf_property_t *pVFProperties)#

Read overclock VF min,max and step values.

  • The application may call this function from simultaneous threads.

  • The implementation of this function should be lock-free.

Parameters:
  • hDomainHandle – [in] Handle for the component domain.

  • pVFProperties – [in,out] The VF min,max,step for a specified domain.

Returns:

zesOverclockGetDomainControlProperties#

Added in version 1.5

ZE_APIEXPORT ze_result_t ZE_APICALL zesOverclockGetDomainControlProperties(zes_overclock_handle_t hDomainHandle, zes_overclock_control_t DomainControl, zes_control_property_t *pControlProperties)#

Read overclock control values - min/max/step/default/ref.

  • The application may call this function from simultaneous threads.

  • The implementation of this function should be lock-free.

Parameters:
  • hDomainHandle – [in] Handle for the component domain.

  • DomainControl – [in] Handle for the component.

  • pControlProperties – [in,out] overclock control values.

Returns:

zesOverclockGetControlCurrentValue#

Added in version 1.5

ZE_APIEXPORT ze_result_t ZE_APICALL zesOverclockGetControlCurrentValue(zes_overclock_handle_t hDomainHandle, zes_overclock_control_t DomainControl, double *pValue)#

Read the current value for a given overclock control.

  • The application may call this function from simultaneous threads.

  • The implementation of this function should be lock-free.

Parameters:
  • hDomainHandle – [in] Handle for the component.

  • DomainControl – [in] Overclock Control.

  • pValue – [in,out] Getting overclock control value for the specified control.

Returns:

zesOverclockGetControlPendingValue#

Added in version 1.5

ZE_APIEXPORT ze_result_t ZE_APICALL zesOverclockGetControlPendingValue(zes_overclock_handle_t hDomainHandle, zes_overclock_control_t DomainControl, double *pValue)#

Read the the reset pending value for a given overclock control.

  • The application may call this function from simultaneous threads.

  • The implementation of this function should be lock-free.

Parameters:
  • hDomainHandle – [in] Handle for the component domain.

  • DomainControl – [in] Overclock Control.

  • pValue – [out] Returns the pending value for a given control. The units and format of the value depend on the control type.

Returns:

zesOverclockSetControlUserValue#

Added in version 1.5

ZE_APIEXPORT ze_result_t ZE_APICALL zesOverclockSetControlUserValue(zes_overclock_handle_t hDomainHandle, zes_overclock_control_t DomainControl, double pValue, zes_pending_action_t *pPendingAction)#

Set the value for a given overclock control.

  • The application may call this function from simultaneous threads.

  • The implementation of this function should be lock-free.

Parameters:
  • hDomainHandle – [in] Handle for the component domain.

  • DomainControl – [in] Domain Control.

  • pValue – [in] The new value of the control. The units and format of the value depend on the control type.

  • pPendingAction – [out] Pending overclock setting.

Returns:

zesOverclockGetControlState#

Added in version 1.5

ZE_APIEXPORT ze_result_t ZE_APICALL zesOverclockGetControlState(zes_overclock_handle_t hDomainHandle, zes_overclock_control_t DomainControl, zes_control_state_t *pControlState, zes_pending_action_t *pPendingAction)#

Determine the state of an overclock control.

  • The application may call this function from simultaneous threads.

  • The implementation of this function should be lock-free.

Parameters:
  • hDomainHandle – [in] Handle for the component domain.

  • DomainControl – [in] Domain Control.

  • pControlState – [out] Current overclock control state.

  • pPendingAction – [out] Pending overclock setting.

Returns:

zesOverclockGetVFPointValues#

Added in version 1.5

ZE_APIEXPORT ze_result_t ZE_APICALL zesOverclockGetVFPointValues(zes_overclock_handle_t hDomainHandle, zes_vf_type_t VFType, zes_vf_array_type_t VFArrayType, uint32_t PointIndex, uint32_t *PointValue)#

Read the frequency or voltage of a V-F point from the default or custom V-F curve.

  • The application may call this function from simultaneous threads.

  • The implementation of this function should be lock-free.

Parameters:
  • hDomainHandle – [in] Handle for the component domain.

  • VFType – [in] Voltage or Frequency point to read.

  • VFArrayType – [in] User,Default or Live VF array to read from

  • PointIndex – [in] Point index - number between (0, max_num_points - 1).

  • PointValue – [out] Returns the frequency in 1kHz units or voltage in millivolt units from the custom V-F curve at the specified zero-based index

Returns:

zesOverclockSetVFPointValues#

Added in version 1.5

ZE_APIEXPORT ze_result_t ZE_APICALL zesOverclockSetVFPointValues(zes_overclock_handle_t hDomainHandle, zes_vf_type_t VFType, uint32_t PointIndex, uint32_t PointValue)#

Write the frequency or voltage of a V-F point to custom V-F curve.

  • The application may call this function from simultaneous threads.

  • The implementation of this function should be lock-free.

Parameters:
  • hDomainHandle – [in] Handle for the component domain.

  • VFType – [in] Voltage or Frequency point to read.

  • PointIndex – [in] Point index - number between (0, max_num_points - 1).

  • PointValue – [in] Writes frequency in 1kHz units or voltage in millivolt units to custom V-F curve at the specified zero-based index

Returns:

Overclock Enums#

zes_overclock_control_t#

Added in version 1.5

enum zes_overclock_control_t#

Overclock controls.

Values:

enumerator ZES_OVERCLOCK_CONTROL_VF#

This control permits setting a custom V-F curve.

enumerator ZES_OVERCLOCK_CONTROL_FREQ_OFFSET#

The V-F curve of the overclock domain can be shifted up or down using this control.

enumerator ZES_OVERCLOCK_CONTROL_VMAX_OFFSET#

This control is used to increase the permitted voltage above the shipped voltage maximum.

enumerator ZES_OVERCLOCK_CONTROL_FREQ#

This control permits direct changes to the operating frequency.

enumerator ZES_OVERCLOCK_CONTROL_VOLT_LIMIT#

This control prevents frequencies that would push the voltage above this value, typically used by V-F scanners.

enumerator ZES_OVERCLOCK_CONTROL_POWER_SUSTAINED_LIMIT#

This control changes the sustained power limit (PL1).

enumerator ZES_OVERCLOCK_CONTROL_POWER_BURST_LIMIT#

This control changes the burst power limit (PL2).

enumerator ZES_OVERCLOCK_CONTROL_POWER_PEAK_LIMIT#

his control changes the peak power limit (PL4).

enumerator ZES_OVERCLOCK_CONTROL_ICCMAX_LIMIT#

This control changes the value of IccMax..

enumerator ZES_OVERCLOCK_CONTROL_TEMP_LIMIT#

This control changes the value of TjMax.

enumerator ZES_OVERCLOCK_CONTROL_ITD_DISABLE#

This control permits disabling the adaptive voltage feature ITD.

enumerator ZES_OVERCLOCK_CONTROL_ACM_DISABLE#

This control permits disabling the adaptive voltage feature ACM.

enumerator ZES_OVERCLOCK_CONTROL_FORCE_UINT32#

Value marking end of ZES_OVERCLOCK_CONTROL_* ENUMs.

zes_overclock_mode_t#

Added in version 1.5

enum zes_overclock_mode_t#

Overclock modes.

Values:

enumerator ZES_OVERCLOCK_MODE_MODE_OFF#

Overclock mode is off.

enumerator ZES_OVERCLOCK_MODE_MODE_STOCK#

Stock (manufacturing settings) are being used.

enumerator ZES_OVERCLOCK_MODE_MODE_ON#

Overclock mode is on.

enumerator ZES_OVERCLOCK_MODE_MODE_UNAVAILABLE#

Overclocking is unavailable at this time since the system is running on battery.

enumerator ZES_OVERCLOCK_MODE_MODE_DISABLED#

Overclock mode is disabled.

enumerator ZES_OVERCLOCK_MODE_FORCE_UINT32#

Value marking end of ZES_OVERCLOCK_MODE_* ENUMs.

zes_control_state_t#

Added in version 1.5

enum zes_control_state_t#

Overclock control states.

Values:

enumerator ZES_CONTROL_STATE_STATE_UNSET#

No overclock control has not been changed by the driver since the last boot/reset.

enumerator ZES_CONTROL_STATE_STATE_ACTIVE#

The overclock control has been set and it is active.

enumerator ZES_CONTROL_STATE_STATE_DISABLED#

The overclock control value has been disabled due to the current power configuration (typically when running on DC).

enumerator ZES_CONTROL_STATE_FORCE_UINT32#

Value marking end of ZES_CONTROL_STATE_* ENUMs.

zes_pending_action_t#

Added in version 1.5

enum zes_pending_action_t#

Overclock pending actions.

Values:

enumerator ZES_PENDING_ACTION_PENDING_NONE#

There no pending actions. .

enumerator ZES_PENDING_ACTION_PENDING_IMMINENT#

The requested change is in progress and should complete soon.

enumerator ZES_PENDING_ACTION_PENDING_COLD_RESET#

The requested change requires a device cold reset (hotplug, system boot).

enumerator ZES_PENDING_ACTION_PENDING_WARM_RESET#

The requested change requires a device warm reset (PCIe FLR).

enumerator ZES_PENDING_ACTION_FORCE_UINT32#

Value marking end of ZES_PENDING_ACTION_* ENUMs.

zes_vf_program_type_t#

Added in version 1.5

enum zes_vf_program_type_t#

Overclock V-F curve programming.

Values:

enumerator ZES_VF_PROGRAM_TYPE_VF_ARBITRARY#

Can program an arbitrary number of V-F points up to the maximum number and each point can have arbitrary voltage and frequency values within the min/max/step limits

enumerator ZES_VF_PROGRAM_TYPE_VF_FREQ_FIXED#

Can only program the voltage for the V-F points that it reads back - the frequency of those points cannot be changed

enumerator ZES_VF_PROGRAM_TYPE_VF_VOLT_FIXED#

Can only program the frequency for the V-F points that is reads back - the voltage of each point cannot be changed.

enumerator ZES_VF_PROGRAM_TYPE_FORCE_UINT32#

Value marking end of ZES_VF_PROGRAM_TYPE_* ENUMs.

zes_vf_type_t#

Added in version 1.5

enum zes_vf_type_t#

VF type.

Values:

enumerator ZES_VF_TYPE_VOLT#

VF Voltage point.

enumerator ZES_VF_TYPE_FREQ#

VF Frequency point.

enumerator ZES_VF_TYPE_FORCE_UINT32#

Value marking end of ZES_VF_TYPE_* ENUMs.

zes_vf_array_type_t#

Added in version 1.5

enum zes_vf_array_type_t#

VF type.

Values:

enumerator ZES_VF_ARRAY_TYPE_USER_VF_ARRAY#

User V-F array.

enumerator ZES_VF_ARRAY_TYPE_DEFAULT_VF_ARRAY#

Default V-F array.

enumerator ZES_VF_ARRAY_TYPE_LIVE_VF_ARRAY#

Live V-F array.

enumerator ZES_VF_ARRAY_TYPE_FORCE_UINT32#

Value marking end of ZES_VF_ARRAY_TYPE_* ENUMs.

Overclock Structures#

zes_overclock_properties_t#

Added in version 1.5

struct zes_overclock_properties_t#

Overclock properties.

  • Information on the overclock domain type and all the controls that are part of the domain.

Public Members

zes_structure_type_t stype#

[in] type of this structure

void *pNext#

[in,out][optional] must be null or a pointer to an extension-specific structure (i.e. contains stype and pNext).

zes_overclock_domain_t domainType#

[out] The hardware block that this overclock domain controls (GPU, VRAM, …)

uint32_t AvailableControls#

[out] Returns the overclock controls that are supported (a bit for each of enum zes_overclock_control_t). If no bits are set, the domain doesn’t support overclocking.

zes_vf_program_type_t VFProgramType#

[out] Type of V-F curve programming that is permitted:.

uint32_t NumberOfVFPoints#

[out] Number of VF points that can be programmed - max_num_points

zes_control_property_t#

Added in version 1.5

struct zes_control_property_t#

Overclock Control properties.

  • Provides all the control capabilities supported by the device for the overclock domain.

Public Members

double MinValue#

[out] This provides information about the limits of the control value so that the driver can calculate the set of valid values.

double MaxValue#

[out] This provides information about the limits of the control value so that the driver can calculate the set of valid values.

double StepValue#

[out] This provides information about the limits of the control value so that the driver can calculate the set of valid values.

double RefValue#

[out] The reference value provides the anchor point, UIs can combine this with the user offset request to show the anticipated improvement.

double DefaultValue#

[out] The shipped out-of-box position of this control. Driver can request this value at any time to return to the out-of-box behavior.

zes_vf_property_t#

Added in version 1.5

struct zes_vf_property_t#

Overclock VF properties.

  • Provides all the VF capabilities supported by the device for the overclock domain.

Public Members

double MinFreq#

[out] Read the minimum frequency that can be be programmed in the custom V-F point..

double MaxFreq#

[out] Read the maximum frequency that can be be programmed in the custom V-F point..

double StepFreq#

[out] Read the frequency step that can be be programmed in the custom V-F point..

double MinVolt#

[out] Read the minimum voltage that can be be programmed in the custom V-F point..

double MaxVolt#

[out] Read the maximum voltage that can be be programmed in the custom V-F point..

double StepVolt#

[out] Read the voltage step that can be be programmed in the custom V-F point.