pub struct Table {
    pub current_sclk_range: Range,
    pub current_mclk_range: Range,
    pub vddc_curve: Vec<ClocksLevel>,
    pub voltage_offset: Option<i32>,
    pub od_range: OdRange,
}
Expand description

Vega20 clocks table.

Fields§

§current_sclk_range: Range

The current core clock range.

§current_mclk_range: Range

The current memory clock range.

§vddc_curve: Vec<ClocksLevel>

The current voltage curve. May be empty if the GPU does not support it.

§voltage_offset: Option<i32>

Voltage offset(in mV) applied on target voltage calculation. This is available for Sienna Cichlid, Navy Flounder and Dimgrey Cavefish.

§od_range: OdRange

The allowed ranges for clockspeeds and voltages.

Implementations§

source§

impl Table

source

pub fn clear(&mut self)

Clears the table of all “applicable” values.

This removes all values except the allowed range. You can use it to avoid overwriting the table with already present values, as it can be problematic on some cards. It is intended to be used before calling set_* functions and generating commands/writing the table.

Trait Implementations§

source§

impl ClocksTable for Table

source§

fn write_commands<W: Write>(&self, writer: &mut W) -> Result<(), Error>

Writes commands needed to apply the state that is in the table struct on the GPU.
source§

fn get_max_sclk_range(&self) -> Option<Range>

Gets the core clock range usable at the highest power level.
source§

fn get_min_sclk_range(&self) -> Option<Range>

Gets the core clock range usable at the lowest power level.
source§

fn get_max_mclk_range(&self) -> Option<Range>

Gets the memory clock range usable at the highest power level.
source§

fn get_min_mclk_range(&self) -> Option<Range>

Gets the memory clock range usable at the lowest power level.
source§

fn get_max_voltage_range(&self) -> Option<Range>

Gets the voltage range usable at the highest power level.
source§

fn get_min_voltage_range(&self) -> Option<Range>

Gets the voltage range usable at the lowest power level.
source§

fn get_current_voltage_range(&self) -> Option<Range>

Gets the current voltage range.
source§

fn get_current_sclk_range(&self) -> Range

Gets the current range of values for core clocks.
source§

fn get_current_mclk_range(&self) -> Range

Gets the current range of values for memory clocks.
source§

fn set_max_sclk_unchecked(&mut self, clockspeed: i32) -> Result<(), Error>

Sets the maximum core clock (without checking if it’s in the allowed range).
source§

fn set_min_sclk_unchecked(&mut self, clockspeed: i32) -> Result<(), Error>

Sets the minimum core clock (without checking if it’s in the allowed range).
source§

fn set_max_mclk_unchecked(&mut self, clockspeed: i32) -> Result<(), Error>

Sets the maximum memory clock (without checking if it’s in the allowed range).
source§

fn set_min_mclk_unchecked(&mut self, clockspeed: i32) -> Result<(), Error>

Sets the minimum memory clock (without checking if it’s in the allowed range).
source§

fn set_max_voltage_unchecked(&mut self, voltage: i32) -> Result<(), Error>

Sets the voltage to be used at the maximum clockspeed (without checking if it’s in the allowed range).
source§

fn set_min_voltage_unchecked(&mut self, voltage: i32) -> Result<(), Error>

Sets the voltage to be used at the minimum clockspeed (without checking if it’s in the allowed range).
source§

fn get_max_sclk_voltage(&self) -> Option<i32>

Gets the current maximum voltage (used on maximum clockspeed).
source§

fn get_commands(&self) -> Result<Vec<String>, Error>

Gets the list of commands that will apply the current state of the clocks table. write_commands should generally be preferred instead.
source§

fn get_max_sclk(&self) -> Option<i32>

Gets the current maximum core clock.
source§

fn set_max_sclk(&mut self, clockspeed: i32) -> Result<(), Error>

Sets the maximum core clock.
source§

fn set_min_sclk(&mut self, clockspeed: i32) -> Result<(), Error>

Sets the minimum core clock.
source§

fn get_max_mclk(&self) -> Option<i32>

Gets the current maximum memory clock.
source§

fn set_max_mclk(&mut self, clockspeed: i32) -> Result<(), Error>

Sets the maximum memory clock.
source§

fn set_min_mclk(&mut self, clockspeed: i32) -> Result<(), Error>

Sets the minimum memory clock.
source§

fn set_max_voltage(&mut self, voltage: i32) -> Result<(), Error>

Sets the voltage to be used at the maximum clockspeed.
source§

fn set_min_voltage(&mut self, voltage: i32) -> Result<(), Error>

Sets the voltage to be used at the minimum clockspeed.
source§

impl Clone for Table

source§

fn clone(&self) -> Table

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Table

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<Table> for ClocksTableGen

source§

fn from(v: Table) -> ClocksTableGen

Converts to this type from the input type.
source§

impl FromStr for Table

§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Error>

Parses a string s to return a value of this type. Read more
source§

impl TryInto<Table> for ClocksTableGen

§

type Error = &'static str

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<Table, <Self as TryInto<Table>>::Error>

Performs the conversion.

Auto Trait Implementations§

§

impl RefUnwindSafe for Table

§

impl Send for Table

§

impl Sync for Table

§

impl Unpin for Table

§

impl UnwindSafe for Table

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.