pvrscope function PVRScopeReadCountersThenSetGroup

This topic contains 6 replies, has 2 voices, and was last updated by  Joe Davis 3 years, 11 months ago.

Viewing 7 posts - 1 through 7 (of 7 total)
  • Author
    Posts
  • #31529

    Qing Jiao
    Member

    while using the pvrscope library, I found a weird problem the value I get from funtion PVRScopeReadCountersThenSetGroup(m_pPVRScopeData, &m_sReading, nTimeUS, nGroupSelect),

    If I call this function every 50ms or 100ms, when the screen is static, it output totally different value. I am pretty sure the average frame time is 12ms, and powertune shows very stable values, and I am shutting down the perfsever when I run my own apps.

    So could you please tell me how this function works, how it connect with the circular buffer? I understand perfsever visited it every 2ms to get the buffer and we could see it on power tune. So if I call the function PVRScopeReadCountersThenSetGroup every 50ms, what exactly does it do? Will it just call driver service to get the recently buffer, and actually the value I got is the last 2ms(if the buffer could only support 2ms)? Or it works underground to visit the driver service to get the buffer every 2 ms and keep it, and whenever I call it, it calculated the counters I want in my visit period, like 50ms, honestly this is the way I want.

    Could you please help me as soon as possible? because I want to do a small project on my graphic performance and do some dynamic feedback, the dealine is coming, I am still stuck in here.

    thank you very much!!!

    #38171

    Joe Davis
    Member

    When you say static, do you mean the GPU isn’t doing any work or the same frame is being rendered repeatedly? In the later case the workload should be fairly consistent, assuming other factors such as power management and memory bandwidth use aren’t affecting the GPU’s execution time.

    I suspect you’re not sampling frequently enough. The circular buffer can only hold a finite amount of data. If you do not sample at a high enough frequency, old values may be overwritten as new data is collected. As mentioned in our other discussion, it may be a good idea to sample on a background thread so you can easily control the sampling frequency.

    Regards,
    Joe

    #38172

    Qing Jiao
    Member

    Then the PVRScopeReadCountersThenSetGroup function works like that: Every time I call it, it will grab the buffer.

    #38173

    Joe Davis
    Member

    Yes – the function will grab all of the data from the driver’s circular buffer.

    Regards,
    Joe

    #38174

    Qing Jiao
    Member

    I find one thing, if I do smooth on my fps got from pvrscope. It looks quite resonable.

    #38175

    Qing Jiao
    Member

    If there anyway to get pid fps?

    #38176

    Joe Davis
    Member

    Per-PID stats are calculated from timing data, which is only available in PVRTune. It’s not possible to retrieve per-PID stats using PVRScope.

    Regards,
    Joe

Viewing 7 posts - 1 through 7 (of 7 total)
You must be logged in to reply to this topic.