pub struct Table {
pub current_sclk_range: Range,
pub sclk_offset: Option<i32>,
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.
sclk_offset: Option<i32>
The current core clock offset (RDNA4+)
current_mclk_range: Range
The current memory clock range. Empty on iGPUs.
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.
Note: editing this value directly does not check if it’s in the allowed range!
od_range: OdRange
The allowed ranges for clockspeeds and voltages.
Implementations§
Source§impl Table
impl Table
Sourcepub fn clear(&mut self)
pub fn clear(&mut self)
Clears the table of all “applicable” values.
This removes all values except the allowed range and voltage curve.
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.
Sourcepub fn normalize_vddc_curve(&mut self)
pub fn normalize_vddc_curve(&mut self)
Normalizes the VDDC curve making sure all of the values are within the allowed range. This is needed as some GPUs have default values outside of the allowed range.
Trait Implementations§
Source§impl ClocksTable for Table
impl ClocksTable for Table
Source§fn write_commands<W: Write>(
&self,
writer: &mut W,
previous_table: &ClocksTableGen,
) -> Result<(), Error>
fn write_commands<W: Write>( &self, writer: &mut W, previous_table: &ClocksTableGen, ) -> Result<(), Error>
Source§fn get_max_sclk_range(&self) -> Option<Range>
fn get_max_sclk_range(&self) -> Option<Range>
Source§fn get_min_sclk_range(&self) -> Option<Range>
fn get_min_sclk_range(&self) -> Option<Range>
Source§fn get_max_mclk_range(&self) -> Option<Range>
fn get_max_mclk_range(&self) -> Option<Range>
Source§fn get_min_mclk_range(&self) -> Option<Range>
fn get_min_mclk_range(&self) -> Option<Range>
Source§fn get_max_voltage_range(&self) -> Option<Range>
fn get_max_voltage_range(&self) -> Option<Range>
Source§fn get_min_voltage_range(&self) -> Option<Range>
fn get_min_voltage_range(&self) -> Option<Range>
Source§fn get_current_voltage_range(&self) -> Option<Range>
fn get_current_voltage_range(&self) -> Option<Range>
Source§fn get_current_sclk_range(&self) -> Range
fn get_current_sclk_range(&self) -> Range
Source§fn get_current_mclk_range(&self) -> Range
fn get_current_mclk_range(&self) -> Range
Source§fn set_max_sclk_unchecked(&mut self, clockspeed: i32) -> Result<(), Error>
fn set_max_sclk_unchecked(&mut self, clockspeed: i32) -> Result<(), Error>
Source§fn set_min_sclk_unchecked(&mut self, clockspeed: i32) -> Result<(), Error>
fn set_min_sclk_unchecked(&mut self, clockspeed: i32) -> Result<(), Error>
Source§fn set_max_mclk_unchecked(&mut self, clockspeed: i32) -> Result<(), Error>
fn set_max_mclk_unchecked(&mut self, clockspeed: i32) -> Result<(), Error>
Source§fn set_min_mclk_unchecked(&mut self, clockspeed: i32) -> Result<(), Error>
fn set_min_mclk_unchecked(&mut self, clockspeed: i32) -> Result<(), Error>
Source§fn set_max_voltage_unchecked(&mut self, voltage: i32) -> Result<(), Error>
fn set_max_voltage_unchecked(&mut self, voltage: i32) -> Result<(), Error>
Source§fn set_min_voltage_unchecked(&mut self, voltage: i32) -> Result<(), Error>
fn set_min_voltage_unchecked(&mut self, voltage: i32) -> Result<(), Error>
Source§fn get_max_sclk_voltage(&self) -> Option<i32>
fn get_max_sclk_voltage(&self) -> Option<i32>
Source§fn get_commands(
&self,
previous_table: &ClocksTableGen,
) -> Result<Vec<String>, Error>
fn get_commands( &self, previous_table: &ClocksTableGen, ) -> Result<Vec<String>, Error>
write_commands
should generally be preferred instead.