Experience Index Returns (Open-source)

Discussion in 'MDL Projects and Applications' started by Muerto, Apr 7, 2016.

  1. Carlos Detweiller

    Carlos Detweiller MDL Spinning Tortoise

    Joined:
    Dec 21, 2012
    Messages:
    4,514
    Likes Received:
    4,541
    Trophy Points:
    150
    To aid in further testing, I haven't refreshed that system's score, so far.
     
  2. Muerto

    Muerto MDL Debugger

    Joined:
    Mar 7, 2012
    Messages:
    1,850
    Likes Received:
    2,067
    Trophy Points:
    60
    I may send you a WMI script to run, which grabs a value for debugging purposes.

    Or if your affiliated with WMI in win32_WinSAT there is a value “WinSATAsessmentState”, which holds the current state, could you let me know the value?

    Let me know either way, again I really appreciate your, and everyone else’s help.
     
  3. s1ave77

    s1ave77 Has left at his own request

    Joined:
    Aug 15, 2012
    Messages:
    16,130
    Likes Received:
    24,279
    Trophy Points:
    340
    Could it be “WinSATAssessmentState” is meant :g:? Otherwise it errors here.

    Code:
    C:\Windows\system32>wmic path Win32_WinSAT get WinSATAssessmentState
    WinSATAssessmentState
    1
     
  4. Muerto

    Muerto MDL Debugger

    Joined:
    Mar 7, 2012
    Messages:
    1,850
    Likes Received:
    2,067
    Trophy Points:
    60
    I will check. I’m sure I checked the spelling but worth another look. Thanks man!
     
  5. s1ave77

    s1ave77 Has left at his own request

    Joined:
    Aug 15, 2012
    Messages:
    16,130
    Likes Received:
    24,279
    Trophy Points:
    340
    Code:
    CPUScore                                real32                  Read
    D3DScore                                real32                  Read
    DiskScore                               real32                  Read
    GraphicsScore                           real32                  Read
    MemoryScore                             real32                  Read
    TimeTaken                               string                  N/A
    WinSATAssessmentState                   uint32                  Read
    WinSPRLevel                             real32                  Read
    
    At least with 1 s it fails in WMI and my dictionary :D.
     
  6. Muerto

    Muerto MDL Debugger

    Joined:
    Mar 7, 2012
    Messages:
    1,850
    Likes Received:
    2,067
    Trophy Points:
    60
    It seems all data is correct here, although something odd is going on as Windows and WMI code creator show two different values. I'll look into it further now.

    Code:
                ObjectQuery Obj = new ObjectQuery("SELECT * FROM Win32_WinSAT");
                ManagementObjectSearcher Searcher = new ManagementObjectSearcher(Scope, Obj);
                foreach (ManagementObject WMIObj in Searcher.Get()) {
                    IntVal = WMIObj["WinSATAssessmentState"].ToString;
                }
     
  7. Muerto

    Muerto MDL Debugger

    Joined:
    Mar 7, 2012
    Messages:
    1,850
    Likes Received:
    2,067
    Trophy Points:
    60
    #267 Muerto, Jan 6, 2018
    Last edited: Jul 5, 2019
    (OP)
    Xiret 2 beta 2 available:-

    Link removed by QB - Version superceeded.

    SHA256 - 6493adf0ad8f940a01b879ade639365b8d8c56d468d9d69b40d4008cad298ae3 (always make sure checksums match)

    Virus total included, please post any bugs here so I can narrow the next list down.

    Regards, QB.
     
  8. ItielMaN

    ItielMaN MDL Senior Member

    Joined:
    Apr 30, 2011
    Messages:
    367
    Likes Received:
    59
    Trophy Points:
    10
  9. Muerto

    Muerto MDL Debugger

    Joined:
    Mar 7, 2012
    Messages:
    1,850
    Likes Received:
    2,067
    Trophy Points:
    60
  10. Carlos Detweiller

    Carlos Detweiller MDL Spinning Tortoise

    Joined:
    Dec 21, 2012
    Messages:
    4,514
    Likes Received:
    4,541
    Trophy Points:
    150
    Maybe a bit late, but my value is:

    Code:
    C:\>wmic path Win32_WinSAT get WinSATAssessmentState
    WinSATAssessmentState
    1
    Will check out beta2.
     
  11. Carlos Detweiller

    Carlos Detweiller MDL Spinning Tortoise

    Joined:
    Dec 21, 2012
    Messages:
    4,514
    Likes Received:
    4,541
    Trophy Points:
    150
    Well, checked beta2:

    1. Scores are still referred to as "valid", while Windows disagrees strongly. The question is now, how Windows determines that scores are out of date. I won't refresh the scores until we squashed that bug.

    2. The "Scoring" explanation still doesn't fit and the end is truncated.

    3. On the normal display of results, the "Harddisk" description line is missing, its score is shown. The Gaming score is now correct, yay!

    4. Same thing in Hardware mode, the Harddisk line is completely missing, probably pushed into oblivion by the other lines. The icons also do not match with the lines.

    Sorry for the bad news, don't shoot the messenger, thanks.
     

    Attached Files:

  12. Muerto

    Muerto MDL Debugger

    Joined:
    Mar 7, 2012
    Messages:
    1,850
    Likes Received:
    2,067
    Trophy Points:
    60
    Haha, I'd never shoot the messenger :D

    1. This is proving difficult as apparently WinSAT gets the validity from WMI, I've checked the code multiple time and it's being returned correctly, maybe there's something I'm missing. I continue to look into this. but the value of "1" you're getting from "WinSATAssessmentState" means your scores are valid.

    2, 3 and 4. 4K scaling is definately being worked out before release, it would be easier if my 4k monitor didn't get damp, but I ordered a new one and it's in the mail. Once it arrives the issues can be fixed properly. Hardware mode does not scale properly on 4K since I based resizing on set values and it will be an easy fix.

    Thanks for letting me know gaming score is now read correctly,
     
  13. Muerto

    Muerto MDL Debugger

    Joined:
    Mar 7, 2012
    Messages:
    1,850
    Likes Received:
    2,067
    Trophy Points:
    60
    Added for next BETA:

    1. New routine to detect the taskbar location and working screen area for notifications
    Code:
        private void SetLocationOfWindow()
        {
           int N = 6; //Magic number for bounds - W or H (Edge spacing)
           int W = Width; //Width of Form
           int H = Height; //Height of Form
           Screen LCD = Screen.PrimaryScreen;
    
           switch (GetTaskbarLocation()) //Gambol/Toast/WinAPI
           {
               case TaskBarLocation.Bottom:
                   Location = new Point(LCD.Bounds.Width - (W - N), (LCD.WorkingArea.Height - (H - N)));
                   break;
               case TaskBarLocation.Left:
                   Location = new Point(LCD.Bounds.Width - (W - N), (LCD.Bounds.Height - (H - N)));
                   break;
               case TaskBarLocation.Top:
                   Location = new Point(LCD.Bounds.Width - (W - N), (LCD.Bounds.Height - (H - N)));
                   break;
               case TaskBarLocation.Right:
                   Location = new Point(LCD.WorkingArea.Width - (W - N), (LCD.Bounds.Height - (H - N)));
                   break;
               default: //Assume default taskbar set to bottom
                   Location = new Point(LCD.Bounds.Width - (W - N), (LCD.WorkingArea.Height - (H - N)));
                   break;
            }
        }
    
    2. Changed how controls are rendered to eliminate "black blocks" on execution of application
    3. (DPI) Hardware mode resizing logic fixed for QHD/UHD panels
    4. Fixed multiple spaces for certain strings, e.g. HDD/SSD manufacturer
    Code:
    S = Regex.Replace(S, "{2, }", " ");
    5. Fixed spacing before MB, GB, GHz, etc

    Still working on:

    1. More DPI scaling fixes
    2. incorrect score validity shown - Unaware of cause
    3. Some machines show incorrect system drive - Aware of cause

    Regards, QB.
     
  14. Carlos Detweiller

    Carlos Detweiller MDL Spinning Tortoise

    Joined:
    Dec 21, 2012
    Messages:
    4,514
    Likes Received:
    4,541
    Trophy Points:
    150
    1. As for validity, one hint could be what the OS prints as notification:
    osnotification.jpg
    "New hardware detected" might mean just that. Detecting a change in hardware / software (I did update the nVidia drivers, lately) deems the scores invalid.
     
  15. Muerto

    Muerto MDL Debugger

    Joined:
    Mar 7, 2012
    Messages:
    1,850
    Likes Received:
    2,067
    Trophy Points:
    60
    #275 Muerto, Jan 9, 2018
    Last edited: Jan 9, 2018
    (OP)
    On Windows 10 it works very differently so I'm installing Windows 7, through 8.1 to see the differences between them. After installing new drivers in Windows 10 WMI reports WinSATAssessmentState "3", although it's still reported as "1" (valid) even if loaded from WMI, very strange issues. But then this is to be expected, when has Microsoft ever made anything easy?

    I upgraded my GTX drivers today and it reported valid on my side, whereas in Windows 7, it invalidates scores as it becomes "incoherent with hardware"

    Regards, QB.
     
  16. Michaela Joy

    Michaela Joy MDL Crazy Lady

    Joined:
    Jul 26, 2012
    Messages:
    4,078
    Likes Received:
    4,652
    Trophy Points:
    150
  17. Muerto

    Muerto MDL Debugger

    Joined:
    Mar 7, 2012
    Messages:
    1,850
    Likes Received:
    2,067
    Trophy Points:
    60
    Thanks MJ! :D

    Windows 7 is installed after some .wim edits, I've never tried to install 7 on my Laptop so it needed USB3 and NVMe drivers, once I set up Visual Studio I'll get started on debugging.
     
  18. Muerto

    Muerto MDL Debugger

    Joined:
    Mar 7, 2012
    Messages:
    1,850
    Likes Received:
    2,067
    Trophy Points:
    60
    Okay - Now I know the answer to some questions.

    1. Windows 7 gets the WinSAT validity from WinSATAPI.dll - I'm sure Windows 8, 8.1 and 10 do the same, on Windows 7 the validity in the UI @Carlos Detweiller is not based on Instrumentation and I'm sure this is why your validity is incorrect.
    2. My readings were muddled and incorrect since Delphi WMI Code Creator was compiled under x86 - Now under a 64 Bit environment it was return incorrect metrics, this caused my confusion, you'd think they would compile it as x64 specific.

    From these findings I have no choice but to rewrite with the API, which I have started now.

    Regards, QB.
     
  19. Muerto

    Muerto MDL Debugger

    Joined:
    Mar 7, 2012
    Messages:
    1,850
    Likes Received:
    2,067
    Trophy Points:
    60
    #279 Muerto, Jan 11, 2018
    Last edited: Jan 12, 2018
    (OP)
    I've solved the validity issue. Same issue on my windows 7 - After removing nVidia drivers and restarting my PC, WMI still reports a valid score but WinSAT says my scores need to be refreshed.

    With the WinAPI rewrite WinSAT returns:

    Code:
    WINSAT_ASSESSMENT_STATE_INCOHERENT_WITH_HARDWARE
    With an integer value of "2" which is correct.

    @Carlos Detweiller - I'm going to send you a private version to test, all seems well my end.
     
  20. Carlos Detweiller

    Carlos Detweiller MDL Spinning Tortoise

    Joined:
    Dec 21, 2012
    Messages:
    4,514
    Likes Received:
    4,541
    Trophy Points:
    150
    Answered in conversation - the change fixed it.