Rainmeter plugin for MSI Afterburner

Discussion in 'MSI AfterBurner Application Development Forum' started by stangowner, Apr 12, 2010.

  1. Weidbrewer

    Weidbrewer Guest

    Messages:
    1
    Likes Received:
    0
    GPU:
    XFX Radeon HD 5750
    Greetings all - found this link while researching how the heck to get Rainmeter to display GPU usage. Does this plugin work with the current, 2.0 version of Rainmeter, or was it designed for the last version?

    (please, please work for this one...)
     
  2. stangowner

    stangowner Guest

    Messages:
    607
    Likes Received:
    11
    GPU:
    2xMSI N550GTX-Ti Cy II OC
    It was developed with the last one. I did not even know 2 was out, so I have not personally tested it. But their release notes indicate it should be OK.
    As always, Rainmeter is fully "backwards compatible", and you can just install the new version right over the top of your existing Rainmeter 1.3 or 1.4. Rainmeter is fully XP/Vista/Win7 compatible, and the installer supports both 32bit and 64bit versions.

    If you have any issues (or success), report back and I'll look at it.
     
  3. Unknown999

    Unknown999 Guest

    Messages:
    13
    Likes Received:
    0
    GPU:
    ZOTAC GTX 570
    Thanks for the work.
    Everything works fine, except the "Memory" parametr - it doesn't show total memory amount (shows 0).
    And another question - is it possible to show the amount of free memory?
    (Rainmeter, MSI Afterburner - the latiest version)
     
  4. stangowner

    stangowner Guest

    Messages:
    607
    Likes Received:
    11
    GPU:
    2xMSI N550GTX-Ti Cy II OC
    Does it show in Afterburner when you click the "i" to open the info dialog?

    Yes, it is showing "used" currently. So you should be able to edit the skin to do the math (total-used).

    Thanks for confirming it works with the latest rainmeter as I still have not tested it myself.
     

  5. Unknown999

    Unknown999 Guest

    Messages:
    13
    Likes Received:
    0
    GPU:
    ZOTAC GTX 570
    No.


    Thanks. If it's not difficult, can you wright an example?


    Saying "latest" I didn't mean "beta".
     
  6. stangowner

    stangowner Guest

    Messages:
    607
    Likes Received:
    11
    GPU:
    2xMSI N550GTX-Ti Cy II OC
    I don't think Afterburner recognizes the amount of memory in my 550GTX-Ti neither. I have not mentioned to Unwinder, as the cards are pretty new and he is usually on top of it. I'm running Afterburner 2.2.0b4 now, but have not checked to see if it is added yet. I will tonight. Not much you can do about this until Afterburner recognizes it, unless you just wanted to hard code it in the rainmeter skin.

    Can't give you an example right now, but will try to follow up shortly.

    Yes, but you're running Rainmeter 2, correct? I have not tried it since the last update to this plug-in, which I think was still Rainmeter 1.4.
     
  7. Unknown999

    Unknown999 Guest

    Messages:
    13
    Likes Received:
    0
    GPU:
    ZOTAC GTX 570
    Correct, Rainmeter 2.0 and thanks for the quick reply once again.

    When done with the example, can you PM it?
     
  8. stangowner

    stangowner Guest

    Messages:
    607
    Likes Received:
    11
    GPU:
    2xMSI N550GTX-Ti Cy II OC
  9. stangowner

    stangowner Guest

    Messages:
    607
    Likes Received:
    11
    GPU:
    2xMSI N550GTX-Ti Cy II OC
    The existing memory used measure looks like this:
    Code:
    [MeasureMSIAfterburnerMemoryUsage]
    Measure=Plugin
    Plugin=Plugins\MSIAfterburner.dll
    GPU=0
    SourceId=49
    MinValue=0
    MaxValue=1024
    All you need to do is create a new measure just after it using the standard rainmeter "Calc" type and do the math (adjust the 1024 as needed for your card).
    Code:
    [MeasureMSIAfterburnerMemoryFree]
    Measure=Calc
    Formula=1024-MeasureMSIAfterburnerMemoryUsage
    Then in the meters displaying the data, use the new measure
    Code:
    [MeterMSIAfterburnerMemory[COLOR=Red][B]Free[/B][/COLOR]]
    Meter=String
    MeasureName=MeasureMSIAfterburnerMemory[COLOR=Red][B]Free[/B][/COLOR]
    X=[MeasureLeftText]
    Y=8R
    Text="Memory Usage: %1"
    NumOfDecimals=1
    MeterStyle=MSIAfterburnerStyle
    
    [MeterMSIAfterburnerMemory[COLOR=Red][B]Free[/B][/COLOR]Graph]
    Meter=Line
    MeasureName=MeasureMSIAfterburnerMemory[COLOR=Red][B]Free[/B][/COLOR]
    Y=5R
    MeterStyle=MSIAfterburnerGraphStyle
     
  10. Unknown999

    Unknown999 Guest

    Messages:
    13
    Likes Received:
    0
    GPU:
    ZOTAC GTX 570
    Thanks for the work, but it's still showing "0".

    I've already done that (as your example) before, but it didn't work either. Thought you would suggest different one.
     
    Last edited: Jun 30, 2011

  11. stangowner

    stangowner Guest

    Messages:
    607
    Likes Received:
    11
    GPU:
    2xMSI N550GTX-Ti Cy II OC
    Are the other readings showing values (clocks, temps, etc)?

    Do you see memory usage in the Afterburner monitor?
     
  12. Unknown999

    Unknown999 Guest

    Messages:
    13
    Likes Received:
    0
    GPU:
    ZOTAC GTX 570
    Total memory, PCB temp values show "0".

    Yes.
     
  13. stangowner

    stangowner Guest

    Messages:
    607
    Likes Received:
    11
    GPU:
    2xMSI N550GTX-Ti Cy II OC
    I show 0 for both of those on my 550s as well. Worked fine on my 280 though. Can't display them in rainmeter using this plug-in if the data is not available in Afterburner.

    Not sure on the memory usage. Did you edit the skin at all? Can you post the code for that section from your .ini file? If you look at page 2 of this thread, it worked fine with my 280 and works fine with my 2x550s now.
     
  14. Unknown999

    Unknown999 Guest

    Messages:
    13
    Likes Received:
    0
    GPU:
    ZOTAC GTX 570
    [MeasureMSIAfterburnerGPU #1MemoryUsage]
    Measure=Plugin
    Plugin=Plugins\MSIAfterburner.dll
    GPU=0
    SourceId=49
    MinValue=0
    MaxValue=1280

    [MeasureMSIAfterburnerGPU #1MemoryFree]
    Measure=Calc
    Formula=1280-MeasureMSIAfterburnerGPU #1MemoryUsage


    [GPU #1MemoryUsed.n]
    Meter=STRING
    MeasureName=MeasureMSIAfterburnerGPU #1MemoryUsage
    X=3
    Y=15
    FontColor=#fontColor.Text#
    FontSize=#FontHeight#
    FontFace=#FontName#
    AntiAlias=1
    NumOfDecimals=1
    Prefix="Used: "
    Postfix=" MB"

    [GPU #1MemoryFree.n]
    Meter=STRING
    MeasureName=MeasureMSIAfterburnerGPU #1MemoryFree
    X=284
    Y=15
    FontColor=#fontColor.Text#
    FontSize=#FontHeight#
    FontFace=#FontName#
    StringAlign=Right
    AntiAlias=1
    NumOfDecimals=1
    Prefix="Free: "
    Postfix=" MB"

    [GPU #1MemoryUsed.p]
    Meter=STRING
    MeasureName=MeasureMSIAfterburnerGPU #1MemoryUsage
    X=3
    Y=27
    FontColor=#fontColor.Text#
    FontSize=#FontHeight#
    FontFace=#FontName#
    AntiAlias=1
    NumOfDecimals=1
    Percentual=1
    Prefix="Used: "
    PostFix=" %"

    [GPU #1MemoryFree.p]
    Meter=STRING
    MeasureName=MeasureMSIAfterburnerGPU #1MemoryFree
    X=284
    Y=27
    StringAlign=Right
    FontColor=#fontColor.Text#
    FontSize=#FontHeight#
    FontFace=#FontName#
    AntiAlias=1
    NumOfDecimals=1
    Percentual=1
    Prefix="Free: "
    PostFix=" %"

    It shows the amount of used memory, but doesn't show the free amount.
     
  15. stangowner

    stangowner Guest

    Messages:
    607
    Likes Received:
    11
    GPU:
    2xMSI N550GTX-Ti Cy II OC
    I suspect it may be due to this:

    http://rainmeter.net/Manual.htm
    Measures are sections that determine what information Rainmeter should retrieve. Within a .ini file, names for measures must be unique and they must not have spaces. The meters use these section names to bind to the measures and display the results.

    This may be causing the "Formula" parameter for the Calc measure to fail.

    Can you try that and let me know?

    EDIT: Also, I don't see the "#" as being reserved in calc, but I would not recommend using it in the measurename neither. Maybe its undocumented or will be used in the future.
     
    Last edited: Jun 30, 2011

  16. Unknown999

    Unknown999 Guest

    Messages:
    13
    Likes Received:
    0
    GPU:
    ZOTAC GTX 570
    Thanks, it worked.
     
  17. stangowner

    stangowner Guest

    Messages:
    607
    Likes Received:
    11
    GPU:
    2xMSI N550GTX-Ti Cy II OC
    No problem. Let me know if you have any more issues.
     
  18. Wolfram23

    Wolfram23 Guest

    Messages:
    7
    Likes Received:
    0
    GPU:
    Crossfire Sapphire 5850
    Hi. I know this is a bit of an old thread, but I just got into Rainmeter and really wanted a proper GPU monitoring skin. I like to make the skins myself so after I found this .dll, off I went on making one.

    However, there's a problem. I have my skin showing FPS, GPU usage, temps, and clocks. The thing is, if I'm just at desktop or basically using 2D programs, everything shows 0. As soon as I open a 3D program - whether it's a game or even just the setup window for FurMark - all values appear as they should. As soon as I close the 3D app, bam, back to 0. Of course I have Afterburner open the whole time, and it does show proper values like idle clocks and temps, but they just don't appear in my skin.

    Just to double check, I downloaded your most recent Afterburner 2 gpu skin and it did the exact same thing.

    I have MSI Afterburner V2.1, Rainmeter 2.1 beta, Windows 7 64 bit, and yes I am using the 64 bit dll.

    Code:
    [Rainmeter]
    Update=1000
    Author=Wolfram
    Background=#ROOTCONFIGPATH#Images\background4.png
    ImageTint=255,255,255,100
    BackgroundMode=0
    Blur=1
    
    [Variables]
    DrkOrng=A66600
    White=255,255,255,255
    Grey=225,225,225,255
    DrkBlu=0049A6
    Blu=5B9FEF
    LtBlu=83B4EF
    LtOrng=FFA61A
    Red=255,0,0,255
    Red2=200,0,0,255
    Yellow=255,255,0,255
    Yellow2=200,200,0,255
    Green=0,255,0,255
    Green2=0,200,0,255
    Var=1
    FPSTotal=0
    
    [StringStyle1]
    FontColor=#Blu#
    FontFace=Bauhaus 93
    StringEffect=shadow
    FontEffectColor=0,0,0,255
    AntiAlias=1
    StringAlign=CENTER
    FontSize=17
    
    [StringStyle2]
    FontColor=#LtOrng#
    FontFace=Impact
    StringEffect=Border
    AntiAlias=1
    FontSize=11
    
    [GraphStyleFPS1]
    PrimaryColor=#Grey#
    SolidColor=#DrkBlu#99
    AntiAlias=1
    AutoScale=1
    
    [GraphStyleFPS2]
    LineCount=1
    LineColor=#White#
    AntiAlias=1
    LineWidth=2
    AntiAlias=1
    AutoScale=1
    
    [GraphStyleLoad1]
    PrimaryColor=#Red#
    SecondaryColor=#DrkOrng#
    BothColor=#Blu#60
    SolidColor=#DrkBlu#99
    AntiAlias=1
    AutoScale=1
    
    [GraphStyleLoad2]
    LineCount=2
    LineColor=#Red2#
    LineColor2=#LtOrng#
    AntiAlias=1
    LineWidth=2
    AutoScale=1
    
    [GraphStyleNV1]
    PrimaryColor=#Green#
    SolidColor=#DrkBlu#99
    AntiAlias=1
    AutoScale=1
    
    [GraphStyleNV2]
    LineCount=1
    LineColor=#Green2#
    AntiAlias=1
    LineWidth=1
    AutoScale=1
    
    [MeasureFPS]
    Measure=Plugin
    Plugin=MSIAfterburner.dll
    DataSource=Framerate
    
    [CalcFPS]
    Measure=Calc
    Formula=MeasureFPS>300?0:MeasureFPS>4?MeasureFPS:0
    ifAboveValue=0
    IfAboveAction=!Execute [!SetVariable FPSTotal "(#FPSTotal#+CalcFPS)"][!
    
    SetVariable Var "(#Var#+1)"]
    DynamicVariables=1
    
    [CalcAvg]
    Measure=Calc
    Formula=CalcFPS>0?((CalcFPS+#FPSTotal#)/#Var#):CalcAvg
    DynamicVariables=1
    
    [MeasureLoadGPU1]
    Measure=Plugin
    Plugin=MSIAfterburner.dll
    DataSource="GPU1 usage"
    
    [MeasureLoadGPU2]
    Measure=Plugin
    Plugin=MSIAfterburner.dll
    DataSource="GPU2 usage"
    
    [MeasureLoadGPU3]
    Measure=Plugin
    Plugin=MSIAfterburner.dll
    DataSource="GPU3 usage"
    
    [MeasureTempGPU1]
    Measure=Plugin
    Plugin=MSIAfterburner.dll
    DataSource="GPU1 temperature"
    
    [MeasureGPU1Max]
    Measure=Calc
    Formula=MeasureTempGPU1>MeasureGPU1Max?MeasureTempGPU1:MeasureGPU1Max
    
    [MeasureTempGPU2]
    Measure=Plugin
    Plugin=MSIAfterburner.dll
    DataSource="GPU2 temperature"
    
    [MeasureGPU2Max]
    Measure=Calc
    Formula=MeasureTempGPU2>MeasureGPU2Max?MeasureTempGPU2:MeasureGPU2Max
    
    [MeasureTempGPU3]
    Measure=Plugin
    Plugin=MSIAfterburner.dll
    DataSource="GPU3 temperature"
    
    [MeasureGPU3Max]
    Measure=Calc
    Formula=MeasureTempGPU3>MeasureGPU3Max?MeasureTempGPU3:MeasureGPU3Max
    
    [MeasureCoreGPU1]
    Measure=Plugin
    Plugin=MSIAfterburner.dll
    DataSource="GPU1 core clock"
    
    [MeasureCoreGPU2]
    Measure=Plugin
    Plugin=MSIAfterburner.dll
    DataSource="GPU2 core clock"
    
    [MeasureCoreGPU3]
    Measure=Plugin
    Plugin=MSIAfterburner.dll
    DataSource="GPU3 core clock"
    
    [MeasureMemGPU1]
    Measure=Plugin
    Plugin=MSIAfterburner.dll
    DataSource="GPU1 memory clock"
    
    [MeasureMemGPU2]
    Measure=Plugin
    Plugin=MSIAfterburner.dll
    DataSource="GPU2 memory clock"
    
    [MeasureMemGPU3]
    Measure=Plugin
    Plugin=MSIAfterburner.dll
    DataSource="GPU3 memory clock"
    
    [MeasureShaderGPU3]
    Measure=Plugin
    Plugin=MSIAfterburner.dll
    DataSource="GPU3 shader clock"
    
    
    ;==========METERS=======================================================
    ;=======================================================================
    
    [MeterLabel]
    Meter=String
    MeterStyle=StringStyle1
    X=105
    Y=5
    H=20
    W=210
    Text="GRAPHICS"
    
    [MeterFPSGraph]
    Meter=Histogram
    MeasureName=MeasureFPS
    MeterStyle=GraphStyleFPS1
    X=5
    Y=5R
    H=50
    W=200
    
    [MeterFPSGraph2]
    Meter=Line
    MeasureName=MeasureFPS
    MeterStyle=GraphStyleFPS2
    X=r
    Y=r
    H=50
    W=200
    
    [MeterFPSAvg]
    Meter=String
    MeasureName=CalcAvg
    MeterStyle=StringStyle2
    StringAlign=Center
    x=105
    y=15r
    H=35
    W=70
    Text="%1FPS"
    
    [MeterAMDLabel]
    Meter=String
    MeterStyle=StringStyle1
    FontColor=#Red#
    FontSize=14
    X=105
    Y=5R
    H=15
    W=200
    Text="Sapphire HD 5850"
    
    [MeterAMDLabel2]
    Meter=String
    MeterStyle=StringStyle1
    FontColor=#Red2#
    FontSize=12
    X=r
    Y=R
    H=15
    W=100
    Text="Crossfire"
    
    [MeterAMDLoadH]
    Meter=Histogram
    MeasureName=MeasureLoadGPU1
    SecondaryMeasureName=MeasureLoadGPU2
    MeterStyle=GraphStyleLoad1
    X=5
    Y=5R
    H=50
    W=200
    
    [MeterAMDLoadL]
    Meter=Line
    MeasureName=MeasureLoadGPU1
    MeasureName2=MeasureLoadGPU2
    MeterStyle=GraphStyleLoad2
    x=r
    y=r
    H=50
    W=200
    
    [MeterNvidiaLabel]
    Meter=String
    MeterStyle=StringStyle1
    FontColor=#Green#
    FontSize=11
    X=105
    Y=5R
    H=15
    W=200
    Text="EVGA GT 240"
    
    [MeterNVLoadH]
    Meter=Histogram
    MeasureName=MeasureLoadGPU3
    MeterStyle=GraphStyleNV1
    X=5
    Y=5R
    H=25
    W=200
    
    [MeterNVLoadL]
    Meter=Line
    MeasureName=MeasureLoadGPU3
    MeterStyle=GraphStyleNV2
    x=r
    y=r
    H=25
    W=200
    
    [MeterTempLabel]
    Meter=String
    MeterStyle=StringStyle1
    FontSize=11
    x=80
    y=5R
    H=15
    W=40
    Text="TEMPS"
    
    [MeterClocksLabel]
    Meter=String
    MeterStyle=StringStyle1
    FontSize=11
    x=30R
    y=r
    H=15
    W=50
    Text="CLOCKS"
    
    [MeterGPU1]
    Meter=String
    MeterStyle=StringStyle1
    FontColor=#Red#
    FontSize=11
    X=25
    Y=3R
    H=16
    W=25
    Text="GPU1"
    
    [MeterGPU1Temps]
    Meter=String
    MeterStyle=StringStyle2
    MeasureName=MeasureTempGPU1
    MeasureName2=MeasureGPU1Max
    X=R
    Y=r
    H=16
    W=50
    Text="%1/%2°C"
    
    [MeterGPU1Clocks]
    Meter=String
    MeterStyle=StringStyle2
    MeasureName=MeasureCoreGPU1
    MeasureName2=MeasureMemGPU1
    X=15R
    Y=r
    H=16
    W=50
    Text="%1/%2Mhz"
    
    [MeterGPU2]
    Meter=String
    MeterStyle=StringStyle1
    FontColor=#Red#
    FontSize=11
    X=25
    Y=3R
    H=16
    W=25
    Text="GPU2"
    
    [MeterGPU2Temps]
    Meter=String
    MeterStyle=StringStyle2
    MeasureName=MeasureTempGPU2
    MeasureName2=MeasureGPU2Max
    X=R
    Y=r
    H=16
    W=50
    Text="%1/%2°C"
    
    [MeterGPU2Clocks]
    Meter=String
    MeterStyle=StringStyle2
    MeasureName=MeasureCoreGPU2
    MeasureName2=MeasureMemGPU2
    X=15R
    Y=r
    H=16
    W=50
    Text="%1/%2Mhz"
    
    [MeterGPU3]
    Meter=String
    MeterStyle=StringStyle1
    FontColor=#Green#
    FontSize=11
    X=25
    Y=3R
    H=16
    W=25
    Text="GPU3"
    
    [MeterGPU3Temps]
    Meter=String
    MeterStyle=StringStyle2
    MeasureName=MeasureTempGPU3
    MeasureName2=MeasureGPU3Max
    X=R
    Y=r
    H=16
    W=50
    Text="%1/%2°C"
    
    [MeterGPU3Clocks]
    Meter=String
    MeterStyle=StringStyle2
    MeasureName=MeasureCoreGPU3
    MeasureName2=MeasureShaderGPU3
    MeasureName3=MeasureMemGPU3
    FontSize=10
    X=15R
    Y=r
    H=20
    W=50
    Text="%1/%2/%3"
    
     
  19. stangowner

    stangowner Guest

    Messages:
    607
    Likes Received:
    11
    GPU:
    2xMSI N550GTX-Ti Cy II OC
    I can reproduce the issue. I'll reply back once I have a chance to debug. Thanks!
     
  20. Wolfram23

    Wolfram23 Guest

    Messages:
    7
    Likes Received:
    0
    GPU:
    Crossfire Sapphire 5850
    Hey, just thought I should tell you. As far as I know I haven't changed a thing, but after coming back from being out of town for the long weekend, I started up my PC and I'm getting all the values as they should appear, even just at desktop. No idea what's up with that, I didn't modify anything. But it seems like maybe it fixed itself?
     

Share This Page