sibradzic / upp

A tool for parsing, dumping and modifying data in Radeon PowerPlay tables
GNU General Public License v3.0
154 stars 24 forks source link

Importing "Soft PowerPlay" table from Windows registry - generates an error #29

Closed blackmennewstyle closed 2 years ago

blackmennewstyle commented 2 years ago

Hi,

I'm trying to import "Soft PowerPlay" table from Windows registry with the following command:

 upp -f /media/ceedii/7A0CAF530CAF0969/Windows/System32/config/SYSTEM dump > /home/ceedii/upp/powercolor_fighter_rx_6700_xt_windows.pp_table
Traceback (most recent call last):
  File "/usr/local/bin/upp", line 8, in <module>
    sys.exit(main())
  File "/home/ceedii/.local/lib/python3.8/site-packages/upp/upp.py", line 373, in main
    cli(obj={})()
  File "/usr/lib/python3/dist-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/usr/lib/python3/dist-packages/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/lib/python3/dist-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/lib/python3/dist-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/click/decorators.py", line 17, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/home/ceedii/.local/lib/python3.8/site-packages/upp/upp.py", line 194, in dump
    decode.dump_pp_table(pp_file, rawdump=raw, debug=debug)
  File "/home/ceedii/.local/lib/python3.8/site-packages/upp/decode.py", line 664, in dump_pp_table
    pp_bytes = _read_binary_file(pp_bin_file)
  File "/home/ceedii/.local/lib/python3.8/site-packages/upp/decode.py", line 42, in _read_binary_file
    f = open(filename, 'rb')
TypeError: expected str, bytes or os.PathLike object, not NoneType

And the file powercolor_fighter_rx_6700_xt_windows.pp_table, contains the following error:

ERROR: Can not get Soft PowerPlay data from /media/ceedii/7A0CAF530CAF0969/Windows/System32/config/SYSTEM
  key:value > HKLM\SYSTEM\ControlSet001\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0000:PP_PhmSoftPowerPlayTable

Registry value not found: ROOT\ControlSet001\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0000 : PP_PhmSoftPowerPlayTable
sibradzic commented 2 years ago

Hmmm, obviously the registry key is missing. Check on the Windows side if you actually have the registry structure created in the first place. I don't think the structure is actually there unless explicitly created by the likes of MorePowerTool / SoftPowerPlayTables. Other possibility I could think of is that the structure moved under some other UUID or somewhere else in the registry three. Try searching the registry for SoftPowerPlayTable.

blackmennewstyle commented 2 years ago

Hmmm, obviously the registry key is missing. Check on the Windows side if you actually have the registry structure created in the first place. I don't think the structure is actually there unless explicitly created by the likes of MorePowerTool / SoftPowerPlayTables. Other possibility I could think of is that the structure moved under some other UUID or somewhere else in the registry three. Try searching the registry for SoftPowerPlayTable.

Oh, i actually used the MorePowerTool software from IgorLabs in order to modify some power values on my GPU. So the problem is created by using that piece of software?

sibradzic commented 2 years ago

No, just search your registry for SoftPowerPlayTable, it is likely that the registry path / UIID had changed.

blackmennewstyle commented 2 years ago

I found it here: registry

sibradzic commented 2 years ago

Oh, you have multiple GPUs in your system, or perhaps an iGPU + dGPU?

Your registry PowerPlay data is under HKLM\SYSTEM\ControlSet001\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0001, but upp expects it to be at HKLM\SYSTEM\ControlSet001\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0000...

You can try the following experiment; locate upp.py in your system, and change https://github.com/sibradzic/upp/blob/master/src/upp/upp.py#L12 into REG_CTRL_CLASS = 'Control\\Class\\{4d36e968-e325-11ce-bfc1-08002be10318}\\0001'. Let me know it that worked for you, so I can make a proper change so this REG_CTRL_CLASS is properly parametrized from an env var or something.

Also, can you please export HKLM\SYSTEM\ControlSet001\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318} and share it? With this I could perhaps implement iteration through the whole registry class, so upp could search for all the instances of the PP_PhmSoftPowerPlayTable where there are multiple cards in the system, instead of failing miserably...

blackmennewstyle commented 2 years ago

Oh, yes i'm using a Ryzen Athlon 3000G which indeed an APU. I did the suggested modification and it worked <3

Successfully loaded Soft PowerPlay data from /media/ceedii/7A0CAF530CAF0969/Windows/System32/config/SYSTEM
  key:value > HKLM\SYSTEM\ControlSet001\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0001:PP_PhmSoftPowerPlayTable

header:
  structuresize: 2470
  format_revision: 16
  content_revision: 0
table_revision: 2
table_size: 802
golden_pp_id: 2511
golden_revision: 16964
format_id: 129
platform_caps: 8
thermal_controller_type: 28
small_power_limit1: 0
small_power_limit2: 0
boost_power_limit: 0
software_shutdown_temp: 118
reserve:
  reserve 0: 0
  reserve 1: 0
  reserve 2: 0
  reserve 3: 0
  reserve 4: 0
  reserve 5: 0
  reserve 6: 1
  reserve 7: 0
power_saving_clock:
  revision: 1
  reserve:
    reserve 0: 0
    reserve 1: 0
    reserve 2: 0
  count: 13
  max:
    max 0: 2725
    max 1: 1200
    max 2: 1000
    max 3: 1940
    max 4: 1225
    max 5: 1400
    max 6: 1225
    max 7: 1400
    max 8: 1200
    max 9: 1217
    max 10: 1217
    max 11: 810
    max 12: 1217
    max 13: 0
    max 14: 0
    max 15: 0
  min:
    min 0: 500
    min 1: 480
    min 2: 97
    min 3: 500
    min 4: 317
    min 5: 363
    min 6: 317
    min 7: 363
    min 8: 418
    min 9: 487
    min 10: 487
    min 11: 300
    min 12: 487
    min 13: 0
    min 14: 0
    min 15: 0
overdrive_table:
  revision: 129
  reserve:
    reserve 0: 0
    reserve 1: 0
    reserve 2: 0
  feature_count: 16
  setting_count: 30
  cap:
    cap 0: 1
    cap 1: 1
    cap 2: 1
    cap 3: 1
    cap 4: 1
    cap 5: 1
    cap 6: 1
    cap 7: 1
    cap 8: 1
    cap 9: 1
    cap 10: 1
    cap 11: 1
    cap 12: 1
    cap 13: 1
    cap 14: 1
    cap 15: 1
    cap 16: 0
    cap 17: 0
    cap 18: 0
    cap 19: 0
    cap 20: 0
    cap 21: 0
    cap 22: 0
    cap 23: 0
    cap 24: 0
    cap 25: 0
    cap 26: 0
    cap 27: 0
    cap 28: 0
    cap 29: 0
    cap 30: 0
    cap 31: 0
  max:
    max 0: 2800
    max 1: 2800
    max 2: 0
    max 3: 0
    max 4: 0
    max 5: 2800
    max 6: 1075
    max 7: 1075
    max 8: 15
    max 9: 3600
    max 10: 3600
    max 11: 100
    max 12: 110
    max 13: 1
    max 14: 1
    max 15: 1
    max 16: 1
    max 17: 1
    max 18: 100
    max 19: 100
    max 20: 100
    max 21: 100
    max 22: 100
    max 23: 100
    max 24: 100
    max 25: 100
    max 26: 100
    max 27: 100
    max 28: 0
    max 29: 0
    max 30: 0
    max 31: 0
    max 32: 0
    max 33: 0
    max 34: 0
    max 35: 0
    max 36: 0
    max 37: 0
    max 38: 0
    max 39: 0
    max 40: 0
    max 41: 0
    max 42: 0
    max 43: 0
    max 44: 0
    max 45: 0
    max 46: 0
    max 47: 0
    max 48: 0
    max 49: 0
    max 50: 0
    max 51: 0
    max 52: 0
    max 53: 0
    max 54: 0
    max 55: 0
    max 56: 0
    max 57: 0
    max 58: 0
    max 59: 0
    max 60: 0
    max 61: 0
    max 62: 0
    max 63: 0
  min:
    min 0: 500
    min 1: 500
    min 2: 0
    min 3: 0
    min 4: 0
    min 5: 500
    min 6: 674
    min 7: 674
    min 8: 50
    min 9: 250
    min 10: 1000
    min 11: 25
    min 12: 50
    min 13: 0
    min 14: 0
    min 15: 0
    min 16: 0
    min 17: 0
    min 18: 25
    min 19: 10
    min 20: 25
    min 21: 10
    min 22: 25
    min 23: 10
    min 24: 25
    min 25: 10
    min 26: 25
    min 27: 10
    min 28: 0
    min 29: 0
    min 30: 0
    min 31: 0
    min 32: 0
    min 33: 0
    min 34: 0
    min 35: 0
    min 36: 0
    min 37: 0
    min 38: 0
    min 39: 0
    min 40: 0
    min 41: 0
    min 42: 0
    min 43: 0
    min 44: 0
    min 45: 0
    min 46: 0
    min 47: 0
    min 48: 0
    min 49: 0
    min 50: 0
    min 51: 0
    min 52: 0
    min 53: 0
    min 54: 0
    min 55: 0
    min 56: 0
    min 57: 0
    min 58: 0
    min 59: 0
    min 60: 0
    min 61: 0
    min 62: 0
    min 63: 0
  pm_setting:
    pm_setting 0: 6
    pm_setting 1: 0
    pm_setting 2: 6
    pm_setting 3: 6
    pm_setting 4: 95
    pm_setting 5: 95
    pm_setting 6: 95
    pm_setting 7: 95
    pm_setting 8: 2200
    pm_setting 9: 2200
    pm_setting 10: 1750
    pm_setting 11: 1700
    pm_setting 12: 2550
    pm_setting 13: 2550
    pm_setting 14: 2250
    pm_setting 15: 2550
    pm_setting 16: 0
    pm_setting 17: 0
    pm_setting 18: 0
    pm_setting 19: 0
    pm_setting 20: 0
    pm_setting 21: 0
    pm_setting 22: 0
    pm_setting 23: 0
    pm_setting 24: 0
    pm_setting 25: 0
    pm_setting 26: 0
    pm_setting 27: 0
    pm_setting 28: 0
    pm_setting 29: 0
    pm_setting 30: 0
    pm_setting 31: 0
smc_pptable:
  Version: 6
  FeaturesToRun:
    FeaturesToRun 0: 2743074303
    FeaturesToRun 1: 14179
  SocketPowerLimitAc:
    SocketPowerLimitAc 0: 186
    SocketPowerLimitAc 1: 0
    SocketPowerLimitAc 2: 0
    SocketPowerLimitAc 3: 0
  SocketPowerLimitAcTau:
    SocketPowerLimitAcTau 0: 0
    SocketPowerLimitAcTau 1: 0
    SocketPowerLimitAcTau 2: 0
    SocketPowerLimitAcTau 3: 0
  SocketPowerLimitDc:
    SocketPowerLimitDc 0: 186
    SocketPowerLimitDc 1: 0
    SocketPowerLimitDc 2: 0
    SocketPowerLimitDc 3: 0
  SocketPowerLimitDcTau:
    SocketPowerLimitDcTau 0: 0
    SocketPowerLimitDcTau 1: 0
    SocketPowerLimitDcTau 2: 0
    SocketPowerLimitDcTau 3: 0
  TdcLimit:
    TdcLimit 0: 157
    TdcLimit 1: 35
  TdcLimitTau:
    TdcLimitTau 0: 0
    TdcLimitTau 1: 0
  TemperatureLimit:
    TemperatureLimit 0: 110
    TemperatureLimit 1: 110
    TemperatureLimit 2: 105
    TemperatureLimit 3: 115
    TemperatureLimit 4: 115
    TemperatureLimit 5: 115
    TemperatureLimit 6: 115
    TemperatureLimit 7: 0
    TemperatureLimit 8: 0
    TemperatureLimit 9: 0
  FitLimit: 0
  TotalPowerConfig: 1
  TotalPowerPadding:
    TotalPowerPadding 0: 0
    TotalPowerPadding 1: 0
    TotalPowerPadding 2: 0
  ApccPlusResidencyLimit: 0
  SmnclkDpmFreq:
    SmnclkDpmFreq 0: 0
    SmnclkDpmFreq 1: 0
  SmnclkDpmVoltage:
    SmnclkDpmVoltage 0: 0
    SmnclkDpmVoltage 1: 0
  PaddingAPCC: 0
  PerPartDroopVsetGfxDfll:
    PerPartDroopVsetGfxDfll 0: 3000
    PerPartDroopVsetGfxDfll 1: 3800
    PerPartDroopVsetGfxDfll 2: 4400
    PerPartDroopVsetGfxDfll 3: 4600
    PerPartDroopVsetGfxDfll 4: 4800
  PaddingPerPartDroop: 0
  ThrottlerControlMask: 276734
  FwDStateMask: 12283
  UlvVoltageOffsetSoc: 100
  UlvVoltageOffsetGfx: 100
  MinVoltageUlvGfx: 3375
  MinVoltageUlvSoc: 3200
  SocLIVmin: 3150
  PaddingLIVmin: 150
  GceaLinkMgrIdleThreshold: 0
  paddingRlcUlvParams:
    paddingRlcUlvParams 0: 0
    paddingRlcUlvParams 1: 0
    paddingRlcUlvParams 2: 0
  MinVoltageGfx: 2600
  MinVoltageSoc: 2600
  MaxVoltageGfx: 4800
  MaxVoltageSoc: 4600
  LoadLineResistanceGfx: 179
  LoadLineResistanceSoc: 256
  VDDGFX_TVmin: 0
  VDDSOC_TVmin: 0
  VDDGFX_Vmin_HiTemp: 0
  VDDGFX_Vmin_LoTemp: 0
  VDDSOC_Vmin_HiTemp: 0
  VDDSOC_Vmin_LoTemp: 0
  VDDGFX_TVminHystersis: 0
  VDDSOC_TVminHystersis: 0
  DpmDescriptor:
    DpmDescriptor 0:
      VoltageMode: 0
      SnapToDiscrete: 0
      NumDiscreteLevels: 2
      Padding: 0
      ConversionToAvfsClk:
        m: 1
        b: 0
      SsCurve:
        a: 0.2257
        b:-0.4981
        c: 0.9642
      SsFmin: 1103
      Padding16: 0
    DpmDescriptor 1:
      VoltageMode: 0
      SnapToDiscrete: 0
      NumDiscreteLevels: 2
      Padding: 0
      ConversionToAvfsClk:
        m: 1.047
        b: 0.232
      SsCurve:
        a: 0.3787
        b:-0.24
        c: 0.7364
      SsFmin: 317
      Padding16: 0
    DpmDescriptor 2:
      VoltageMode: 0
      SnapToDiscrete: 1
      NumDiscreteLevels: 4
      Padding: 0
      ConversionToAvfsClk:
        m: 1.019
        b: 0.299
      SsCurve:
        a: 0.6633
        b:-0.6631
        c: 0.8707
      SsFmin: 499
      Padding16: 0
    DpmDescriptor 3:
      VoltageMode: 0
      SnapToDiscrete: 0
      NumDiscreteLevels: 2
      Padding: 0
      ConversionToAvfsClk:
        m: 1
        b: 0
      SsCurve:
        a: 0.3496
        b:-0.4421
        c: 0.8995
      SsFmin: 632
      Padding16: 0
    DpmDescriptor 4:
      VoltageMode: 0
      SnapToDiscrete: 0
      NumDiscreteLevels: 2
      Padding: 0
      ConversionToAvfsClk:
        m: 1.387
        b:-0.08
      SsCurve:
        a: 0.4602
        b:-0.4379
        c: 0.7953
      SsFmin: 475
      Padding16: 0
    DpmDescriptor 5:
      VoltageMode: 0
      SnapToDiscrete: 0
      NumDiscreteLevels: 2
      Padding: 0
      ConversionToAvfsClk:
        m: 1.017
        b: 0.199
      SsCurve:
        a: 0.3043
        b:-0.3008
        c: 0.7684
      SsFmin: 495
      Padding16: 0
    DpmDescriptor 6:
      VoltageMode: 0
      SnapToDiscrete: 0
      NumDiscreteLevels: 2
      Padding: 0
      ConversionToAvfsClk:
        m: 1.387
        b:-0.08
      SsCurve:
        a: 0.4602
        b:-0.4379
        c: 0.7953
      SsFmin: 475
      Padding16: 0
    DpmDescriptor 7:
      VoltageMode: 0
      SnapToDiscrete: 0
      NumDiscreteLevels: 2
      Padding: 0
      ConversionToAvfsClk:
        m: 1.017
        b: 0.199
      SsCurve:
        a: 0.3043
        b:-0.3008
        c: 0.7684
      SsFmin: 495
      Padding16: 0
    DpmDescriptor 8:
      VoltageMode: 0
      SnapToDiscrete: 0
      NumDiscreteLevels: 2
      Padding: 0
      ConversionToAvfsClk:
        m: 1.117
        b: 0.191
      SsCurve:
        a: 0.3466
        b:-0.3128
        c: 0.7482
      SsFmin: 452
      Padding16: 0
    DpmDescriptor 9:
      VoltageMode: 0
      SnapToDiscrete: 0
      NumDiscreteLevels: 2
      Padding: 0
      ConversionToAvfsClk:
        m: 0.739
        b: 0.431
      SsCurve:
        a: 0.1697
        b:-0.0449
        c: 0.6096
      SsFmin: 133
      Padding16: 0
    DpmDescriptor 10:
      VoltageMode: 0
      SnapToDiscrete: 0
      NumDiscreteLevels: 2
      Padding: 0
      ConversionToAvfsClk:
        m: 0.739
        b: 0.431
      SsCurve:
        a: 0.1697
        b:-0.0449
        c: 0.6096
      SsFmin: 133
      Padding16: 0
    DpmDescriptor 11:
      VoltageMode: 0
      SnapToDiscrete: 0
      NumDiscreteLevels: 2
      Padding: 0
      ConversionToAvfsClk:
        m: 0.5778
        b: 0.66648
      SsCurve:
        a: 0
        b: 0.1624
        c: 0.5507
      SsFmin: 0
      Padding16: 0
    DpmDescriptor 12:
      VoltageMode: 0
      SnapToDiscrete: 0
      NumDiscreteLevels: 2
      Padding: 0
      ConversionToAvfsClk:
        m: 0.739
        b: 0.431
      SsCurve:
        a: 0.1697
        b:-0.0449
        c: 0.6096
      SsFmin: 133
      Padding16: 0
  FreqTableGfx:
    FreqTableGfx 0: 500
    FreqTableGfx 1: 2725
    FreqTableGfx 2: 0
    FreqTableGfx 3: 0
    FreqTableGfx 4: 0
    FreqTableGfx 5: 0
    FreqTableGfx 6: 0
    FreqTableGfx 7: 0
    FreqTableGfx 8: 0
    FreqTableGfx 9: 0
    FreqTableGfx 10: 0
    FreqTableGfx 11: 0
    FreqTableGfx 12: 0
    FreqTableGfx 13: 0
    FreqTableGfx 14: 0
    FreqTableGfx 15: 0
  FreqTableVclk:
    FreqTableVclk 0: 363
    FreqTableVclk 1: 1400
    FreqTableVclk 2: 0
    FreqTableVclk 3: 0
    FreqTableVclk 4: 0
    FreqTableVclk 5: 0
    FreqTableVclk 6: 0
    FreqTableVclk 7: 0
  FreqTableDclk:
    FreqTableDclk 0: 317
    FreqTableDclk 1: 1225
    FreqTableDclk 2: 0
    FreqTableDclk 3: 0
    FreqTableDclk 4: 0
    FreqTableDclk 5: 0
    FreqTableDclk 6: 0
    FreqTableDclk 7: 0
  FreqTableSocclk:
    FreqTableSocclk 0: 480
    FreqTableSocclk 1: 1200
    FreqTableSocclk 2: 0
    FreqTableSocclk 3: 0
    FreqTableSocclk 4: 0
    FreqTableSocclk 5: 0
    FreqTableSocclk 6: 0
    FreqTableSocclk 7: 0
  FreqTableUclk:
    FreqTableUclk 0: 97
    FreqTableUclk 1: 457
    FreqTableUclk 2: 676
    FreqTableUclk 3: 1000
  FreqTableDcefclk:
    FreqTableDcefclk 0: 418
    FreqTableDcefclk 1: 1200
    FreqTableDcefclk 2: 0
    FreqTableDcefclk 3: 0
    FreqTableDcefclk 4: 0
    FreqTableDcefclk 5: 0
    FreqTableDcefclk 6: 0
    FreqTableDcefclk 7: 0
  FreqTableDispclk:
    FreqTableDispclk 0: 487
    FreqTableDispclk 1: 1217
    FreqTableDispclk 2: 0
    FreqTableDispclk 3: 0
    FreqTableDispclk 4: 0
    FreqTableDispclk 5: 0
    FreqTableDispclk 6: 0
    FreqTableDispclk 7: 0
  FreqTablePixclk:
    FreqTablePixclk 0: 487
    FreqTablePixclk 1: 1217
    FreqTablePixclk 2: 0
    FreqTablePixclk 3: 0
    FreqTablePixclk 4: 0
    FreqTablePixclk 5: 0
    FreqTablePixclk 6: 0
    FreqTablePixclk 7: 0
  FreqTablePhyclk:
    FreqTablePhyclk 0: 300
    FreqTablePhyclk 1: 810
    FreqTablePhyclk 2: 0
    FreqTablePhyclk 3: 0
    FreqTablePhyclk 4: 0
    FreqTablePhyclk 5: 0
    FreqTablePhyclk 6: 0
    FreqTablePhyclk 7: 0
  FreqTableDtbclk:
    FreqTableDtbclk 0: 487
    FreqTableDtbclk 1: 1217
    FreqTableDtbclk 2: 0
    FreqTableDtbclk 3: 0
    FreqTableDtbclk 4: 0
    FreqTableDtbclk 5: 0
    FreqTableDtbclk 6: 0
    FreqTableDtbclk 7: 0
  FreqTableFclk:
    FreqTableFclk 0: 500
    FreqTableFclk 1: 1940
    FreqTableFclk 2: 0
    FreqTableFclk 3: 0
    FreqTableFclk 4: 0
    FreqTableFclk 5: 0
    FreqTableFclk 6: 0
    FreqTableFclk 7: 0
  Paddingclks: 0
  PerPartDroopModelGfxDfll:
    PerPartDroopModelGfxDfll 0:
      a: 0.85015
      b: 0.0839
      c: 0.025
    PerPartDroopModelGfxDfll 1:
      a: 0.85015
      b: 0.0839
      c: 0.025
    PerPartDroopModelGfxDfll 2:
      a: 0.84218
      b: 0.12508
      c:-0.03834
    PerPartDroopModelGfxDfll 3:
      a: 0.77582
      b: 0.12463
      c: 0.05
    PerPartDroopModelGfxDfll 4:
      a: 0.74615
      b: 0.14682
      c: 0.05
  DcModeMaxFreq:
    DcModeMaxFreq 0: 2725
    DcModeMaxFreq 1: 1200
    DcModeMaxFreq 2: 1000
    DcModeMaxFreq 3: 1940
    DcModeMaxFreq 4: 1225
    DcModeMaxFreq 5: 1400
    DcModeMaxFreq 6: 1225
    DcModeMaxFreq 7: 1400
    DcModeMaxFreq 8: 1200
    DcModeMaxFreq 9: 1217
    DcModeMaxFreq 10: 1217
    DcModeMaxFreq 11: 810
    DcModeMaxFreq 12: 1217
  FreqTableUclkDiv:
    FreqTableUclkDiv 0: 0
    FreqTableUclkDiv 1: 2
    FreqTableUclkDiv 2: 3
    FreqTableUclkDiv 3: 3
  FclkBoostFreq: 1800
  FclkParamPadding: 0
  Mp0clkFreq:
    Mp0clkFreq 0: 332
    Mp0clkFreq 1: 506
  Mp0DpmVoltage:
    Mp0DpmVoltage 0: 2800
    Mp0DpmVoltage 1: 3200
  MemVddciVoltage:
    MemVddciVoltage 0: 2700
    MemVddciVoltage 1: 3200
    MemVddciVoltage 2: 3400
    MemVddciVoltage 3: 3400
  MemMvddVoltage:
    MemMvddVoltage 0: 5000
    MemMvddVoltage 1: 5400
    MemMvddVoltage 2: 5400
    MemMvddVoltage 3: 5400
  GfxclkFgfxoffEntry: 500
  GfxclkFinit: 800
  GfxclkFidle: 500
  GfxclkSource: 1
  GfxclkPadding: 0
  GfxGpoSubFeatureMask: 1
  GfxGpoEnabledWorkPolicyMask: 2
  GfxGpoDisabledWorkPolicyMask: 93
  GfxGpoPadding:
    GfxGpoPadding 0: 0
  GfxGpoVotingAllow: 1
  GfxGpoPadding32:
    GfxGpoPadding32 0: 0
    GfxGpoPadding32 1: 0
    GfxGpoPadding32 2: 0
    GfxGpoPadding32 3: 0
  GfxDcsFopt: 0
  GfxDcsFclkFopt: 0
  GfxDcsUclkFopt: 0
  DcsGfxOffVoltage: 0
  DcsMinGfxOffTime: 6
  DcsMaxGfxOffTime: 100
  DcsMinCreditAccum: 0
  DcsExitHysteresis: 40
  DcsTimeout: 100
  DcsParamPadding:
    DcsParamPadding 0: 0
    DcsParamPadding 1: 0
    DcsParamPadding 2: 0
    DcsParamPadding 3: 0
    DcsParamPadding 4: 0
  FlopsPerByteTable:
    FlopsPerByteTable 0: 3875
    FlopsPerByteTable 1: 3834
    FlopsPerByteTable 2: 3791
    FlopsPerByteTable 3: 3750
    FlopsPerByteTable 4: 3709
    FlopsPerByteTable 5: 3665
    FlopsPerByteTable 6: 3624
    FlopsPerByteTable 7: 3584
    FlopsPerByteTable 8: 3540
    FlopsPerByteTable 9: 3499
    FlopsPerByteTable 10: 3458
    FlopsPerByteTable 11: 3415
    FlopsPerByteTable 12: 3299
    FlopsPerByteTable 13: 3184
    FlopsPerByteTable 14: 3069
    FlopsPerByteTable 15: 2954
  LowestUclkReservedForUlv: 0
  PaddingMem:
    PaddingMem 0: 0
    PaddingMem 1: 0
    PaddingMem 2: 0
  UclkDpmPstates:
    UclkDpmPstates 0: 3
    UclkDpmPstates 1: 2
    UclkDpmPstates 2: 1
    UclkDpmPstates 3: 0
  UclkDpmSrcFreqRange:
    Fmin: 0
    Fmax: 0
  UclkDpmTargFreqRange:
    Fmin: 0
    Fmax: 0
  UclkDpmMidstepFreq: 0
  UclkMidstepPadding: 0
  PcieGenSpeed:
    PcieGenSpeed 0: 0
    PcieGenSpeed 1: 3
  PcieLaneCount:
    PcieLaneCount 0: 1
    PcieLaneCount 1: 6
  LclkFreq:
    LclkFreq 0: 310
    LclkFreq 1: 619
  FanStopTemp: 50
  FanStartTemp: 60
  FanGain:
    FanGain 0: 400
    FanGain 1: 400
    FanGain 2: 400
    FanGain 3: 400
    FanGain 4: 400
    FanGain 5: 400
    FanGain 6: 400
    FanGain 7: 400
    FanGain 8: 400
    FanGain 9: 400
  FanPwmMin: 35
  FanAcousticLimitRpm: 2200
  FanThrottlingRpm: 2550
  FanMaximumRpm: 3600
  MGpuFanBoostLimitRpm: 0
  FanTargetTemperature: 89
  FanTargetGfxclk: 500
  FanPadding16: 0
  FanTempInputSelect: 1
  FanPadding: 0
  FanZeroRpmEnable: 1
  FanTachEdgePerRev: 2
  FuzzyFan_ErrorSetDelta: 0
  FuzzyFan_ErrorRateSetDelta: 0
  FuzzyFan_PwmSetDelta: 0
  FuzzyFan_Reserved: 0
  OverrideAvfsGb:
    OverrideAvfsGb 0: 0
    OverrideAvfsGb 1: 0
  dBtcGbGfxDfllModelSelect: 3
  Padding8_Avfs: 0
  qAvfsGb:
    qAvfsGb 0:
      a: 0
      b: 0
      c: 0.019
    qAvfsGb 1:
      a: 0
      b: 0
      c: 0.015
  dBtcGbGfxPll:
    a: 0.06744
    b: 0.1956
    c:-0.18056
  dBtcGbGfxDfll:
    a: 0
    b: 0
    c: 0
  dBtcGbSoc:
    a: 0.04187
    b: 0.1604
    c:-0.10369
  qAgingGb:
    qAgingGb 0:
      m: 0
      b: 0
    qAgingGb 1:
      m: 0
      b: 0
  PiecewiseLinearDroopIntGfxDfll:
    Fset:
      Fset 0: 0.5
      Fset 1: 1.8
      Fset 2: 2.4
      Fset 3: 2.68
      Fset 4: 2.8
    Vdroop:
      Vdroop 0: 0.0386
      Vdroop 1: 0.0596
      Vdroop 2: 0.1093
      Vdroop 3: 0.1623
      Vdroop 4: 0.1958
  qStaticVoltageOffset:
    qStaticVoltageOffset 0:
      a: 0
      b: 0
      c: 0
    qStaticVoltageOffset 1:
      a: 0
      b: 0
      c: 0
  DcTol:
    DcTol 0: 140
    DcTol 1: 144
  DcBtcEnabled:
    DcBtcEnabled 0: 1
    DcBtcEnabled 1: 1
  Padding8_GfxBtc:
    Padding8_GfxBtc 0: 0
    Padding8_GfxBtc 1: 0
  DcBtcMin:
    DcBtcMin 0: 0
    DcBtcMin 1: 0
  DcBtcMax:
    DcBtcMax 0: 140
    DcBtcMax 1: 144
  DcBtcGb:
    DcBtcGb 0: 25
    DcBtcGb 1: 25
  XgmiDpmPstates:
    XgmiDpmPstates 0: 0
    XgmiDpmPstates 1: 0
  XgmiDpmSpare:
    XgmiDpmSpare 0: 0
    XgmiDpmSpare 1: 0
  DebugOverrides: 0
  ReservedEquation0:
    a: 0
    b: 0
    c: 0
  ReservedEquation1:
    a: 0
    b: 0
    c: 0
  ReservedEquation2:
    a: 0
    b: 0
    c: 0
  ReservedEquation3:
    a: 0
    b: 0
    c: 0
  CustomerVariant: 0
  VcBtcEnabled: 1
  VcBtcVminT0: 3412
  VcBtcFixedVminAgingOffset: 63
  VcBtcVmin2PsmDegrationGb: 0
  VcBtcPsmA: 0.0039
  VcBtcPsmB: 0.2828
  VcBtcVminA: 0.0055
  VcBtcVminB: 0.5028
  LedGpio: 0
  GfxPowerStagesGpio: 0
  SkuReserved:
    SkuReserved 0: 0
    SkuReserved 1: 0
    SkuReserved 2: 0
    SkuReserved 3: 0
    SkuReserved 4: 0
    SkuReserved 5: 0
    SkuReserved 6: 0
    SkuReserved 7: 0
  GamingClk:
    GamingClk 0: 0
    GamingClk 1: 0
    GamingClk 2: 0
    GamingClk 3: 0
    GamingClk 4: 0
    GamingClk 5: 0
  I2cControllers:
    I2cControllers 0:
      Enabled: 0
      Speed: 0
      SlaveAddress: 0
      ControllerPort: 0
      ControllerName: 0
      ThermalThrotter: 0
      I2cProtocol: 0
      PaddingConfig: 0
    I2cControllers 1:
      Enabled: 0
      Speed: 0
      SlaveAddress: 0
      ControllerPort: 0
      ControllerName: 0
      ThermalThrotter: 0
      I2cProtocol: 0
      PaddingConfig: 0
    I2cControllers 2:
      Enabled: 0
      Speed: 0
      SlaveAddress: 0
      ControllerPort: 0
      ControllerName: 0
      ThermalThrotter: 0
      I2cProtocol: 0
      PaddingConfig: 0
    I2cControllers 3:
      Enabled: 0
      Speed: 0
      SlaveAddress: 0
      ControllerPort: 0
      ControllerName: 0
      ThermalThrotter: 0
      I2cProtocol: 0
      PaddingConfig: 0
    I2cControllers 4:
      Enabled: 0
      Speed: 0
      SlaveAddress: 0
      ControllerPort: 0
      ControllerName: 0
      ThermalThrotter: 0
      I2cProtocol: 0
      PaddingConfig: 0
    I2cControllers 5:
      Enabled: 0
      Speed: 0
      SlaveAddress: 0
      ControllerPort: 0
      ControllerName: 0
      ThermalThrotter: 0
      I2cProtocol: 0
      PaddingConfig: 0
    I2cControllers 6:
      Enabled: 0
      Speed: 0
      SlaveAddress: 0
      ControllerPort: 0
      ControllerName: 0
      ThermalThrotter: 0
      I2cProtocol: 0
      PaddingConfig: 0
    I2cControllers 7:
      Enabled: 0
      Speed: 0
      SlaveAddress: 0
      ControllerPort: 0
      ControllerName: 0
      ThermalThrotter: 0
      I2cProtocol: 0
      PaddingConfig: 0
    I2cControllers 8:
      Enabled: 0
      Speed: 0
      SlaveAddress: 0
      ControllerPort: 0
      ControllerName: 0
      ThermalThrotter: 0
      I2cProtocol: 0
      PaddingConfig: 0
    I2cControllers 9:
      Enabled: 0
      Speed: 0
      SlaveAddress: 0
      ControllerPort: 0
      ControllerName: 0
      ThermalThrotter: 0
      I2cProtocol: 0
      PaddingConfig: 0
    I2cControllers 10:
      Enabled: 0
      Speed: 0
      SlaveAddress: 0
      ControllerPort: 0
      ControllerName: 0
      ThermalThrotter: 0
      I2cProtocol: 0
      PaddingConfig: 0
    I2cControllers 11:
      Enabled: 0
      Speed: 0
      SlaveAddress: 0
      ControllerPort: 0
      ControllerName: 0
      ThermalThrotter: 0
      I2cProtocol: 0
      PaddingConfig: 0
    I2cControllers 12:
      Enabled: 0
      Speed: 0
      SlaveAddress: 0
      ControllerPort: 0
      ControllerName: 0
      ThermalThrotter: 0
      I2cProtocol: 0
      PaddingConfig: 0
    I2cControllers 13:
      Enabled: 0
      Speed: 0
      SlaveAddress: 0
      ControllerPort: 0
      ControllerName: 0
      ThermalThrotter: 0
      I2cProtocol: 0
      PaddingConfig: 0
    I2cControllers 14:
      Enabled: 0
      Speed: 0
      SlaveAddress: 0
      ControllerPort: 0
      ControllerName: 0
      ThermalThrotter: 0
      I2cProtocol: 0
      PaddingConfig: 0
    I2cControllers 15:
      Enabled: 0
      Speed: 0
      SlaveAddress: 0
      ControllerPort: 0
      ControllerName: 0
      ThermalThrotter: 0
      I2cProtocol: 0
      PaddingConfig: 0
  GpioScl: 0
  GpioSda: 0
  FchUsbPdSlaveAddr: 0
  I2cSpare:
    I2cSpare 0: 0
  VddGfxVrMapping: 0
  VddSocVrMapping: 0
  VddMem0VrMapping: 0
  VddMem1VrMapping: 0
  GfxUlvPhaseSheddingMask: 0
  SocUlvPhaseSheddingMask: 0
  VddciUlvPhaseSheddingMask: 0
  MvddUlvPhaseSheddingMask: 0
  GfxMaxCurrent: 0
  GfxOffset: 0
  Padding_TelemetryGfx: 0
  SocMaxCurrent: 0
  SocOffset: 0
  Padding_TelemetrySoc: 0
  Mem0MaxCurrent: 0
  Mem0Offset: 0
  Padding_TelemetryMem0: 0
  Mem1MaxCurrent: 0
  Mem1Offset: 0
  Padding_TelemetryMem1: 0
  MvddRatio: 0
  AcDcGpio: 0
  AcDcPolarity: 0
  VR0HotGpio: 0
  VR0HotPolarity: 0
  VR1HotGpio: 0
  VR1HotPolarity: 0
  GthrGpio: 0
  GthrPolarity: 0
  LedPin0: 0
  LedPin1: 0
  LedPin2: 0
  LedEnableMask: 0
  LedPcie: 0
  LedError: 0
  LedSpare1:
    LedSpare1 0: 0
    LedSpare1 1: 0
  PllGfxclkSpreadEnabled: 0
  PllGfxclkSpreadPercent: 0
  PllGfxclkSpreadFreq: 0
  DfllGfxclkSpreadEnabled: 0
  DfllGfxclkSpreadPercent: 0
  DfllGfxclkSpreadFreq: 0
  UclkSpreadPadding: 0
  UclkSpreadFreq: 0
  FclkSpreadEnabled: 0
  FclkSpreadPercent: 0
  FclkSpreadFreq: 0
  MemoryChannelEnabled: 0
  DramBitWidth: 0
  PaddingMem1:
    PaddingMem1 0: 0
    PaddingMem1 1: 0
    PaddingMem1 2: 0
  TotalBoardPower: 0
  BoardPowerPadding: 0
  XgmiLinkSpeed:
    XgmiLinkSpeed 0: 0
    XgmiLinkSpeed 1: 0
    XgmiLinkSpeed 2: 0
    XgmiLinkSpeed 3: 0
  XgmiLinkWidth:
    XgmiLinkWidth 0: 0
    XgmiLinkWidth 1: 0
    XgmiLinkWidth 2: 0
    XgmiLinkWidth 3: 0
  XgmiFclkFreq:
    XgmiFclkFreq 0: 0
    XgmiFclkFreq 1: 0
    XgmiFclkFreq 2: 0
    XgmiFclkFreq 3: 0
  XgmiSocVoltage:
    XgmiSocVoltage 0: 0
    XgmiSocVoltage 1: 0
    XgmiSocVoltage 2: 0
    XgmiSocVoltage 3: 0
  HsrEnabled: 0
  VddqOffEnabled: 0
  PaddingUmcFlags:
    PaddingUmcFlags 0: 0
    PaddingUmcFlags 1: 0
  UclkSpreadPercent:
    UclkSpreadPercent 0: 0
    UclkSpreadPercent 1: 0
    UclkSpreadPercent 2: 0
    UclkSpreadPercent 3: 0
    UclkSpreadPercent 4: 0
    UclkSpreadPercent 5: 0
    UclkSpreadPercent 6: 0
    UclkSpreadPercent 7: 0
    UclkSpreadPercent 8: 0
    UclkSpreadPercent 9: 0
    UclkSpreadPercent 10: 0
    UclkSpreadPercent 11: 0
    UclkSpreadPercent 12: 0
    UclkSpreadPercent 13: 0
    UclkSpreadPercent 14: 0
    UclkSpreadPercent 15: 0
  BoardReserved:
    BoardReserved 0: 0
    BoardReserved 1: 0
    BoardReserved 2: 0
    BoardReserved 3: 0
    BoardReserved 4: 0
    BoardReserved 5: 0
    BoardReserved 6: 0
    BoardReserved 7: 0
    BoardReserved 8: 0
    BoardReserved 9: 0
    BoardReserved 10: 0
  MmHubPadding:
    MmHubPadding 0: 0
    MmHubPadding 1: 0
    MmHubPadding 2: 0
    MmHubPadding 3: 0
    MmHubPadding 4: 0
    MmHubPadding 5: 0
    MmHubPadding 6: 0
    MmHubPadding 7: 102629376
sibradzic commented 2 years ago

Glad to hear that. Any chance you could export and share your HKLM\SYSTEM\ControlSet001\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}, so that other users may benefit?

blackmennewstyle commented 2 years ago

Here you go my brother, let me know if you need anything else :) 4d36e968-e325-11ce-bfc1-08002be10318.zip

I could not share a .reg file, it would not accept it, so i made a zip containing the .reg file. Hope, GitHub won't delete its content.

sibradzic commented 2 years ago

Looks good, thnx!

blackmennewstyle commented 2 years ago

You're welcome :) Thanks to your nice software, i managed to achieve my goal with my RX 6700 XT. The AMDGPU drivers are definitely a bit finicky on GNU/Linux, some values are perfectly stored in the powerplay tables but are definitely overridden by the same drivers, it's weird.

I posted a publication on reddit about my journey, i even featured your work :)