mirror of
https://github.com/Lurkki14/tuxclocker.git
synced 2025-02-25 18:55:24 -06:00
add voltage-frequency curve setting for RDNA 3
This commit is contained in:
parent
a0e7477ca0
commit
8bfaf3e0d5
@ -384,9 +384,12 @@ std::vector<TreeNode<DeviceNode>> getVoltFreqFreq(AMDGPUData data) {
|
|||||||
Assignable a{setWithPerfLevel, *range, getFunc, _("MHz")};
|
Assignable a{setWithPerfLevel, *range, getFunc, _("MHz")};
|
||||||
pointId++;
|
pointId++;
|
||||||
|
|
||||||
|
// The rest of this code should work the same on Navi and RDNA 3
|
||||||
|
auto name = (*data.ppTableType == Navi) ? _("Core Clock") : _("Core Clock Offset");
|
||||||
|
|
||||||
if (getFunc().has_value())
|
if (getFunc().has_value())
|
||||||
return {DeviceNode{
|
return {DeviceNode{
|
||||||
.name = _("Core Clock"),
|
.name = name,
|
||||||
.interface = a,
|
.interface = a,
|
||||||
.hash = md5(data.pciId + "VFClock" + std::to_string(id)),
|
.hash = md5(data.pciId + "VFClock" + std::to_string(id)),
|
||||||
}};
|
}};
|
||||||
@ -449,9 +452,12 @@ std::vector<TreeNode<DeviceNode>> getVoltFreqVolt(AMDGPUData data) {
|
|||||||
Assignable a{setWithPerfLevel, *range, getFunc, _("mV")};
|
Assignable a{setWithPerfLevel, *range, getFunc, _("mV")};
|
||||||
pointId++;
|
pointId++;
|
||||||
|
|
||||||
|
// The rest of this code should work the same on Navi and RDNA 3
|
||||||
|
auto name = (*data.ppTableType == Navi) ? _("Core Voltage") : _("Core Voltage Offset");
|
||||||
|
|
||||||
if (getFunc().has_value())
|
if (getFunc().has_value())
|
||||||
return {DeviceNode{
|
return {DeviceNode{
|
||||||
.name = _("Core Voltage"),
|
.name = name,
|
||||||
.interface = a,
|
.interface = a,
|
||||||
.hash = md5(data.pciId + "VFVoltage" + std::to_string(id)),
|
.hash = md5(data.pciId + "VFVoltage" + std::to_string(id)),
|
||||||
}};
|
}};
|
||||||
@ -461,7 +467,8 @@ std::vector<TreeNode<DeviceNode>> getVoltFreqVolt(AMDGPUData data) {
|
|||||||
std::vector<TreeNode<DeviceNode>> getVoltFreqNodes(AMDGPUData data) {
|
std::vector<TreeNode<DeviceNode>> getVoltFreqNodes(AMDGPUData data) {
|
||||||
// Root item for voltage and frequency of a point
|
// Root item for voltage and frequency of a point
|
||||||
std::vector<TreeNode<DeviceNode>> retval;
|
std::vector<TreeNode<DeviceNode>> retval;
|
||||||
if (!data.ppTableType.has_value() || *data.ppTableType != Navi)
|
if (!data.ppTableType.has_value() || *data.ppTableType != Navi ||
|
||||||
|
*data.ppTableType != SMU13)
|
||||||
return {};
|
return {};
|
||||||
|
|
||||||
auto path = data.hwmonPath + "/pp_od_clk_voltage";
|
auto path = data.hwmonPath + "/pp_od_clk_voltage";
|
||||||
@ -543,7 +550,8 @@ std::vector<TreeNode<DeviceNode>> getForcePerfLevel(AMDGPUData data) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::vector<TreeNode<DeviceNode>> getVoltFreqRoot(AMDGPUData data) {
|
std::vector<TreeNode<DeviceNode>> getVoltFreqRoot(AMDGPUData data) {
|
||||||
if (data.ppTableType.has_value() && *data.ppTableType == Navi)
|
if (data.ppTableType.has_value() &&
|
||||||
|
(*data.ppTableType == Navi || *data.ppTableType == SMU13))
|
||||||
return {DeviceNode{
|
return {DeviceNode{
|
||||||
.name = _("Voltage-Frequency Curve"),
|
.name = _("Voltage-Frequency Curve"),
|
||||||
.interface = std::nullopt,
|
.interface = std::nullopt,
|
||||||
|
@ -118,6 +118,10 @@ std::optional<PPTableType> fromPPTableContents(const std::string &contents) {
|
|||||||
// Navi (NV1X?) has three frequency-voltage points
|
// Navi (NV1X?) has three frequency-voltage points
|
||||||
if (first.has_value() && !fourth.has_value())
|
if (first.has_value() && !fourth.has_value())
|
||||||
return Navi;
|
return Navi;
|
||||||
|
|
||||||
|
// RDNA 3 (SMU13) has six points using offsets
|
||||||
|
if (first.has_value() && fourth.has_value())
|
||||||
|
return SMU13;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return std::nullopt;
|
return std::nullopt;
|
||||||
|
@ -12,7 +12,8 @@ namespace fs = std::filesystem;
|
|||||||
|
|
||||||
enum PPTableType {
|
enum PPTableType {
|
||||||
Vega10,
|
Vega10,
|
||||||
Navi
|
Navi,
|
||||||
|
SMU13 // RDNA 3
|
||||||
};
|
};
|
||||||
|
|
||||||
struct VFPoint {
|
struct VFPoint {
|
||||||
|
Loading…
Reference in New Issue
Block a user