YueChen-C / py-ios-device

IOS Professional Performance Testing Tool . You can get CPU, GPU, Memory , Lifecycle and other metrics from real iOS devices . iOS 性能测试工具
GNU General Public License v3.0
681 stars 186 forks source link

ios17 how to get GPU data #155

Open CharlieDreemur opened 2 months ago

CharlieDreemur commented 2 months ago

i already start tunnel using pymobiledevice3, and now I try to use rpc.gpu_counters to get the gpu data, however I get something like this that, how to use these data, and why all the value are 100, is that just a documentation instead of a actual data? [0, 101372289835, 4294968585, 3, {0: [['ALU Limiter', 100, 'Measures the time during which ALU work is attempted to execute as a percentage of peak ALU performance.', 'ALULimiter', 100, 0], ['Texture Sample Limiter', 100, 'Measures the time during which texture samples are attempted to execute as a percentage of peak texture sample performance.', 'TPULimiter', 100, 0], ['Texture Filtering Limiter', 100, 'Measures the time during which texture filtering is attempted to execute as a percentage of peak texture filtering performance.', 'TextureFilteringLimiter', 100, 0], ['Texture Write Limiter', 100, 'Texture write limiter', 'PBELimiter', 100, 0], ['Buffer Read Limiter', 100, 'Measures the time during which buffer loads are attempted to execute as a percentage of peak buffer load performance.', 'BufferLoadLimiter', 100, 0]...

also, I have tried the instrument_demo, it seems like the JSENV there cannot decode the data from ios17 correctly

YueChen-C commented 2 months ago
  1. I tested iOS 17.5.1 and did not find any issues
  2. The returned data requires JavaScript to calculate and cannot be used directly
CharlieDreemur commented 2 months ago

hi, I try to use the jsenv here and get the output like: "ALU Limiter": 16.09, "Texture Sample Limiter": 25.68, "Texture Filtering Limiter": 25.61, "Texture Write Limiter": 77.41, "Buffer Read Limiter": 4.86, "Buffer Write Limiter": 0.03, "Threadgroup/Imageblock Load Limiter": 0.12, "Threadgroup/Imageblock Store Limiter": 43.84, "Fragment Input Interpolation Limiter": 0, "GPU Last Level Cache Limiter": 10.4, "MMU Limiter": 7.59, is this the expected result? how to compute render usage/gpu usage based on these?