优化:完成Ubuntu 2K画质与拖拽响应调优
No files matched your search
|
After Width: | Height: | Size: 51 KiB |
|
After Width: | Height: | Size: 52 KiB |
@@ -0,0 +1,66 @@
|
||||
# To display the perf.data header info, please use --header/--header-only options.
|
||||
#
|
||||
#
|
||||
# Total Lost Samples: 0
|
||||
#
|
||||
# Samples: 870 of event 'cpu-clock'
|
||||
# Event count (approx.): 8787878700
|
||||
#
|
||||
# Overhead Command Shared Object Symbol IPC [IPC Coverage]
|
||||
# ........ ............... ................. ........................................... ....................
|
||||
#
|
||||
4.48% Xorg libc.so.6 [.] __memmove_avx_unaligned_erms - -
|
||||
|
|
||||
---__memmove_avx_unaligned_erms
|
||||
0x74d4c87b443d
|
||||
0x74d4c880cc9a
|
||||
0x74d4c87b4d39
|
||||
0x74d4c87b50d4
|
||||
0x74d4cb12577a
|
||||
0x74d4cb1178b1
|
||||
0x59b1b67f953d
|
||||
0x59b1b675babf
|
||||
0x59b1b675fed9
|
||||
__libc_start_call_main
|
||||
__libc_start_main_impl (inlined)
|
||||
_start
|
||||
|
||||
4.37% session::video libc.so.6 [.] __memmove_avx_unaligned_erms - -
|
||||
|
|
||||
---__memmove_avx_unaligned_erms
|
||||
|
|
||||
--4.25%--0x556749141015
|
||||
0x556749141d3c
|
||||
0x556749129542
|
||||
0x556749129747
|
||||
0x55674905a9fc
|
||||
0x55674905b4b4
|
||||
0x556748d841f8
|
||||
0x556748d89a5f
|
||||
0x556748d8a838
|
||||
0x556748d8aeed
|
||||
0x556748d717dc
|
||||
0x55674a019223
|
||||
start_thread
|
||||
__clone3 (inlined)
|
||||
|
||||
3.56% video::capture libc.so.6 [.] __memmove_avx_unaligned_erms - -
|
||||
2.99% session::video sunshine [.] 0x000000000065ff08 - -
|
||||
|
|
||||
--1.49%--0x556749090f08
|
||||
0x55674905dd70
|
||||
0x55674905907f
|
||||
0x55674905a5b3
|
||||
0x55674905b86c
|
||||
0x556749156dbd
|
||||
0x55674905abca
|
||||
0x55674905b51c
|
||||
0x556748d841f8
|
||||
0x556748d89a5f
|
||||
0x556748d8a838
|
||||
0x556748d8aeed
|
||||
0x556748d717dc
|
||||
0x55674a019223
|
||||
start_thread
|
||||
__clone3 (inlined)
|
||||
|
||||
@@ -0,0 +1,457 @@
|
||||
{
|
||||
"host": "192.168.1.72",
|
||||
"pid": 40222,
|
||||
"shapes": [
|
||||
{
|
||||
"name": "default",
|
||||
"source": {
|
||||
"w": 24,
|
||||
"h": 24,
|
||||
"hx": 3,
|
||||
"hy": 1,
|
||||
"x": 181,
|
||||
"y": 599,
|
||||
"sw": 2560,
|
||||
"sh": 1440
|
||||
},
|
||||
"local": {
|
||||
"x": 182,
|
||||
"y": 600,
|
||||
"w": 24,
|
||||
"h": 24,
|
||||
"hx": 3,
|
||||
"hy": 1
|
||||
},
|
||||
"geometry_matches": true,
|
||||
"max_pixel_difference": 0,
|
||||
"visible_pixels": 254,
|
||||
"video": {
|
||||
"reference": 15726330,
|
||||
"nonuniform_pixels": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "text",
|
||||
"source": {
|
||||
"w": 24,
|
||||
"h": 24,
|
||||
"hx": 11,
|
||||
"hy": 12,
|
||||
"x": 547,
|
||||
"y": 599,
|
||||
"sw": 2560,
|
||||
"sh": 1440
|
||||
},
|
||||
"local": {
|
||||
"x": 548,
|
||||
"y": 600,
|
||||
"w": 24,
|
||||
"h": 24,
|
||||
"hx": 11,
|
||||
"hy": 12
|
||||
},
|
||||
"geometry_matches": true,
|
||||
"max_pixel_difference": 0,
|
||||
"visible_pixels": 240,
|
||||
"video": {
|
||||
"reference": 15791866,
|
||||
"nonuniform_pixels": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "ew-resize",
|
||||
"source": {
|
||||
"w": 24,
|
||||
"h": 24,
|
||||
"hx": 12,
|
||||
"hy": 12,
|
||||
"x": 913,
|
||||
"y": 599,
|
||||
"sw": 2560,
|
||||
"sh": 1440
|
||||
},
|
||||
"local": {
|
||||
"x": 914,
|
||||
"y": 600,
|
||||
"w": 24,
|
||||
"h": 24,
|
||||
"hx": 12,
|
||||
"hy": 12
|
||||
},
|
||||
"geometry_matches": true,
|
||||
"max_pixel_difference": 0,
|
||||
"visible_pixels": 301,
|
||||
"video": {
|
||||
"reference": 15726330,
|
||||
"nonuniform_pixels": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "wait",
|
||||
"source": {
|
||||
"w": 24,
|
||||
"h": 24,
|
||||
"hx": 11,
|
||||
"hy": 11,
|
||||
"x": 1280,
|
||||
"y": 599,
|
||||
"sw": 2560,
|
||||
"sh": 1440
|
||||
},
|
||||
"local": {
|
||||
"x": 1280,
|
||||
"y": 600,
|
||||
"w": 24,
|
||||
"h": 24,
|
||||
"hx": 11,
|
||||
"hy": 11
|
||||
},
|
||||
"geometry_matches": true,
|
||||
"max_pixel_difference": 0,
|
||||
"visible_pixels": 433,
|
||||
"video": {
|
||||
"reference": 15791866,
|
||||
"nonuniform_pixels": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "none",
|
||||
"source": {
|
||||
"w": 1,
|
||||
"h": 1,
|
||||
"hx": 0,
|
||||
"hy": 0,
|
||||
"x": 1645,
|
||||
"y": 599,
|
||||
"sw": 2560,
|
||||
"sh": 1440
|
||||
},
|
||||
"local": {
|
||||
"x": 1645,
|
||||
"y": 600,
|
||||
"w": 1,
|
||||
"h": 1,
|
||||
"hx": 0,
|
||||
"hy": 0
|
||||
},
|
||||
"geometry_matches": true,
|
||||
"max_pixel_difference": 0,
|
||||
"visible_pixels": 0,
|
||||
"video": {
|
||||
"reference": 15726074,
|
||||
"nonuniform_pixels": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "crosshair",
|
||||
"source": {
|
||||
"w": 24,
|
||||
"h": 24,
|
||||
"hx": 11,
|
||||
"hy": 11,
|
||||
"x": 2011,
|
||||
"y": 599,
|
||||
"sw": 2560,
|
||||
"sh": 1440
|
||||
},
|
||||
"local": {
|
||||
"x": 2011,
|
||||
"y": 600,
|
||||
"w": 24,
|
||||
"h": 24,
|
||||
"hx": 11,
|
||||
"hy": 11
|
||||
},
|
||||
"geometry_matches": true,
|
||||
"max_pixel_difference": 0,
|
||||
"visible_pixels": 281,
|
||||
"video": {
|
||||
"reference": 15726074,
|
||||
"nonuniform_pixels": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "custom",
|
||||
"source": {
|
||||
"w": 24,
|
||||
"h": 24,
|
||||
"hx": 7,
|
||||
"hy": 9,
|
||||
"x": 2377,
|
||||
"y": 599,
|
||||
"sw": 2560,
|
||||
"sh": 1440
|
||||
},
|
||||
"local": {
|
||||
"x": 2377,
|
||||
"y": 600,
|
||||
"w": 24,
|
||||
"h": 24,
|
||||
"hx": 7,
|
||||
"hy": 9
|
||||
},
|
||||
"geometry_matches": true,
|
||||
"max_pixel_difference": 0,
|
||||
"visible_pixels": 576,
|
||||
"video": {
|
||||
"reference": 15726074,
|
||||
"nonuniform_pixels": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"paused_client": {
|
||||
"position": [
|
||||
350,
|
||||
700
|
||||
],
|
||||
"elapsed_ms": 255.453621,
|
||||
"same_shape": true,
|
||||
"steps": [
|
||||
{
|
||||
"target": [
|
||||
250,
|
||||
650
|
||||
],
|
||||
"position": [
|
||||
250,
|
||||
650
|
||||
],
|
||||
"query_ms": 8.327664
|
||||
},
|
||||
{
|
||||
"target": [
|
||||
280,
|
||||
670
|
||||
],
|
||||
"position": [
|
||||
280,
|
||||
670
|
||||
],
|
||||
"query_ms": 2.16409
|
||||
},
|
||||
{
|
||||
"target": [
|
||||
300,
|
||||
690
|
||||
],
|
||||
"position": [
|
||||
300,
|
||||
690
|
||||
],
|
||||
"query_ms": 2.175173
|
||||
},
|
||||
{
|
||||
"target": [
|
||||
350,
|
||||
700
|
||||
],
|
||||
"position": [
|
||||
350,
|
||||
700
|
||||
],
|
||||
"query_ms": 2.244587
|
||||
}
|
||||
]
|
||||
},
|
||||
"clicks": [
|
||||
{
|
||||
"seq": 1,
|
||||
"x": 182,
|
||||
"y": 750,
|
||||
"seen": 1,
|
||||
"decoded_ms": 160.545435
|
||||
},
|
||||
{
|
||||
"seq": 2,
|
||||
"x": 548,
|
||||
"y": 850,
|
||||
"seen": 2,
|
||||
"decoded_ms": 135.850311
|
||||
},
|
||||
{
|
||||
"seq": 3,
|
||||
"x": 914,
|
||||
"y": 750,
|
||||
"seen": 3,
|
||||
"decoded_ms": 138.104231
|
||||
},
|
||||
{
|
||||
"seq": 4,
|
||||
"x": 1280,
|
||||
"y": 850,
|
||||
"seen": 4,
|
||||
"decoded_ms": 160.524437
|
||||
},
|
||||
{
|
||||
"seq": 5,
|
||||
"x": 1645,
|
||||
"y": 750,
|
||||
"seen": 5,
|
||||
"decoded_ms": 151.550171
|
||||
},
|
||||
{
|
||||
"seq": 6,
|
||||
"x": 2011,
|
||||
"y": 850,
|
||||
"seen": 6,
|
||||
"decoded_ms": 133.429855
|
||||
},
|
||||
{
|
||||
"seq": 7,
|
||||
"x": 2377,
|
||||
"y": 750,
|
||||
"seen": 7,
|
||||
"decoded_ms": 131.276556
|
||||
},
|
||||
{
|
||||
"seq": 8,
|
||||
"x": 182,
|
||||
"y": 850,
|
||||
"seen": 8,
|
||||
"decoded_ms": 132.176608
|
||||
},
|
||||
{
|
||||
"seq": 9,
|
||||
"x": 548,
|
||||
"y": 750,
|
||||
"seen": 9,
|
||||
"decoded_ms": 119.835754
|
||||
},
|
||||
{
|
||||
"seq": 10,
|
||||
"x": 914,
|
||||
"y": 850,
|
||||
"seen": 10,
|
||||
"decoded_ms": 146.008994
|
||||
},
|
||||
{
|
||||
"seq": 11,
|
||||
"x": 1280,
|
||||
"y": 750,
|
||||
"seen": 11,
|
||||
"decoded_ms": 147.967174
|
||||
},
|
||||
{
|
||||
"seq": 12,
|
||||
"x": 1645,
|
||||
"y": 850,
|
||||
"seen": 12,
|
||||
"decoded_ms": 153.74022
|
||||
},
|
||||
{
|
||||
"seq": 13,
|
||||
"x": 2011,
|
||||
"y": 750,
|
||||
"seen": 13,
|
||||
"decoded_ms": 122.392997
|
||||
},
|
||||
{
|
||||
"seq": 14,
|
||||
"x": 2377,
|
||||
"y": 850,
|
||||
"seen": 14,
|
||||
"decoded_ms": 211.141978
|
||||
},
|
||||
{
|
||||
"seq": 15,
|
||||
"x": 182,
|
||||
"y": 750,
|
||||
"seen": 15,
|
||||
"decoded_ms": 161.193497
|
||||
},
|
||||
{
|
||||
"seq": 16,
|
||||
"x": 548,
|
||||
"y": 850,
|
||||
"seen": 16,
|
||||
"decoded_ms": 204.8912
|
||||
},
|
||||
{
|
||||
"seq": 17,
|
||||
"x": 914,
|
||||
"y": 750,
|
||||
"seen": 17,
|
||||
"decoded_ms": 135.677069
|
||||
},
|
||||
{
|
||||
"seq": 18,
|
||||
"x": 1280,
|
||||
"y": 850,
|
||||
"seen": 18,
|
||||
"decoded_ms": 210.982152
|
||||
},
|
||||
{
|
||||
"seq": 19,
|
||||
"x": 1645,
|
||||
"y": 750,
|
||||
"seen": 19,
|
||||
"decoded_ms": 126.295068
|
||||
},
|
||||
{
|
||||
"seq": 20,
|
||||
"x": 2011,
|
||||
"y": 850,
|
||||
"seen": 20,
|
||||
"decoded_ms": 164.353012
|
||||
},
|
||||
{
|
||||
"seq": 21,
|
||||
"x": 2377,
|
||||
"y": 750,
|
||||
"seen": 21,
|
||||
"decoded_ms": 201.544444
|
||||
},
|
||||
{
|
||||
"seq": 22,
|
||||
"x": 182,
|
||||
"y": 850,
|
||||
"seen": 22,
|
||||
"decoded_ms": 201.614734
|
||||
},
|
||||
{
|
||||
"seq": 23,
|
||||
"x": 548,
|
||||
"y": 750,
|
||||
"seen": 23,
|
||||
"decoded_ms": 181.206665
|
||||
},
|
||||
{
|
||||
"seq": 24,
|
||||
"x": 914,
|
||||
"y": 850,
|
||||
"seen": 24,
|
||||
"decoded_ms": 208.485283
|
||||
},
|
||||
{
|
||||
"seq": 25,
|
||||
"x": 1280,
|
||||
"y": 750,
|
||||
"seen": 25,
|
||||
"decoded_ms": 159.208195
|
||||
},
|
||||
{
|
||||
"seq": 26,
|
||||
"x": 1645,
|
||||
"y": 850,
|
||||
"seen": 26,
|
||||
"decoded_ms": 164.559797
|
||||
},
|
||||
{
|
||||
"seq": 27,
|
||||
"x": 2011,
|
||||
"y": 750,
|
||||
"seen": 27,
|
||||
"decoded_ms": 177.386552
|
||||
},
|
||||
{
|
||||
"seq": 28,
|
||||
"x": 2377,
|
||||
"y": 850,
|
||||
"seen": 28,
|
||||
"decoded_ms": 156.205302
|
||||
}
|
||||
],
|
||||
"p50_ms": 157.7067485,
|
||||
"p95_ms": 210.982152,
|
||||
"method": "XTest click-down to unique decoded sequence; excludes USB and scanout"
|
||||
}
|
||||
@@ -0,0 +1,351 @@
|
||||
{
|
||||
"pid": 333281,
|
||||
"sent": 300,
|
||||
"elapsed": 6.029666734000784,
|
||||
"frames": [
|
||||
{
|
||||
"seq": 0,
|
||||
"t": 104512.239431477,
|
||||
"age_ms": null
|
||||
},
|
||||
{
|
||||
"seq": 1,
|
||||
"t": 104512.383192034,
|
||||
"age_ms": 144.5594520046143
|
||||
},
|
||||
{
|
||||
"seq": 4,
|
||||
"t": 104512.466121068,
|
||||
"age_ms": 177.34973100596108
|
||||
},
|
||||
{
|
||||
"seq": 7,
|
||||
"t": 104512.566346951,
|
||||
"age_ms": 227.791242999956
|
||||
},
|
||||
{
|
||||
"seq": 13,
|
||||
"t": 104512.599408487,
|
||||
"age_ms": 160.80744100327138
|
||||
},
|
||||
{
|
||||
"seq": 16,
|
||||
"t": 104512.699652746,
|
||||
"age_ms": 210.9896559995832
|
||||
},
|
||||
{
|
||||
"seq": 21,
|
||||
"t": 104512.767006974,
|
||||
"age_ms": 194.81691799592227
|
||||
},
|
||||
{
|
||||
"seq": 24,
|
||||
"t": 104512.799459786,
|
||||
"age_ms": 177.2593119967496
|
||||
},
|
||||
{
|
||||
"seq": 31,
|
||||
"t": 104512.933637389,
|
||||
"age_ms": 167.96715700183995
|
||||
},
|
||||
{
|
||||
"seq": 35,
|
||||
"t": 104513.017511149,
|
||||
"age_ms": 212.23217499209568
|
||||
},
|
||||
{
|
||||
"seq": 38,
|
||||
"t": 104513.077507896,
|
||||
"age_ms": 222.03037499275524
|
||||
},
|
||||
{
|
||||
"seq": 42,
|
||||
"t": 104513.132969697,
|
||||
"age_ms": 195.8896810101578
|
||||
},
|
||||
{
|
||||
"seq": 52,
|
||||
"t": 104513.260996184,
|
||||
"age_ms": 172.20925701258238
|
||||
},
|
||||
{
|
||||
"seq": 55,
|
||||
"t": 104513.366535776,
|
||||
"age_ms": 227.11804301070515
|
||||
},
|
||||
{
|
||||
"seq": 63,
|
||||
"t": 104513.465344117,
|
||||
"age_ms": 193.3882849989459
|
||||
},
|
||||
{
|
||||
"seq": 66,
|
||||
"t": 104513.516390558,
|
||||
"age_ms": 194.36976799624972
|
||||
},
|
||||
{
|
||||
"seq": 70,
|
||||
"t": 104513.54974114,
|
||||
"age_ms": 161.18718999496195
|
||||
},
|
||||
{
|
||||
"seq": 71,
|
||||
"t": 104513.599913142,
|
||||
"age_ms": 194.61827399209142
|
||||
},
|
||||
{
|
||||
"seq": 73,
|
||||
"t": 104513.716206753,
|
||||
"age_ms": 233.85862799477763
|
||||
},
|
||||
{
|
||||
"seq": 81,
|
||||
"t": 104513.819435121,
|
||||
"age_ms": 247.10120899544563
|
||||
},
|
||||
{
|
||||
"seq": 84,
|
||||
"t": 104513.85580132,
|
||||
"age_ms": 206.37856698886026
|
||||
},
|
||||
{
|
||||
"seq": 91,
|
||||
"t": 104513.967067338,
|
||||
"age_ms": 228.50377700524405
|
||||
},
|
||||
{
|
||||
"seq": 96,
|
||||
"t": 104513.99077197,
|
||||
"age_ms": 153.5435719997622
|
||||
},
|
||||
{
|
||||
"seq": 99,
|
||||
"t": 104514.04972977,
|
||||
"age_ms": 177.30712000047788
|
||||
},
|
||||
{
|
||||
"seq": 102,
|
||||
"t": 104514.099714514,
|
||||
"age_ms": 177.70408900105394
|
||||
},
|
||||
{
|
||||
"seq": 105,
|
||||
"t": 104514.149824094,
|
||||
"age_ms": 177.65946200233884
|
||||
},
|
||||
{
|
||||
"seq": 107,
|
||||
"t": 104514.216565505,
|
||||
"age_ms": 211.3130910001928
|
||||
},
|
||||
{
|
||||
"seq": 111,
|
||||
"t": 104514.299878954,
|
||||
"age_ms": 227.67745799501427
|
||||
},
|
||||
{
|
||||
"seq": 117,
|
||||
"t": 104514.34970561,
|
||||
"age_ms": 177.40133100596722
|
||||
},
|
||||
{
|
||||
"seq": 120,
|
||||
"t": 104514.433450736,
|
||||
"age_ms": 210.84291400620714
|
||||
},
|
||||
{
|
||||
"seq": 125,
|
||||
"t": 104514.499795178,
|
||||
"age_ms": 194.53979899117257
|
||||
},
|
||||
{
|
||||
"seq": 131,
|
||||
"t": 104514.599880169,
|
||||
"age_ms": 194.1547900059959
|
||||
},
|
||||
{
|
||||
"seq": 134,
|
||||
"t": 104514.633181748,
|
||||
"age_ms": 177.9598869907204
|
||||
},
|
||||
{
|
||||
"seq": 137,
|
||||
"t": 104514.683211993,
|
||||
"age_ms": 177.33920500904787
|
||||
},
|
||||
{
|
||||
"seq": 139,
|
||||
"t": 104514.766731654,
|
||||
"age_ms": 228.18322000966873
|
||||
},
|
||||
{
|
||||
"seq": 146,
|
||||
"t": 104514.8164396,
|
||||
"age_ms": 161.06146700622048
|
||||
},
|
||||
{
|
||||
"seq": 148,
|
||||
"t": 104514.916416666,
|
||||
"age_ms": 227.66141100146342
|
||||
},
|
||||
{
|
||||
"seq": 154,
|
||||
"t": 104514.967151008,
|
||||
"age_ms": 177.8076239861548
|
||||
},
|
||||
{
|
||||
"seq": 156,
|
||||
"t": 104515.050657538,
|
||||
"age_ms": 228.57900700182654
|
||||
},
|
||||
{
|
||||
"seq": 162,
|
||||
"t": 104515.133192794,
|
||||
"age_ms": 211.316576009267
|
||||
},
|
||||
{
|
||||
"seq": 167,
|
||||
"t": 104515.233260569,
|
||||
"age_ms": 227.95861400663853
|
||||
},
|
||||
{
|
||||
"seq": 173,
|
||||
"t": 104515.333358094,
|
||||
"age_ms": 227.58614699705504
|
||||
},
|
||||
{
|
||||
"seq": 181,
|
||||
"t": 104515.481023841,
|
||||
"age_ms": 242.47522400401067
|
||||
},
|
||||
{
|
||||
"seq": 187,
|
||||
"t": 104515.516803771,
|
||||
"age_ms": 177.49932099832222
|
||||
},
|
||||
{
|
||||
"seq": 190,
|
||||
"t": 104515.586970887,
|
||||
"age_ms": 198.40358999499585
|
||||
},
|
||||
{
|
||||
"seq": 195,
|
||||
"t": 104515.666858619,
|
||||
"age_ms": 183.13621100969613
|
||||
},
|
||||
{
|
||||
"seq": 198,
|
||||
"t": 104515.749984223,
|
||||
"age_ms": 228.0977430054918
|
||||
},
|
||||
{
|
||||
"seq": 204,
|
||||
"t": 104515.799814376,
|
||||
"age_ms": 177.78516100952402
|
||||
},
|
||||
{
|
||||
"seq": 206,
|
||||
"t": 104515.902322874,
|
||||
"age_ms": 234.46643899660558
|
||||
},
|
||||
{
|
||||
"seq": 212,
|
||||
"t": 104515.933265681,
|
||||
"age_ms": 177.80323899933137
|
||||
},
|
||||
{
|
||||
"seq": 218,
|
||||
"t": 104516.050162448,
|
||||
"age_ms": 194.68852499267086
|
||||
},
|
||||
{
|
||||
"seq": 221,
|
||||
"t": 104516.20082805,
|
||||
"age_ms": 295.25534600543324
|
||||
},
|
||||
{
|
||||
"seq": 227,
|
||||
"t": 104516.233473358,
|
||||
"age_ms": 228.16218600200955
|
||||
},
|
||||
{
|
||||
"seq": 232,
|
||||
"t": 104516.266585927,
|
||||
"age_ms": 177.10263100161683
|
||||
},
|
||||
{
|
||||
"seq": 234,
|
||||
"t": 104516.383193354,
|
||||
"age_ms": 261.2750469997991
|
||||
},
|
||||
{
|
||||
"seq": 244,
|
||||
"t": 104516.489367314,
|
||||
"age_ms": 190.34345900581684
|
||||
},
|
||||
{
|
||||
"seq": 248,
|
||||
"t": 104516.549978313,
|
||||
"age_ms": 194.10167701425962
|
||||
},
|
||||
{
|
||||
"seq": 251,
|
||||
"t": 104516.70027524,
|
||||
"age_ms": 295.0441739958478
|
||||
},
|
||||
{
|
||||
"seq": 258,
|
||||
"t": 104516.733220096,
|
||||
"age_ms": 210.86271599051543
|
||||
},
|
||||
{
|
||||
"seq": 261,
|
||||
"t": 104516.866613062,
|
||||
"age_ms": 294.4065740011865
|
||||
},
|
||||
{
|
||||
"seq": 268,
|
||||
"t": 104516.95033221,
|
||||
"age_ms": 251.20849900122266
|
||||
},
|
||||
{
|
||||
"seq": 277,
|
||||
"t": 104517.049994544,
|
||||
"age_ms": 210.87874499789905
|
||||
},
|
||||
{
|
||||
"seq": 279,
|
||||
"t": 104517.241374306,
|
||||
"age_ms": 369.3924030085327
|
||||
},
|
||||
{
|
||||
"seq": 290,
|
||||
"t": 104517.340214702,
|
||||
"age_ms": 284.98286299873143
|
||||
},
|
||||
{
|
||||
"seq": 296,
|
||||
"t": 104517.37882853,
|
||||
"age_ms": 223.49597098946106
|
||||
},
|
||||
{
|
||||
"seq": 300,
|
||||
"t": 104517.463400824,
|
||||
"age_ms": 241.15040600008797
|
||||
}
|
||||
],
|
||||
"fresh_video_updates_per_second": 12.4,
|
||||
"motion_to_decoded_marker_ms": {
|
||||
"p50": 206.37856698886026,
|
||||
"p95": 294.4065740011865,
|
||||
"maximum": 369.3924030085327
|
||||
},
|
||||
"frame_gap_ms": {
|
||||
"p50": 83.12560399645008,
|
||||
"p95": 147.66574700479396,
|
||||
"maximum": 191.3797620072728
|
||||
},
|
||||
"last_motion_seen": 300,
|
||||
"release_visible": true,
|
||||
"method": "60Hz XTest held drag to first observed unique decoded marker; no USB/scanout"
|
||||
}
|
||||
@@ -0,0 +1,421 @@
|
||||
{
|
||||
"pid": 354371,
|
||||
"sent": 300,
|
||||
"elapsed": 5.965802310995059,
|
||||
"frames": [
|
||||
{
|
||||
"seq": 0,
|
||||
"t": 106125.563317136,
|
||||
"age_ms": null
|
||||
},
|
||||
{
|
||||
"seq": 1,
|
||||
"t": 106125.714375512,
|
||||
"age_ms": 151.8925330019556
|
||||
},
|
||||
{
|
||||
"seq": 4,
|
||||
"t": 106125.749306594,
|
||||
"age_ms": 136.80098700569943
|
||||
},
|
||||
{
|
||||
"seq": 6,
|
||||
"t": 106125.821857897,
|
||||
"age_ms": 176.10760599200148
|
||||
},
|
||||
{
|
||||
"seq": 10,
|
||||
"t": 106125.878653244,
|
||||
"age_ms": 163.65532200143207
|
||||
},
|
||||
{
|
||||
"seq": 14,
|
||||
"t": 106125.941070989,
|
||||
"age_ms": 161.94938200351316
|
||||
},
|
||||
{
|
||||
"seq": 15,
|
||||
"t": 106125.973142894,
|
||||
"age_ms": 177.1826769981999
|
||||
},
|
||||
{
|
||||
"seq": 19,
|
||||
"t": 106126.037015165,
|
||||
"age_ms": 174.32379099773243
|
||||
},
|
||||
{
|
||||
"seq": 23,
|
||||
"t": 106126.091339831,
|
||||
"age_ms": 161.95229899312835
|
||||
},
|
||||
{
|
||||
"seq": 27,
|
||||
"t": 106126.161715324,
|
||||
"age_ms": 165.82442399521824
|
||||
},
|
||||
{
|
||||
"seq": 30,
|
||||
"t": 106126.243443236,
|
||||
"age_ms": 197.618082005647
|
||||
},
|
||||
{
|
||||
"seq": 35,
|
||||
"t": 106126.292928912,
|
||||
"age_ms": 163.7372799887089
|
||||
},
|
||||
{
|
||||
"seq": 38,
|
||||
"t": 106126.393147834,
|
||||
"age_ms": 214.06423900043592
|
||||
},
|
||||
{
|
||||
"seq": 40,
|
||||
"t": 106126.460498776,
|
||||
"age_ms": 246.99188499653246
|
||||
},
|
||||
{
|
||||
"seq": 45,
|
||||
"t": 106126.506483739,
|
||||
"age_ms": 210.74756600137334
|
||||
},
|
||||
{
|
||||
"seq": 49,
|
||||
"t": 106126.558515346,
|
||||
"age_ms": 195.6083539989777
|
||||
},
|
||||
{
|
||||
"seq": 54,
|
||||
"t": 106126.611094405,
|
||||
"age_ms": 165.05193199554924
|
||||
},
|
||||
{
|
||||
"seq": 56,
|
||||
"t": 106126.660565498,
|
||||
"age_ms": 180.8705959992949
|
||||
},
|
||||
{
|
||||
"seq": 60,
|
||||
"t": 106126.757307082,
|
||||
"age_ms": 211.40385000035167
|
||||
},
|
||||
{
|
||||
"seq": 65,
|
||||
"t": 106126.816025658,
|
||||
"age_ms": 186.94115499965847
|
||||
},
|
||||
{
|
||||
"seq": 70,
|
||||
"t": 106126.877746619,
|
||||
"age_ms": 165.35134500009008
|
||||
},
|
||||
{
|
||||
"seq": 71,
|
||||
"t": 106126.921906811,
|
||||
"age_ms": 192.67438499082346
|
||||
},
|
||||
{
|
||||
"seq": 74,
|
||||
"t": 106126.96888068,
|
||||
"age_ms": 189.77524900401477
|
||||
},
|
||||
{
|
||||
"seq": 77,
|
||||
"t": 106127.017848945,
|
||||
"age_ms": 188.69784400158096
|
||||
},
|
||||
{
|
||||
"seq": 81,
|
||||
"t": 106127.074083131,
|
||||
"age_ms": 178.1332079990534
|
||||
},
|
||||
{
|
||||
"seq": 84,
|
||||
"t": 106127.171377709,
|
||||
"age_ms": 225.33719999773894
|
||||
},
|
||||
{
|
||||
"seq": 90,
|
||||
"t": 106127.218476994,
|
||||
"age_ms": 172.71351600356866
|
||||
},
|
||||
{
|
||||
"seq": 94,
|
||||
"t": 106127.282473805,
|
||||
"age_ms": 169.98646200227086
|
||||
},
|
||||
{
|
||||
"seq": 98,
|
||||
"t": 106127.368655127,
|
||||
"age_ms": 189.55737599753775
|
||||
},
|
||||
{
|
||||
"seq": 102,
|
||||
"t": 106127.432980935,
|
||||
"age_ms": 187.2170679998817
|
||||
},
|
||||
{
|
||||
"seq": 106,
|
||||
"t": 106127.515914292,
|
||||
"age_ms": 203.32652000070084
|
||||
},
|
||||
{
|
||||
"seq": 111,
|
||||
"t": 106127.567239198,
|
||||
"age_ms": 171.3380310102366
|
||||
},
|
||||
{
|
||||
"seq": 115,
|
||||
"t": 106127.631536423,
|
||||
"age_ms": 169.0268889942672
|
||||
},
|
||||
{
|
||||
"seq": 120,
|
||||
"t": 106127.707620062,
|
||||
"age_ms": 161.641385013354
|
||||
},
|
||||
{
|
||||
"seq": 127,
|
||||
"t": 106127.815789315,
|
||||
"age_ms": 153.22135100723244
|
||||
},
|
||||
{
|
||||
"seq": 130,
|
||||
"t": 106127.874282727,
|
||||
"age_ms": 161.84380000049714
|
||||
},
|
||||
{
|
||||
"seq": 133,
|
||||
"t": 106127.931842816,
|
||||
"age_ms": 169.38884400587995
|
||||
},
|
||||
{
|
||||
"seq": 138,
|
||||
"t": 106128.013466603,
|
||||
"age_ms": 167.70273601287045
|
||||
},
|
||||
{
|
||||
"seq": 141,
|
||||
"t": 106128.044233606,
|
||||
"age_ms": 148.4322359901853
|
||||
},
|
||||
{
|
||||
"seq": 145,
|
||||
"t": 106128.137089648,
|
||||
"age_ms": 174.65745299705304
|
||||
},
|
||||
{
|
||||
"seq": 149,
|
||||
"t": 106128.197354332,
|
||||
"age_ms": 168.1769810093101
|
||||
},
|
||||
{
|
||||
"seq": 153,
|
||||
"t": 106128.277546344,
|
||||
"age_ms": 181.73671000113245
|
||||
},
|
||||
{
|
||||
"seq": 154,
|
||||
"t": 106128.331110642,
|
||||
"age_ms": 218.22410900495015
|
||||
},
|
||||
{
|
||||
"seq": 160,
|
||||
"t": 106128.405224969,
|
||||
"age_ms": 192.82984000165015
|
||||
},
|
||||
{
|
||||
"seq": 164,
|
||||
"t": 106128.511843363,
|
||||
"age_ms": 232.710953001515
|
||||
},
|
||||
{
|
||||
"seq": 165,
|
||||
"t": 106128.549592498,
|
||||
"age_ms": 253.84868300170638
|
||||
},
|
||||
{
|
||||
"seq": 171,
|
||||
"t": 106128.594834178,
|
||||
"age_ms": 198.86777600913774
|
||||
},
|
||||
{
|
||||
"seq": 177,
|
||||
"t": 106128.66914042,
|
||||
"age_ms": 173.21013599575963
|
||||
},
|
||||
{
|
||||
"seq": 180,
|
||||
"t": 106128.731889494,
|
||||
"age_ms": 185.88008199003525
|
||||
},
|
||||
{
|
||||
"seq": 183,
|
||||
"t": 106128.790431905,
|
||||
"age_ms": 194.43107300321572
|
||||
},
|
||||
{
|
||||
"seq": 187,
|
||||
"t": 106128.853490435,
|
||||
"age_ms": 190.642948000459
|
||||
},
|
||||
{
|
||||
"seq": 191,
|
||||
"t": 106128.922401651,
|
||||
"age_ms": 192.91196500125807
|
||||
},
|
||||
{
|
||||
"seq": 192,
|
||||
"t": 106129.000728766,
|
||||
"age_ms": 254.81375599338207
|
||||
},
|
||||
{
|
||||
"seq": 197,
|
||||
"t": 106129.046423399,
|
||||
"age_ms": 216.86658200633246
|
||||
},
|
||||
{
|
||||
"seq": 201,
|
||||
"t": 106129.163282474,
|
||||
"age_ms": 267.04729099583346
|
||||
},
|
||||
{
|
||||
"seq": 207,
|
||||
"t": 106129.245888292,
|
||||
"age_ms": 249.72814400098287
|
||||
},
|
||||
{
|
||||
"seq": 210,
|
||||
"t": 106129.277642284,
|
||||
"age_ms": 230.3109369968297
|
||||
},
|
||||
{
|
||||
"seq": 213,
|
||||
"t": 106129.322393093,
|
||||
"age_ms": 226.60680899571162
|
||||
},
|
||||
{
|
||||
"seq": 218,
|
||||
"t": 106129.408518708,
|
||||
"age_ms": 229.4254459993681
|
||||
},
|
||||
{
|
||||
"seq": 224,
|
||||
"t": 106129.495256232,
|
||||
"age_ms": 216.1567969887983
|
||||
},
|
||||
{
|
||||
"seq": 228,
|
||||
"t": 106129.536706286,
|
||||
"age_ms": 190.93461100419518
|
||||
},
|
||||
{
|
||||
"seq": 230,
|
||||
"t": 106129.586514541,
|
||||
"age_ms": 207.26135199947748
|
||||
},
|
||||
{
|
||||
"seq": 235,
|
||||
"t": 106129.648752037,
|
||||
"age_ms": 186.0731630004011
|
||||
},
|
||||
{
|
||||
"seq": 238,
|
||||
"t": 106129.708485019,
|
||||
"age_ms": 195.9757230069954
|
||||
},
|
||||
{
|
||||
"seq": 243,
|
||||
"t": 106129.772917867,
|
||||
"age_ms": 177.09225999715272
|
||||
},
|
||||
{
|
||||
"seq": 246,
|
||||
"t": 106129.827104283,
|
||||
"age_ms": 181.23534000187647
|
||||
},
|
||||
{
|
||||
"seq": 250,
|
||||
"t": 106129.91438226,
|
||||
"age_ms": 201.94811699911952
|
||||
},
|
||||
{
|
||||
"seq": 256,
|
||||
"t": 106129.970676528,
|
||||
"age_ms": 158.1014629919082
|
||||
},
|
||||
{
|
||||
"seq": 258,
|
||||
"t": 106130.02146594,
|
||||
"age_ms": 175.6849829980638
|
||||
},
|
||||
{
|
||||
"seq": 262,
|
||||
"t": 106130.103489306,
|
||||
"age_ms": 190.86286099627614
|
||||
},
|
||||
{
|
||||
"seq": 263,
|
||||
"t": 106130.151932284,
|
||||
"age_ms": 222.61918500589672
|
||||
},
|
||||
{
|
||||
"seq": 270,
|
||||
"t": 106130.214829523,
|
||||
"age_ms": 169.0382619999582
|
||||
},
|
||||
{
|
||||
"seq": 273,
|
||||
"t": 106130.266302302,
|
||||
"age_ms": 162.1599609934492
|
||||
},
|
||||
{
|
||||
"seq": 276,
|
||||
"t": 106130.326758901,
|
||||
"age_ms": 180.80601100518834
|
||||
},
|
||||
{
|
||||
"seq": 281,
|
||||
"t": 106130.390516547,
|
||||
"age_ms": 161.41096901264973
|
||||
},
|
||||
{
|
||||
"seq": 284,
|
||||
"t": 106130.443561976,
|
||||
"age_ms": 164.49706100684125
|
||||
},
|
||||
{
|
||||
"seq": 289,
|
||||
"t": 106130.503064543,
|
||||
"age_ms": 140.13586498913355
|
||||
},
|
||||
{
|
||||
"seq": 292,
|
||||
"t": 106130.579826008,
|
||||
"age_ms": 167.37519700836856
|
||||
},
|
||||
{
|
||||
"seq": 295,
|
||||
"t": 106130.61713619,
|
||||
"age_ms": 154.48571099841502
|
||||
},
|
||||
{
|
||||
"seq": 300,
|
||||
"t": 106130.723035424,
|
||||
"age_ms": 177.01467699953355
|
||||
}
|
||||
],
|
||||
"fresh_video_updates_per_second": 15.4,
|
||||
"motion_to_decoded_marker_ms": {
|
||||
"p50": 181.23534000187647,
|
||||
"p95": 249.72814400098287,
|
||||
"maximum": 267.04729099583346
|
||||
},
|
||||
"frame_gap_ms": {
|
||||
"p50": 61.72096099180635,
|
||||
"p95": 106.61839399836026,
|
||||
"maximum": 151.05837601004168
|
||||
},
|
||||
"last_motion_seen": 300,
|
||||
"release_visible": true,
|
||||
"method": "60Hz XTest held drag to first observed unique decoded marker; no USB/scanout"
|
||||
}
|
||||
@@ -0,0 +1,391 @@
|
||||
{
|
||||
"pid": 34534,
|
||||
"sent": 300,
|
||||
"elapsed": 6.0406107769999835,
|
||||
"frames": [
|
||||
{
|
||||
"seq": 0,
|
||||
"t": 3431.244445763,
|
||||
"age_ms": null
|
||||
},
|
||||
{
|
||||
"seq": 4,
|
||||
"t": 3431.461263847,
|
||||
"age_ms": 172.3552179996659
|
||||
},
|
||||
{
|
||||
"seq": 6,
|
||||
"t": 3431.493808798,
|
||||
"age_ms": 172.23155600004247
|
||||
},
|
||||
{
|
||||
"seq": 9,
|
||||
"t": 3431.577781054,
|
||||
"age_ms": 206.21495099976528
|
||||
},
|
||||
{
|
||||
"seq": 14,
|
||||
"t": 3431.602662177,
|
||||
"age_ms": 140.2410420000706
|
||||
},
|
||||
{
|
||||
"seq": 18,
|
||||
"t": 3431.710441389,
|
||||
"age_ms": 188.83929000003263
|
||||
},
|
||||
{
|
||||
"seq": 23,
|
||||
"t": 3431.793798835,
|
||||
"age_ms": 182.29074999999284
|
||||
},
|
||||
{
|
||||
"seq": 27,
|
||||
"t": 3431.860748916,
|
||||
"age_ms": 189.01282399974662
|
||||
},
|
||||
{
|
||||
"seq": 31,
|
||||
"t": 3431.943923787,
|
||||
"age_ms": 205.59285100034685
|
||||
},
|
||||
{
|
||||
"seq": 36,
|
||||
"t": 3431.990334328,
|
||||
"age_ms": 168.25775099960083
|
||||
},
|
||||
{
|
||||
"seq": 39,
|
||||
"t": 3432.077464922,
|
||||
"age_ms": 205.77047000006132
|
||||
},
|
||||
{
|
||||
"seq": 45,
|
||||
"t": 3432.143944271,
|
||||
"age_ms": 171.88419499962038
|
||||
},
|
||||
{
|
||||
"seq": 46,
|
||||
"t": 3432.193929341,
|
||||
"age_ms": 201.2387290001243
|
||||
},
|
||||
{
|
||||
"seq": 51,
|
||||
"t": 3432.277223499,
|
||||
"age_ms": 198.89731899957042
|
||||
},
|
||||
{
|
||||
"seq": 56,
|
||||
"t": 3432.326931788,
|
||||
"age_ms": 171.98773299969616
|
||||
},
|
||||
{
|
||||
"seq": 60,
|
||||
"t": 3432.443708278,
|
||||
"age_ms": 222.12767100018027
|
||||
},
|
||||
{
|
||||
"seq": 61,
|
||||
"t": 3432.493954963,
|
||||
"age_ms": 255.37493000001632
|
||||
},
|
||||
{
|
||||
"seq": 67,
|
||||
"t": 3432.523106796,
|
||||
"age_ms": 184.65374399966095
|
||||
},
|
||||
{
|
||||
"seq": 71,
|
||||
"t": 3432.593761192,
|
||||
"age_ms": 188.33385199968689
|
||||
},
|
||||
{
|
||||
"seq": 73,
|
||||
"t": 3432.644055417,
|
||||
"age_ms": 199.60400099989783
|
||||
},
|
||||
{
|
||||
"seq": 76,
|
||||
"t": 3432.710660178,
|
||||
"age_ms": 215.88566300033563
|
||||
},
|
||||
{
|
||||
"seq": 80,
|
||||
"t": 3432.777038614,
|
||||
"age_ms": 222.14312899996003
|
||||
},
|
||||
{
|
||||
"seq": 83,
|
||||
"t": 3432.843847534,
|
||||
"age_ms": 238.76107099977162
|
||||
},
|
||||
{
|
||||
"seq": 87,
|
||||
"t": 3432.894341543,
|
||||
"age_ms": 222.06788299990876
|
||||
},
|
||||
{
|
||||
"seq": 91,
|
||||
"t": 3432.944063248,
|
||||
"age_ms": 205.58497799993347
|
||||
},
|
||||
{
|
||||
"seq": 95,
|
||||
"t": 3432.976939229,
|
||||
"age_ms": 171.92502799980502
|
||||
},
|
||||
{
|
||||
"seq": 98,
|
||||
"t": 3433.060685162,
|
||||
"age_ms": 205.7812630000626
|
||||
},
|
||||
{
|
||||
"seq": 101,
|
||||
"t": 3433.144084025,
|
||||
"age_ms": 239.19068100030927
|
||||
},
|
||||
{
|
||||
"seq": 107,
|
||||
"t": 3433.194192174,
|
||||
"age_ms": 189.06940799979566
|
||||
},
|
||||
{
|
||||
"seq": 112,
|
||||
"t": 3433.277305798,
|
||||
"age_ms": 189.0250759997798
|
||||
},
|
||||
{
|
||||
"seq": 116,
|
||||
"t": 3433.343900936,
|
||||
"age_ms": 188.48463999984233
|
||||
},
|
||||
{
|
||||
"seq": 120,
|
||||
"t": 3433.394165412,
|
||||
"age_ms": 172.6255849998779
|
||||
},
|
||||
{
|
||||
"seq": 125,
|
||||
"t": 3433.493910977,
|
||||
"age_ms": 188.51992999998402
|
||||
},
|
||||
{
|
||||
"seq": 130,
|
||||
"t": 3433.577120848,
|
||||
"age_ms": 181.59982199995284
|
||||
},
|
||||
{
|
||||
"seq": 131,
|
||||
"t": 3433.610360523,
|
||||
"age_ms": 183.59445299984145
|
||||
},
|
||||
{
|
||||
"seq": 138,
|
||||
"t": 3433.693979586,
|
||||
"age_ms": 172.39284399965982
|
||||
},
|
||||
{
|
||||
"seq": 142,
|
||||
"t": 3433.794087387,
|
||||
"age_ms": 205.4382760002227
|
||||
},
|
||||
{
|
||||
"seq": 146,
|
||||
"t": 3433.860823978,
|
||||
"age_ms": 205.23615999991307
|
||||
},
|
||||
{
|
||||
"seq": 152,
|
||||
"t": 3433.944030349,
|
||||
"age_ms": 189.14144800010035
|
||||
},
|
||||
{
|
||||
"seq": 156,
|
||||
"t": 3433.993801053,
|
||||
"age_ms": 172.22631000004185
|
||||
},
|
||||
{
|
||||
"seq": 161,
|
||||
"t": 3434.060665388,
|
||||
"age_ms": 155.32808699981615
|
||||
},
|
||||
{
|
||||
"seq": 164,
|
||||
"t": 3434.160480952,
|
||||
"age_ms": 204.94625599985739
|
||||
},
|
||||
{
|
||||
"seq": 168,
|
||||
"t": 3434.227263041,
|
||||
"age_ms": 205.68851899997753
|
||||
},
|
||||
{
|
||||
"seq": 172,
|
||||
"t": 3434.310492745,
|
||||
"age_ms": 222.25396299973
|
||||
},
|
||||
{
|
||||
"seq": 175,
|
||||
"t": 3434.377123464,
|
||||
"age_ms": 215.89412399998764
|
||||
},
|
||||
{
|
||||
"seq": 182,
|
||||
"t": 3434.477372428,
|
||||
"age_ms": 222.4764959996719
|
||||
},
|
||||
{
|
||||
"seq": 187,
|
||||
"t": 3434.560593674,
|
||||
"age_ms": 222.19475699967006
|
||||
},
|
||||
{
|
||||
"seq": 192,
|
||||
"t": 3434.6106537,
|
||||
"age_ms": 189.07553500002905
|
||||
},
|
||||
{
|
||||
"seq": 197,
|
||||
"t": 3434.710504554,
|
||||
"age_ms": 205.62785500032987
|
||||
},
|
||||
{
|
||||
"seq": 198,
|
||||
"t": 3434.760702824,
|
||||
"age_ms": 238.46066999976756
|
||||
},
|
||||
{
|
||||
"seq": 202,
|
||||
"t": 3434.827379917,
|
||||
"age_ms": 217.65514000026087
|
||||
},
|
||||
{
|
||||
"seq": 209,
|
||||
"t": 3434.933724479,
|
||||
"age_ms": 222.29071099991415
|
||||
},
|
||||
{
|
||||
"seq": 213,
|
||||
"t": 3435.027398947,
|
||||
"age_ms": 255.79841900025713
|
||||
},
|
||||
{
|
||||
"seq": 217,
|
||||
"t": 3435.077319854,
|
||||
"age_ms": 239.01306700008718
|
||||
},
|
||||
{
|
||||
"seq": 223,
|
||||
"t": 3435.144122359,
|
||||
"age_ms": 199.344432000089
|
||||
},
|
||||
{
|
||||
"seq": 229,
|
||||
"t": 3435.260626155,
|
||||
"age_ms": 222.42049999977098
|
||||
},
|
||||
{
|
||||
"seq": 232,
|
||||
"t": 3435.294209983,
|
||||
"age_ms": 205.85418000018763
|
||||
},
|
||||
{
|
||||
"seq": 237,
|
||||
"t": 3435.394271997,
|
||||
"age_ms": 222.29362999996738
|
||||
},
|
||||
{
|
||||
"seq": 241,
|
||||
"t": 3435.443899206,
|
||||
"age_ms": 184.16872499983583
|
||||
},
|
||||
{
|
||||
"seq": 246,
|
||||
"t": 3435.527625017,
|
||||
"age_ms": 205.94575999984954
|
||||
},
|
||||
{
|
||||
"seq": 247,
|
||||
"t": 3435.547092141,
|
||||
"age_ms": 208.79844199998843
|
||||
},
|
||||
{
|
||||
"seq": 253,
|
||||
"t": 3435.660602676,
|
||||
"age_ms": 215.84337800004505
|
||||
},
|
||||
{
|
||||
"seq": 256,
|
||||
"t": 3435.727331976,
|
||||
"age_ms": 238.4364640001877
|
||||
},
|
||||
{
|
||||
"seq": 258,
|
||||
"t": 3435.777296048,
|
||||
"age_ms": 248.30200099995636
|
||||
},
|
||||
{
|
||||
"seq": 264,
|
||||
"t": 3435.827309993,
|
||||
"age_ms": 205.18891500023528
|
||||
},
|
||||
{
|
||||
"seq": 266,
|
||||
"t": 3435.927812406,
|
||||
"age_ms": 266.4240100002644
|
||||
},
|
||||
{
|
||||
"seq": 268,
|
||||
"t": 3435.977364952,
|
||||
"age_ms": 288.6516519997713
|
||||
},
|
||||
{
|
||||
"seq": 277,
|
||||
"t": 3436.027469019,
|
||||
"age_ms": 188.94575100011934
|
||||
},
|
||||
{
|
||||
"seq": 280,
|
||||
"t": 3436.110579437,
|
||||
"age_ms": 221.74765199997637
|
||||
},
|
||||
{
|
||||
"seq": 286,
|
||||
"t": 3436.177311071,
|
||||
"age_ms": 188.751800999853
|
||||
},
|
||||
{
|
||||
"seq": 290,
|
||||
"t": 3436.244002164,
|
||||
"age_ms": 188.9267930000642
|
||||
},
|
||||
{
|
||||
"seq": 295,
|
||||
"t": 3436.287856347,
|
||||
"age_ms": 149.54923000004783
|
||||
},
|
||||
{
|
||||
"seq": 297,
|
||||
"t": 3436.367445318,
|
||||
"age_ms": 189.14145200005805
|
||||
},
|
||||
{
|
||||
"seq": 300,
|
||||
"t": 3436.473359398,
|
||||
"age_ms": 230.2628239999649
|
||||
}
|
||||
],
|
||||
"fresh_video_updates_per_second": 14.0,
|
||||
"motion_to_decoded_marker_ms": {
|
||||
"p50": 205.23615999991307,
|
||||
"p95": 255.37493000001632,
|
||||
"maximum": 288.6516519997713
|
||||
},
|
||||
"frame_gap_ms": {
|
||||
"p50": 66.78208899984384,
|
||||
"p95": 113.51053499993213,
|
||||
"maximum": 216.81808399989677
|
||||
},
|
||||
"last_motion_seen": 300,
|
||||
"release_visible": true,
|
||||
"method": "60Hz XTest held drag to first observed unique decoded marker; no USB/scanout"
|
||||
}
|
||||
@@ -0,0 +1,391 @@
|
||||
{
|
||||
"pid": 36868,
|
||||
"sent": 300,
|
||||
"elapsed": 5.9589984410004035,
|
||||
"frames": [
|
||||
{
|
||||
"seq": 0,
|
||||
"t": 3640.386110834,
|
||||
"age_ms": null
|
||||
},
|
||||
{
|
||||
"seq": 1,
|
||||
"t": 3640.519373332,
|
||||
"age_ms": 134.4022890002634
|
||||
},
|
||||
{
|
||||
"seq": 3,
|
||||
"t": 3640.602775811,
|
||||
"age_ms": 180.1231290000942
|
||||
},
|
||||
{
|
||||
"seq": 7,
|
||||
"t": 3640.686827223,
|
||||
"age_ms": 202.1667660001185
|
||||
},
|
||||
{
|
||||
"seq": 12,
|
||||
"t": 3640.719559755,
|
||||
"age_ms": 151.21741299981295
|
||||
},
|
||||
{
|
||||
"seq": 16,
|
||||
"t": 3640.886160553,
|
||||
"age_ms": 251.06752900001084
|
||||
},
|
||||
{
|
||||
"seq": 21,
|
||||
"t": 3640.952684036,
|
||||
"age_ms": 232.05332099996667
|
||||
},
|
||||
{
|
||||
"seq": 28,
|
||||
"t": 3641.019270224,
|
||||
"age_ms": 184.72633300007146
|
||||
},
|
||||
{
|
||||
"seq": 31,
|
||||
"t": 3641.08601974,
|
||||
"age_ms": 197.41423599998598
|
||||
},
|
||||
{
|
||||
"seq": 33,
|
||||
"t": 3641.136477653,
|
||||
"age_ms": 218.50386699998126
|
||||
},
|
||||
{
|
||||
"seq": 39,
|
||||
"t": 3641.253744581,
|
||||
"age_ms": 233.55622400003995
|
||||
},
|
||||
{
|
||||
"seq": 44,
|
||||
"t": 3641.302773964,
|
||||
"age_ms": 201.0841410001376
|
||||
},
|
||||
{
|
||||
"seq": 48,
|
||||
"t": 3641.352620567,
|
||||
"age_ms": 184.09052300012263
|
||||
},
|
||||
{
|
||||
"seq": 54,
|
||||
"t": 3641.419806983,
|
||||
"age_ms": 151.48398700011967
|
||||
},
|
||||
{
|
||||
"seq": 58,
|
||||
"t": 3641.469275309,
|
||||
"age_ms": 134.2054219999227
|
||||
},
|
||||
{
|
||||
"seq": 61,
|
||||
"t": 3641.550360582,
|
||||
"age_ms": 165.7757049997599
|
||||
},
|
||||
{
|
||||
"seq": 66,
|
||||
"t": 3641.602734675,
|
||||
"age_ms": 132.61152300037793
|
||||
},
|
||||
{
|
||||
"seq": 68,
|
||||
"t": 3641.669524731,
|
||||
"age_ms": 168.2404889997997
|
||||
},
|
||||
{
|
||||
"seq": 72,
|
||||
"t": 3641.735955758,
|
||||
"age_ms": 168.02757899995413
|
||||
},
|
||||
{
|
||||
"seq": 76,
|
||||
"t": 3641.825930701,
|
||||
"age_ms": 191.08063799967567
|
||||
},
|
||||
{
|
||||
"seq": 80,
|
||||
"t": 3641.886014715,
|
||||
"age_ms": 184.69220999986646
|
||||
},
|
||||
{
|
||||
"seq": 84,
|
||||
"t": 3641.942853183,
|
||||
"age_ms": 174.62308499989376
|
||||
},
|
||||
{
|
||||
"seq": 88,
|
||||
"t": 3642.01955662,
|
||||
"age_ms": 180.3497470000366
|
||||
},
|
||||
{
|
||||
"seq": 92,
|
||||
"t": 3642.069425098,
|
||||
"age_ms": 168.1019530001322
|
||||
},
|
||||
{
|
||||
"seq": 97,
|
||||
"t": 3642.151479252,
|
||||
"age_ms": 166.5138860003026
|
||||
},
|
||||
{
|
||||
"seq": 102,
|
||||
"t": 3642.236618834,
|
||||
"age_ms": 166.25868800019816
|
||||
},
|
||||
{
|
||||
"seq": 104,
|
||||
"t": 3642.303523803,
|
||||
"age_ms": 202.06527200025448
|
||||
},
|
||||
{
|
||||
"seq": 110,
|
||||
"t": 3642.383756275,
|
||||
"age_ms": 181.81065099997795
|
||||
},
|
||||
{
|
||||
"seq": 114,
|
||||
"t": 3642.452824163,
|
||||
"age_ms": 184.7937060001641
|
||||
},
|
||||
{
|
||||
"seq": 115,
|
||||
"t": 3642.502808136,
|
||||
"age_ms": 200.88727400025164
|
||||
},
|
||||
{
|
||||
"seq": 122,
|
||||
"t": 3642.56962765,
|
||||
"age_ms": 168.23873899966202
|
||||
},
|
||||
{
|
||||
"seq": 126,
|
||||
"t": 3642.636211214,
|
||||
"age_ms": 168.06987100017068
|
||||
},
|
||||
{
|
||||
"seq": 130,
|
||||
"t": 3642.736057248,
|
||||
"age_ms": 201.29267600032108
|
||||
},
|
||||
{
|
||||
"seq": 133,
|
||||
"t": 3642.786491538,
|
||||
"age_ms": 201.8608220000715
|
||||
},
|
||||
{
|
||||
"seq": 138,
|
||||
"t": 3642.869465575,
|
||||
"age_ms": 201.49245999982668
|
||||
},
|
||||
{
|
||||
"seq": 142,
|
||||
"t": 3642.936706531,
|
||||
"age_ms": 199.6734029999061
|
||||
},
|
||||
{
|
||||
"seq": 147,
|
||||
"t": 3642.970636602,
|
||||
"age_ms": 152.74627400003737
|
||||
},
|
||||
{
|
||||
"seq": 151,
|
||||
"t": 3643.103158296,
|
||||
"age_ms": 218.58144999987417
|
||||
},
|
||||
{
|
||||
"seq": 155,
|
||||
"t": 3643.186588192,
|
||||
"age_ms": 217.62627699990844
|
||||
},
|
||||
{
|
||||
"seq": 161,
|
||||
"t": 3643.219949826,
|
||||
"age_ms": 168.2127830003992
|
||||
},
|
||||
{
|
||||
"seq": 166,
|
||||
"t": 3643.386168849,
|
||||
"age_ms": 248.8666980002563
|
||||
},
|
||||
{
|
||||
"seq": 167,
|
||||
"t": 3643.419431903,
|
||||
"age_ms": 267.89432299983673
|
||||
},
|
||||
{
|
||||
"seq": 172,
|
||||
"t": 3643.469876985,
|
||||
"age_ms": 235.0979190000544
|
||||
},
|
||||
{
|
||||
"seq": 174,
|
||||
"t": 3643.536069147,
|
||||
"age_ms": 264.59336400012035
|
||||
},
|
||||
{
|
||||
"seq": 181,
|
||||
"t": 3643.586186115,
|
||||
"age_ms": 199.1352990003179
|
||||
},
|
||||
{
|
||||
"seq": 184,
|
||||
"t": 3643.652388194,
|
||||
"age_ms": 217.85114400017846
|
||||
},
|
||||
{
|
||||
"seq": 188,
|
||||
"t": 3643.719702647,
|
||||
"age_ms": 218.2440039996436
|
||||
},
|
||||
{
|
||||
"seq": 191,
|
||||
"t": 3643.769954944,
|
||||
"age_ms": 218.46157999971183
|
||||
},
|
||||
{
|
||||
"seq": 196,
|
||||
"t": 3643.836222937,
|
||||
"age_ms": 201.32009300004938
|
||||
},
|
||||
{
|
||||
"seq": 201,
|
||||
"t": 3643.90293833,
|
||||
"age_ms": 182.37821499997153
|
||||
},
|
||||
{
|
||||
"seq": 206,
|
||||
"t": 3643.969618141,
|
||||
"age_ms": 167.77938299992456
|
||||
},
|
||||
{
|
||||
"seq": 210,
|
||||
"t": 3644.069398845,
|
||||
"age_ms": 201.0048139995888
|
||||
},
|
||||
{
|
||||
"seq": 214,
|
||||
"t": 3644.13643331,
|
||||
"age_ms": 201.597750000019
|
||||
},
|
||||
{
|
||||
"seq": 220,
|
||||
"t": 3644.252838979,
|
||||
"age_ms": 218.2553799998459
|
||||
},
|
||||
{
|
||||
"seq": 227,
|
||||
"t": 3644.319017434,
|
||||
"age_ms": 167.78171700025268
|
||||
},
|
||||
{
|
||||
"seq": 228,
|
||||
"t": 3644.386198309,
|
||||
"age_ms": 217.88031100004446
|
||||
},
|
||||
{
|
||||
"seq": 231,
|
||||
"t": 3644.486060386,
|
||||
"age_ms": 268.07806900023934
|
||||
},
|
||||
{
|
||||
"seq": 234,
|
||||
"t": 3644.536142939,
|
||||
"age_ms": 233.4952709998106
|
||||
},
|
||||
{
|
||||
"seq": 242,
|
||||
"t": 3644.569764438,
|
||||
"age_ms": 168.36531900025875
|
||||
},
|
||||
{
|
||||
"seq": 245,
|
||||
"t": 3644.653021966,
|
||||
"age_ms": 201.83865799981504
|
||||
},
|
||||
{
|
||||
"seq": 247,
|
||||
"t": 3644.703262597,
|
||||
"age_ms": 216.3491179999255
|
||||
},
|
||||
{
|
||||
"seq": 250,
|
||||
"t": 3644.722097729,
|
||||
"age_ms": 185.04074099973877
|
||||
},
|
||||
{
|
||||
"seq": 251,
|
||||
"t": 3644.836617552,
|
||||
"age_ms": 267.9818219999106
|
||||
},
|
||||
{
|
||||
"seq": 258,
|
||||
"t": 3644.953858233,
|
||||
"age_ms": 285.3023870002289
|
||||
},
|
||||
{
|
||||
"seq": 263,
|
||||
"t": 3644.98666922,
|
||||
"age_ms": 235.29682999969737
|
||||
},
|
||||
{
|
||||
"seq": 267,
|
||||
"t": 3645.036247501,
|
||||
"age_ms": 198.78414699996938
|
||||
},
|
||||
{
|
||||
"seq": 270,
|
||||
"t": 3645.069559845,
|
||||
"age_ms": 201.00598099998024
|
||||
},
|
||||
{
|
||||
"seq": 274,
|
||||
"t": 3645.136220116,
|
||||
"age_ms": 184.05027900007553
|
||||
},
|
||||
{
|
||||
"seq": 279,
|
||||
"t": 3645.219745967,
|
||||
"age_ms": 184.3165600002976
|
||||
},
|
||||
{
|
||||
"seq": 283,
|
||||
"t": 3645.26959578,
|
||||
"age_ms": 185.01186799994684
|
||||
},
|
||||
{
|
||||
"seq": 288,
|
||||
"t": 3645.353489409,
|
||||
"age_ms": 185.59401299989986
|
||||
},
|
||||
{
|
||||
"seq": 292,
|
||||
"t": 3645.412158018,
|
||||
"age_ms": 177.5848520001091
|
||||
},
|
||||
{
|
||||
"seq": 296,
|
||||
"t": 3645.48232895,
|
||||
"age_ms": 180.9187710000515
|
||||
},
|
||||
{
|
||||
"seq": 300,
|
||||
"t": 3645.539078755,
|
||||
"age_ms": 171.13896699993347
|
||||
}
|
||||
],
|
||||
"fresh_video_updates_per_second": 14.2,
|
||||
"motion_to_decoded_marker_ms": {
|
||||
"p50": 197.41423599998598,
|
||||
"p95": 267.89432299983673,
|
||||
"maximum": 285.3023870002289
|
||||
},
|
||||
"frame_gap_ms": {
|
||||
"p50": 66.67981100008546,
|
||||
"p95": 132.52169399993363,
|
||||
"maximum": 166.60079800021776
|
||||
},
|
||||
"last_motion_seen": 300,
|
||||
"release_visible": true,
|
||||
"method": "60Hz XTest held drag to first observed unique decoded marker; no USB/scanout"
|
||||
}
|
||||
@@ -0,0 +1,441 @@
|
||||
{
|
||||
"pid": 35562,
|
||||
"sent": 300,
|
||||
"elapsed": 6.017804186000376,
|
||||
"frames": [
|
||||
{
|
||||
"seq": 0,
|
||||
"t": 3536.620144655,
|
||||
"age_ms": null
|
||||
},
|
||||
{
|
||||
"seq": 1,
|
||||
"t": 3536.814883409,
|
||||
"age_ms": 196.04478799965364
|
||||
},
|
||||
{
|
||||
"seq": 5,
|
||||
"t": 3536.865073259,
|
||||
"age_ms": 167.73844199997257
|
||||
},
|
||||
{
|
||||
"seq": 10,
|
||||
"t": 3536.948258403,
|
||||
"age_ms": 179.12438700022904
|
||||
},
|
||||
{
|
||||
"seq": 13,
|
||||
"t": 3537.015249368,
|
||||
"age_ms": 196.2264909998339
|
||||
},
|
||||
{
|
||||
"seq": 17,
|
||||
"t": 3537.097523087,
|
||||
"age_ms": 211.9371039998441
|
||||
},
|
||||
{
|
||||
"seq": 21,
|
||||
"t": 3537.164810374,
|
||||
"age_ms": 212.40958599992155
|
||||
},
|
||||
{
|
||||
"seq": 26,
|
||||
"t": 3537.220110615,
|
||||
"age_ms": 184.36631500026124
|
||||
},
|
||||
{
|
||||
"seq": 28,
|
||||
"t": 3537.281839237,
|
||||
"age_ms": 212.57670500017412
|
||||
},
|
||||
{
|
||||
"seq": 31,
|
||||
"t": 3537.365558111,
|
||||
"age_ms": 246.66220700009944
|
||||
},
|
||||
{
|
||||
"seq": 35,
|
||||
"t": 3537.415416932,
|
||||
"age_ms": 229.73451400002887
|
||||
},
|
||||
{
|
||||
"seq": 36,
|
||||
"t": 3537.449159155,
|
||||
"age_ms": 246.3244699997631
|
||||
},
|
||||
{
|
||||
"seq": 42,
|
||||
"t": 3537.481623052,
|
||||
"age_ms": 178.97855999990497
|
||||
},
|
||||
{
|
||||
"seq": 43,
|
||||
"t": 3537.531908274,
|
||||
"age_ms": 212.8173220003191
|
||||
},
|
||||
{
|
||||
"seq": 46,
|
||||
"t": 3537.598891364,
|
||||
"age_ms": 229.01879199980613
|
||||
},
|
||||
{
|
||||
"seq": 48,
|
||||
"t": 3537.631467839,
|
||||
"age_ms": 215.03536199998052
|
||||
},
|
||||
{
|
||||
"seq": 53,
|
||||
"t": 3537.681592942,
|
||||
"age_ms": 195.88962799980436
|
||||
},
|
||||
{
|
||||
"seq": 57,
|
||||
"t": 3537.748287293,
|
||||
"age_ms": 195.9409589999268
|
||||
},
|
||||
{
|
||||
"seq": 62,
|
||||
"t": 3537.798581557,
|
||||
"age_ms": 162.83571299982214
|
||||
},
|
||||
{
|
||||
"seq": 66,
|
||||
"t": 3537.949134193,
|
||||
"age_ms": 246.6181670001788
|
||||
},
|
||||
{
|
||||
"seq": 71,
|
||||
"t": 3537.981714752,
|
||||
"age_ms": 184.30827599968325
|
||||
},
|
||||
{
|
||||
"seq": 72,
|
||||
"t": 3538.031659029,
|
||||
"age_ms": 229.41952700011825
|
||||
},
|
||||
{
|
||||
"seq": 78,
|
||||
"t": 3538.082010749,
|
||||
"age_ms": 178.810859999885
|
||||
},
|
||||
{
|
||||
"seq": 82,
|
||||
"t": 3538.148348114,
|
||||
"age_ms": 167.53107799968348
|
||||
},
|
||||
{
|
||||
"seq": 84,
|
||||
"t": 3538.215343745,
|
||||
"age_ms": 212.66187000037462
|
||||
},
|
||||
{
|
||||
"seq": 85,
|
||||
"t": 3538.298310148,
|
||||
"age_ms": 267.565459999787
|
||||
},
|
||||
{
|
||||
"seq": 90,
|
||||
"t": 3538.331726008,
|
||||
"age_ms": 229.3749039999966
|
||||
},
|
||||
{
|
||||
"seq": 93,
|
||||
"t": 3538.381578122,
|
||||
"age_ms": 228.9849610001511
|
||||
},
|
||||
{
|
||||
"seq": 94,
|
||||
"t": 3538.431567022,
|
||||
"age_ms": 262.6405619998877
|
||||
},
|
||||
{
|
||||
"seq": 99,
|
||||
"t": 3538.481737916,
|
||||
"age_ms": 228.9499620001152
|
||||
},
|
||||
{
|
||||
"seq": 104,
|
||||
"t": 3538.532109468,
|
||||
"age_ms": 195.71026099993105
|
||||
},
|
||||
{
|
||||
"seq": 107,
|
||||
"t": 3538.598420876,
|
||||
"age_ms": 212.85611300027085
|
||||
},
|
||||
{
|
||||
"seq": 110,
|
||||
"t": 3538.666771831,
|
||||
"age_ms": 231.00555100018028
|
||||
},
|
||||
{
|
||||
"seq": 114,
|
||||
"t": 3538.698401884,
|
||||
"age_ms": 195.13919899964094
|
||||
},
|
||||
{
|
||||
"seq": 120,
|
||||
"t": 3538.764949533,
|
||||
"age_ms": 162.70388500015542
|
||||
},
|
||||
{
|
||||
"seq": 121,
|
||||
"t": 3538.815146675,
|
||||
"age_ms": 196.05733100024736
|
||||
},
|
||||
{
|
||||
"seq": 125,
|
||||
"t": 3538.848538912,
|
||||
"age_ms": 151.06507600012264
|
||||
},
|
||||
{
|
||||
"seq": 127,
|
||||
"t": 3538.898356027,
|
||||
"age_ms": 179.4002950000504
|
||||
},
|
||||
{
|
||||
"seq": 129,
|
||||
"t": 3538.948557836,
|
||||
"age_ms": 184.40189800003282
|
||||
},
|
||||
{
|
||||
"seq": 134,
|
||||
"t": 3539.015454889,
|
||||
"age_ms": 168.0350599999656
|
||||
},
|
||||
{
|
||||
"seq": 137,
|
||||
"t": 3539.081556305,
|
||||
"age_ms": 184.1154930002631
|
||||
},
|
||||
{
|
||||
"seq": 142,
|
||||
"t": 3539.131946232,
|
||||
"age_ms": 162.97366799972224
|
||||
},
|
||||
{
|
||||
"seq": 143,
|
||||
"t": 3539.164969233,
|
||||
"age_ms": 178.9348140000584
|
||||
},
|
||||
{
|
||||
"seq": 146,
|
||||
"t": 3539.231701208,
|
||||
"age_ms": 196.0328339996522
|
||||
},
|
||||
{
|
||||
"seq": 151,
|
||||
"t": 3539.28183652,
|
||||
"age_ms": 150.95570599987695
|
||||
},
|
||||
{
|
||||
"seq": 152,
|
||||
"t": 3539.36490821,
|
||||
"age_ms": 228.91642300010062
|
||||
},
|
||||
{
|
||||
"seq": 156,
|
||||
"t": 3539.403856195,
|
||||
"age_ms": 201.30859200025952
|
||||
},
|
||||
{
|
||||
"seq": 159,
|
||||
"t": 3539.465066838,
|
||||
"age_ms": 212.45683799998005
|
||||
},
|
||||
{
|
||||
"seq": 163,
|
||||
"t": 3539.521298919,
|
||||
"age_ms": 202.32530400016913
|
||||
},
|
||||
{
|
||||
"seq": 167,
|
||||
"t": 3539.564986016,
|
||||
"age_ms": 178.99314500027685
|
||||
},
|
||||
{
|
||||
"seq": 174,
|
||||
"t": 3539.631711867,
|
||||
"age_ms": 129.02699400001438
|
||||
},
|
||||
{
|
||||
"seq": 177,
|
||||
"t": 3539.715022132,
|
||||
"age_ms": 150.9297479997258
|
||||
},
|
||||
{
|
||||
"seq": 180,
|
||||
"t": 3539.78181623,
|
||||
"age_ms": 178.8400260002163
|
||||
},
|
||||
{
|
||||
"seq": 184,
|
||||
"t": 3539.837261716,
|
||||
"age_ms": 156.23292299960667
|
||||
},
|
||||
{
|
||||
"seq": 188,
|
||||
"t": 3539.915345804,
|
||||
"age_ms": 179.68466100001024
|
||||
},
|
||||
{
|
||||
"seq": 193,
|
||||
"t": 3540.065381629,
|
||||
"age_ms": 245.27509700010341
|
||||
},
|
||||
{
|
||||
"seq": 196,
|
||||
"t": 3540.164939738,
|
||||
"age_ms": 296.0185110000566
|
||||
},
|
||||
{
|
||||
"seq": 204,
|
||||
"t": 3540.198514843,
|
||||
"age_ms": 196.2652839997645
|
||||
},
|
||||
{
|
||||
"seq": 209,
|
||||
"t": 3540.299446067,
|
||||
"age_ms": 212.7537440001106
|
||||
},
|
||||
{
|
||||
"seq": 214,
|
||||
"t": 3540.331958088,
|
||||
"age_ms": 161.82571300032578
|
||||
},
|
||||
{
|
||||
"seq": 216,
|
||||
"t": 3540.398769686,
|
||||
"age_ms": 196.42248799982553
|
||||
},
|
||||
{
|
||||
"seq": 220,
|
||||
"t": 3540.448549469,
|
||||
"age_ms": 178.3809610001299
|
||||
},
|
||||
{
|
||||
"seq": 221,
|
||||
"t": 3540.482114366,
|
||||
"age_ms": 184.0417050002543
|
||||
},
|
||||
{
|
||||
"seq": 225,
|
||||
"t": 3540.548644517,
|
||||
"age_ms": 196.15066400001524
|
||||
},
|
||||
{
|
||||
"seq": 231,
|
||||
"t": 3540.629612204,
|
||||
"age_ms": 175.98646799979178
|
||||
},
|
||||
{
|
||||
"seq": 234,
|
||||
"t": 3540.698265899,
|
||||
"age_ms": 195.91996400004064
|
||||
},
|
||||
{
|
||||
"seq": 238,
|
||||
"t": 3540.764972501,
|
||||
"age_ms": 195.91938100029438
|
||||
},
|
||||
{
|
||||
"seq": 240,
|
||||
"t": 3540.799238538,
|
||||
"age_ms": 196.48665099975915
|
||||
},
|
||||
{
|
||||
"seq": 243,
|
||||
"t": 3540.831778557,
|
||||
"age_ms": 179.49158499959594
|
||||
},
|
||||
{
|
||||
"seq": 247,
|
||||
"t": 3540.915131988,
|
||||
"age_ms": 196.2151200000335
|
||||
},
|
||||
{
|
||||
"seq": 252,
|
||||
"t": 3540.94839823,
|
||||
"age_ms": 146.04568499999004
|
||||
},
|
||||
{
|
||||
"seq": 256,
|
||||
"t": 3541.031627416,
|
||||
"age_ms": 162.32473599984587
|
||||
},
|
||||
{
|
||||
"seq": 258,
|
||||
"t": 3541.109307562,
|
||||
"age_ms": 193.32685600011246
|
||||
},
|
||||
{
|
||||
"seq": 263,
|
||||
"t": 3541.165125784,
|
||||
"age_ms": 179.53125199983333
|
||||
},
|
||||
{
|
||||
"seq": 267,
|
||||
"t": 3541.231790388,
|
||||
"age_ms": 179.26876199999242
|
||||
},
|
||||
{
|
||||
"seq": 270,
|
||||
"t": 3541.298284373,
|
||||
"age_ms": 182.62805099993784
|
||||
},
|
||||
{
|
||||
"seq": 275,
|
||||
"t": 3541.348325189,
|
||||
"age_ms": 162.70272200017644
|
||||
},
|
||||
{
|
||||
"seq": 279,
|
||||
"t": 3541.415016334,
|
||||
"age_ms": 162.76163700013058
|
||||
},
|
||||
{
|
||||
"seq": 282,
|
||||
"t": 3541.480711474,
|
||||
"age_ms": 178.45212600013838
|
||||
},
|
||||
{
|
||||
"seq": 287,
|
||||
"t": 3541.564962622,
|
||||
"age_ms": 178.97010700016835
|
||||
},
|
||||
{
|
||||
"seq": 290,
|
||||
"t": 3541.63167564,
|
||||
"age_ms": 195.87796700034232
|
||||
},
|
||||
{
|
||||
"seq": 294,
|
||||
"t": 3541.707457108,
|
||||
"age_ms": 204.93854200003625
|
||||
},
|
||||
{
|
||||
"seq": 299,
|
||||
"t": 3541.778955904,
|
||||
"age_ms": 193.3583540003383
|
||||
},
|
||||
{
|
||||
"seq": 300,
|
||||
"t": 3541.832077187,
|
||||
"age_ms": 201.21118299994123
|
||||
}
|
||||
],
|
||||
"fresh_video_updates_per_second": 16.0,
|
||||
"motion_to_decoded_marker_ms": {
|
||||
"p50": 195.87796700034232,
|
||||
"p95": 246.6181670001788,
|
||||
"maximum": 296.0185110000566
|
||||
},
|
||||
"frame_gap_ms": {
|
||||
"p50": 65.69514000011623,
|
||||
"p95": 99.55810900009965,
|
||||
"maximum": 194.73875399989993
|
||||
},
|
||||
"last_motion_seen": 300,
|
||||
"release_visible": true,
|
||||
"method": "60Hz XTest held drag to first observed unique decoded marker; no USB/scanout"
|
||||
}
|
||||
@@ -0,0 +1,426 @@
|
||||
{
|
||||
"pid": 352658,
|
||||
"sent": 300,
|
||||
"elapsed": 5.995556267997017,
|
||||
"frames": [
|
||||
{
|
||||
"seq": 0,
|
||||
"t": 105822.364914285,
|
||||
"age_ms": null
|
||||
},
|
||||
{
|
||||
"seq": 1,
|
||||
"t": 105822.585777361,
|
||||
"age_ms": 222.01077300996985
|
||||
},
|
||||
{
|
||||
"seq": 2,
|
||||
"t": 105822.633395286,
|
||||
"age_ms": 252.87143999594264
|
||||
},
|
||||
{
|
||||
"seq": 7,
|
||||
"t": 105822.689622253,
|
||||
"age_ms": 226.022027010913
|
||||
},
|
||||
{
|
||||
"seq": 10,
|
||||
"t": 105822.742185339,
|
||||
"age_ms": 228.2570469978964
|
||||
},
|
||||
{
|
||||
"seq": 16,
|
||||
"t": 105822.79771698,
|
||||
"age_ms": 183.7351360009052
|
||||
},
|
||||
{
|
||||
"seq": 21,
|
||||
"t": 105822.861982205,
|
||||
"age_ms": 164.93943899695296
|
||||
},
|
||||
{
|
||||
"seq": 23,
|
||||
"t": 105822.950869113,
|
||||
"age_ms": 220.40866300812922
|
||||
},
|
||||
{
|
||||
"seq": 28,
|
||||
"t": 105823.019618087,
|
||||
"age_ms": 205.75517599354498
|
||||
},
|
||||
{
|
||||
"seq": 33,
|
||||
"t": 105823.121072793,
|
||||
"age_ms": 224.04250300314743
|
||||
},
|
||||
{
|
||||
"seq": 37,
|
||||
"t": 105823.175335695,
|
||||
"age_ms": 211.7217440099921
|
||||
},
|
||||
{
|
||||
"seq": 40,
|
||||
"t": 105823.237644438,
|
||||
"age_ms": 223.70738101017196
|
||||
},
|
||||
{
|
||||
"seq": 42,
|
||||
"t": 105823.324132994,
|
||||
"age_ms": 277.0209180016536
|
||||
},
|
||||
{
|
||||
"seq": 45,
|
||||
"t": 105823.382827147,
|
||||
"age_ms": 285.76791899104137
|
||||
},
|
||||
{
|
||||
"seq": 51,
|
||||
"t": 105823.455156878,
|
||||
"age_ms": 258.1867209955817
|
||||
},
|
||||
{
|
||||
"seq": 57,
|
||||
"t": 105823.514103903,
|
||||
"age_ms": 216.88186199753545
|
||||
},
|
||||
{
|
||||
"seq": 60,
|
||||
"t": 105823.561138791,
|
||||
"age_ms": 214.07255600206554
|
||||
},
|
||||
{
|
||||
"seq": 63,
|
||||
"t": 105823.605551037,
|
||||
"age_ms": 208.5913160117343
|
||||
},
|
||||
{
|
||||
"seq": 67,
|
||||
"t": 105823.659636816,
|
||||
"age_ms": 196.04647599044256
|
||||
},
|
||||
{
|
||||
"seq": 73,
|
||||
"t": 105823.753416386,
|
||||
"age_ms": 189.77045199426357
|
||||
},
|
||||
{
|
||||
"seq": 76,
|
||||
"t": 105823.803806576,
|
||||
"age_ms": 190.11899099859875
|
||||
},
|
||||
{
|
||||
"seq": 79,
|
||||
"t": 105823.869725451,
|
||||
"age_ms": 205.90471600007731
|
||||
},
|
||||
{
|
||||
"seq": 83,
|
||||
"t": 105823.95639163,
|
||||
"age_ms": 225.8787350001512
|
||||
},
|
||||
{
|
||||
"seq": 87,
|
||||
"t": 105824.013852919,
|
||||
"age_ms": 216.4352410036372
|
||||
},
|
||||
{
|
||||
"seq": 92,
|
||||
"t": 105824.094019076,
|
||||
"age_ms": 213.65897500072606
|
||||
},
|
||||
{
|
||||
"seq": 97,
|
||||
"t": 105824.13580518,
|
||||
"age_ms": 172.12632700102404
|
||||
},
|
||||
{
|
||||
"seq": 98,
|
||||
"t": 105824.193087387,
|
||||
"age_ms": 212.82773300481495
|
||||
},
|
||||
{
|
||||
"seq": 101,
|
||||
"t": 105824.254351098,
|
||||
"age_ms": 224.0923759964062
|
||||
},
|
||||
{
|
||||
"seq": 104,
|
||||
"t": 105824.286978663,
|
||||
"age_ms": 206.35425200453028
|
||||
},
|
||||
{
|
||||
"seq": 110,
|
||||
"t": 105824.342255098,
|
||||
"age_ms": 161.75242500321474
|
||||
},
|
||||
{
|
||||
"seq": 114,
|
||||
"t": 105824.421301557,
|
||||
"age_ms": 174.21901499619707
|
||||
},
|
||||
{
|
||||
"seq": 117,
|
||||
"t": 105824.498500034,
|
||||
"age_ms": 201.53275699703954
|
||||
},
|
||||
{
|
||||
"seq": 121,
|
||||
"t": 105824.540304513,
|
||||
"age_ms": 176.58061899419408
|
||||
},
|
||||
{
|
||||
"seq": 125,
|
||||
"t": 105824.61779757,
|
||||
"age_ms": 187.53464000474196
|
||||
},
|
||||
{
|
||||
"seq": 130,
|
||||
"t": 105824.683076618,
|
||||
"age_ms": 169.4389360054629
|
||||
},
|
||||
{
|
||||
"seq": 131,
|
||||
"t": 105824.726741037,
|
||||
"age_ms": 196.3230559922522
|
||||
},
|
||||
{
|
||||
"seq": 134,
|
||||
"t": 105824.773524511,
|
||||
"age_ms": 193.21187799505424
|
||||
},
|
||||
{
|
||||
"seq": 136,
|
||||
"t": 105824.822325131,
|
||||
"age_ms": 208.38627500052098
|
||||
},
|
||||
{
|
||||
"seq": 139,
|
||||
"t": 105824.870169386,
|
||||
"age_ms": 206.38254401274025
|
||||
},
|
||||
{
|
||||
"seq": 142,
|
||||
"t": 105824.917264065,
|
||||
"age_ms": 203.22382400627248
|
||||
},
|
||||
{
|
||||
"seq": 145,
|
||||
"t": 105824.98236753,
|
||||
"age_ms": 218.49155299423728
|
||||
},
|
||||
{
|
||||
"seq": 148,
|
||||
"t": 105825.0198443,
|
||||
"age_ms": 205.89196399669163
|
||||
},
|
||||
{
|
||||
"seq": 151,
|
||||
"t": 105825.071297604,
|
||||
"age_ms": 207.4841579888016
|
||||
},
|
||||
{
|
||||
"seq": 155,
|
||||
"t": 105825.137494809,
|
||||
"age_ms": 207.23215899488423
|
||||
},
|
||||
{
|
||||
"seq": 159,
|
||||
"t": 105825.178862375,
|
||||
"age_ms": 181.62698599917348
|
||||
},
|
||||
{
|
||||
"seq": 160,
|
||||
"t": 105825.244621502,
|
||||
"age_ms": 230.6874790083384
|
||||
},
|
||||
{
|
||||
"seq": 163,
|
||||
"t": 105825.306028419,
|
||||
"age_ms": 242.21345300611574
|
||||
},
|
||||
{
|
||||
"seq": 169,
|
||||
"t": 105825.375719467,
|
||||
"age_ms": 211.78678300930187
|
||||
},
|
||||
{
|
||||
"seq": 175,
|
||||
"t": 105825.477803874,
|
||||
"age_ms": 214.2023440101184
|
||||
},
|
||||
{
|
||||
"seq": 179,
|
||||
"t": 105825.526652619,
|
||||
"age_ms": 196.3563049939694
|
||||
},
|
||||
{
|
||||
"seq": 181,
|
||||
"t": 105825.608244429,
|
||||
"age_ms": 244.46072398859542
|
||||
},
|
||||
{
|
||||
"seq": 186,
|
||||
"t": 105825.680501243,
|
||||
"age_ms": 233.48074399109464
|
||||
},
|
||||
{
|
||||
"seq": 189,
|
||||
"t": 105825.728851535,
|
||||
"age_ms": 231.71705300046597
|
||||
},
|
||||
{
|
||||
"seq": 192,
|
||||
"t": 105825.786867276,
|
||||
"age_ms": 239.71972599974833
|
||||
},
|
||||
{
|
||||
"seq": 195,
|
||||
"t": 105825.858277224,
|
||||
"age_ms": 261.23618900601286
|
||||
},
|
||||
{
|
||||
"seq": 200,
|
||||
"t": 105825.918178281,
|
||||
"age_ms": 236.96246100007556
|
||||
},
|
||||
{
|
||||
"seq": 202,
|
||||
"t": 105825.991665917,
|
||||
"age_ms": 277.66999100276735
|
||||
},
|
||||
{
|
||||
"seq": 206,
|
||||
"t": 105826.046724269,
|
||||
"age_ms": 266.1855160113191
|
||||
},
|
||||
{
|
||||
"seq": 211,
|
||||
"t": 105826.100238761,
|
||||
"age_ms": 236.50946401176043
|
||||
},
|
||||
{
|
||||
"seq": 215,
|
||||
"t": 105826.147476938,
|
||||
"age_ms": 217.01610699528828
|
||||
},
|
||||
{
|
||||
"seq": 217,
|
||||
"t": 105826.203798987,
|
||||
"age_ms": 239.63930900208652
|
||||
},
|
||||
{
|
||||
"seq": 220,
|
||||
"t": 105826.257033774,
|
||||
"age_ms": 243.18652600049973
|
||||
},
|
||||
{
|
||||
"seq": 226,
|
||||
"t": 105826.303624165,
|
||||
"age_ms": 190.02428000385407
|
||||
},
|
||||
{
|
||||
"seq": 231,
|
||||
"t": 105826.405311617,
|
||||
"age_ms": 208.14740000059828
|
||||
},
|
||||
{
|
||||
"seq": 235,
|
||||
"t": 105826.485612813,
|
||||
"age_ms": 222.0297260064399
|
||||
},
|
||||
{
|
||||
"seq": 240,
|
||||
"t": 105826.542371191,
|
||||
"age_ms": 195.36727099330164
|
||||
},
|
||||
{
|
||||
"seq": 244,
|
||||
"t": 105826.595525478,
|
||||
"age_ms": 181.71944200003054
|
||||
},
|
||||
{
|
||||
"seq": 248,
|
||||
"t": 105826.685236336,
|
||||
"age_ms": 198.72986499103718
|
||||
},
|
||||
{
|
||||
"seq": 253,
|
||||
"t": 105826.741214221,
|
||||
"age_ms": 177.6253559946781
|
||||
},
|
||||
{
|
||||
"seq": 256,
|
||||
"t": 105826.804943658,
|
||||
"age_ms": 191.22826900274958
|
||||
},
|
||||
{
|
||||
"seq": 260,
|
||||
"t": 105826.869890208,
|
||||
"age_ms": 183.9346290071262
|
||||
},
|
||||
{
|
||||
"seq": 264,
|
||||
"t": 105826.929818681,
|
||||
"age_ms": 182.7495990000898
|
||||
},
|
||||
{
|
||||
"seq": 268,
|
||||
"t": 105827.003753437,
|
||||
"age_ms": 190.08757000847254
|
||||
},
|
||||
{
|
||||
"seq": 271,
|
||||
"t": 105827.057522552,
|
||||
"age_ms": 193.68845300050452
|
||||
},
|
||||
{
|
||||
"seq": 275,
|
||||
"t": 105827.141712794,
|
||||
"age_ms": 211.24341098766308
|
||||
},
|
||||
{
|
||||
"seq": 280,
|
||||
"t": 105827.180840381,
|
||||
"age_ms": 167.17212100047618
|
||||
},
|
||||
{
|
||||
"seq": 284,
|
||||
"t": 105827.248257616,
|
||||
"age_ms": 167.93278099794406
|
||||
},
|
||||
{
|
||||
"seq": 287,
|
||||
"t": 105827.309382202,
|
||||
"age_ms": 178.86346799787134
|
||||
},
|
||||
{
|
||||
"seq": 291,
|
||||
"t": 105827.381741682,
|
||||
"age_ms": 184.77957899449393
|
||||
},
|
||||
{
|
||||
"seq": 296,
|
||||
"t": 105827.456995634,
|
||||
"age_ms": 176.64273899572436
|
||||
},
|
||||
{
|
||||
"seq": 300,
|
||||
"t": 105827.554913621,
|
||||
"age_ms": 207.49961299588904
|
||||
}
|
||||
],
|
||||
"fresh_video_updates_per_second": 15.6,
|
||||
"motion_to_decoded_marker_ms": {
|
||||
"p50": 207.82350649824366,
|
||||
"p95": 266.1855160113191,
|
||||
"maximum": 285.76791899104137
|
||||
},
|
||||
"frame_gap_ms": {
|
||||
"p50": 59.91476499912096,
|
||||
"p95": 101.45470600400586,
|
||||
"maximum": 220.8630759996595
|
||||
},
|
||||
"last_motion_seen": 300,
|
||||
"release_visible": true,
|
||||
"method": "60Hz XTest held drag to first observed unique decoded marker; no USB/scanout"
|
||||
}
|
||||
@@ -0,0 +1,461 @@
|
||||
{
|
||||
"pid": 350123,
|
||||
"sent": 300,
|
||||
"elapsed": 6.023475266003516,
|
||||
"frames": [
|
||||
{
|
||||
"seq": 0,
|
||||
"t": 105660.588609923,
|
||||
"age_ms": null
|
||||
},
|
||||
{
|
||||
"seq": 1,
|
||||
"t": 105660.728732414,
|
||||
"age_ms": 141.1517740052659
|
||||
},
|
||||
{
|
||||
"seq": 4,
|
||||
"t": 105660.836533842,
|
||||
"age_ms": 198.7703319900902
|
||||
},
|
||||
{
|
||||
"seq": 5,
|
||||
"t": 105660.868549532,
|
||||
"age_ms": 214.22766099567525
|
||||
},
|
||||
{
|
||||
"seq": 12,
|
||||
"t": 105660.933176781,
|
||||
"age_ms": 162.11922200454865
|
||||
},
|
||||
{
|
||||
"seq": 16,
|
||||
"t": 105660.994850055,
|
||||
"age_ms": 157.3341789917322
|
||||
},
|
||||
{
|
||||
"seq": 17,
|
||||
"t": 105661.029248641,
|
||||
"age_ms": 174.83140699914657
|
||||
},
|
||||
{
|
||||
"seq": 21,
|
||||
"t": 105661.077943732,
|
||||
"age_ms": 156.695434008725
|
||||
},
|
||||
{
|
||||
"seq": 25,
|
||||
"t": 105661.168224599,
|
||||
"age_ms": 180.32752799626905
|
||||
},
|
||||
{
|
||||
"seq": 26,
|
||||
"t": 105661.208675217,
|
||||
"age_ms": 203.9161620050436
|
||||
},
|
||||
{
|
||||
"seq": 30,
|
||||
"t": 105661.265637822,
|
||||
"age_ms": 194.48724199901335
|
||||
},
|
||||
{
|
||||
"seq": 32,
|
||||
"t": 105661.319675618,
|
||||
"age_ms": 215.41969099780545
|
||||
},
|
||||
{
|
||||
"seq": 35,
|
||||
"t": 105661.429639736,
|
||||
"age_ms": 275.0498560053529
|
||||
},
|
||||
{
|
||||
"seq": 41,
|
||||
"t": 105661.455474478,
|
||||
"age_ms": 200.9788120049052
|
||||
},
|
||||
{
|
||||
"seq": 45,
|
||||
"t": 105661.497347251,
|
||||
"age_ms": 176.45801800244953
|
||||
},
|
||||
{
|
||||
"seq": 50,
|
||||
"t": 105661.578405112,
|
||||
"age_ms": 173.97303899633698
|
||||
},
|
||||
{
|
||||
"seq": 53,
|
||||
"t": 105661.621562375,
|
||||
"age_ms": 167.18922099971678
|
||||
},
|
||||
{
|
||||
"seq": 58,
|
||||
"t": 105661.695048049,
|
||||
"age_ms": 157.4301360087702
|
||||
},
|
||||
{
|
||||
"seq": 59,
|
||||
"t": 105661.740765832,
|
||||
"age_ms": 185.9015219961293
|
||||
},
|
||||
{
|
||||
"seq": 62,
|
||||
"t": 105661.787493356,
|
||||
"age_ms": 182.19709499680903
|
||||
},
|
||||
{
|
||||
"seq": 69,
|
||||
"t": 105661.845759992,
|
||||
"age_ms": 124.71561999700498
|
||||
},
|
||||
{
|
||||
"seq": 72,
|
||||
"t": 105661.908735254,
|
||||
"age_ms": 137.61592700029723
|
||||
},
|
||||
{
|
||||
"seq": 74,
|
||||
"t": 105661.988176836,
|
||||
"age_ms": 183.88741300441325
|
||||
},
|
||||
{
|
||||
"seq": 79,
|
||||
"t": 105662.09039406,
|
||||
"age_ms": 202.43375599966384
|
||||
},
|
||||
{
|
||||
"seq": 80,
|
||||
"t": 105662.132361249,
|
||||
"age_ms": 227.86475099564996
|
||||
},
|
||||
{
|
||||
"seq": 84,
|
||||
"t": 105662.155326306,
|
||||
"age_ms": 183.80145500123035
|
||||
},
|
||||
{
|
||||
"seq": 88,
|
||||
"t": 105662.212096996,
|
||||
"age_ms": 174.33811799855903
|
||||
},
|
||||
{
|
||||
"seq": 92,
|
||||
"t": 105662.271132749,
|
||||
"age_ms": 166.46639199461788
|
||||
},
|
||||
{
|
||||
"seq": 94,
|
||||
"t": 105662.316158121,
|
||||
"age_ms": 178.17154400108848
|
||||
},
|
||||
{
|
||||
"seq": 97,
|
||||
"t": 105662.371606696,
|
||||
"age_ms": 183.591831009835
|
||||
},
|
||||
{
|
||||
"seq": 99,
|
||||
"t": 105662.405071957,
|
||||
"age_ms": 184.02670299110468
|
||||
},
|
||||
{
|
||||
"seq": 100,
|
||||
"t": 105662.440496326,
|
||||
"age_ms": 202.81075399543624
|
||||
},
|
||||
{
|
||||
"seq": 106,
|
||||
"t": 105662.493489089,
|
||||
"age_ms": 155.86506499676034
|
||||
},
|
||||
{
|
||||
"seq": 107,
|
||||
"t": 105662.527463303,
|
||||
"age_ms": 172.80754700186662
|
||||
},
|
||||
{
|
||||
"seq": 109,
|
||||
"t": 105662.566961346,
|
||||
"age_ms": 178.92199600464664
|
||||
},
|
||||
{
|
||||
"seq": 116,
|
||||
"t": 105662.68981148,
|
||||
"age_ms": 185.20619299670216
|
||||
},
|
||||
{
|
||||
"seq": 120,
|
||||
"t": 105662.72076347,
|
||||
"age_ms": 149.8561990010785
|
||||
},
|
||||
{
|
||||
"seq": 122,
|
||||
"t": 105662.767262621,
|
||||
"age_ms": 163.00062999653164
|
||||
},
|
||||
{
|
||||
"seq": 127,
|
||||
"t": 105662.8539706,
|
||||
"age_ms": 166.13281199533958
|
||||
},
|
||||
{
|
||||
"seq": 128,
|
||||
"t": 105662.890777457,
|
||||
"age_ms": 186.3407670025481
|
||||
},
|
||||
{
|
||||
"seq": 131,
|
||||
"t": 105662.934899544,
|
||||
"age_ms": 180.14873498759698
|
||||
},
|
||||
{
|
||||
"seq": 133,
|
||||
"t": 105662.986473943,
|
||||
"age_ms": 198.8916600093944
|
||||
},
|
||||
{
|
||||
"seq": 135,
|
||||
"t": 105663.018901171,
|
||||
"age_ms": 197.4135060008848
|
||||
},
|
||||
{
|
||||
"seq": 136,
|
||||
"t": 105663.061461979,
|
||||
"age_ms": 223.7712000060128
|
||||
},
|
||||
{
|
||||
"seq": 140,
|
||||
"t": 105663.104748157,
|
||||
"age_ms": 200.50718799757306
|
||||
},
|
||||
{
|
||||
"seq": 142,
|
||||
"t": 105663.14064648,
|
||||
"age_ms": 203.0799579952145
|
||||
},
|
||||
{
|
||||
"seq": 147,
|
||||
"t": 105663.185304354,
|
||||
"age_ms": 164.23786799714435
|
||||
},
|
||||
{
|
||||
"seq": 151,
|
||||
"t": 105663.273962108,
|
||||
"age_ms": 186.10305899346713
|
||||
},
|
||||
{
|
||||
"seq": 155,
|
||||
"t": 105663.324079353,
|
||||
"age_ms": 169.7001559950877
|
||||
},
|
||||
{
|
||||
"seq": 158,
|
||||
"t": 105663.384112014,
|
||||
"age_ms": 179.16990899539087
|
||||
},
|
||||
{
|
||||
"seq": 160,
|
||||
"t": 105663.410937539,
|
||||
"age_ms": 173.36433299351484
|
||||
},
|
||||
{
|
||||
"seq": 163,
|
||||
"t": 105663.475446371,
|
||||
"age_ms": 187.761170003796
|
||||
},
|
||||
{
|
||||
"seq": 168,
|
||||
"t": 105663.566514438,
|
||||
"age_ms": 195.42668900976423
|
||||
},
|
||||
{
|
||||
"seq": 172,
|
||||
"t": 105663.630936646,
|
||||
"age_ms": 193.3637480105972
|
||||
},
|
||||
{
|
||||
"seq": 175,
|
||||
"t": 105663.67644968,
|
||||
"age_ms": 188.81203699856997
|
||||
},
|
||||
{
|
||||
"seq": 177,
|
||||
"t": 105663.715756391,
|
||||
"age_ms": 194.76752799528185
|
||||
},
|
||||
{
|
||||
"seq": 180,
|
||||
"t": 105663.753589031,
|
||||
"age_ms": 182.69000499276444
|
||||
},
|
||||
{
|
||||
"seq": 184,
|
||||
"t": 105663.822438993,
|
||||
"age_ms": 184.85823599621654
|
||||
},
|
||||
{
|
||||
"seq": 186,
|
||||
"t": 105663.871551163,
|
||||
"age_ms": 200.2852309960872
|
||||
},
|
||||
{
|
||||
"seq": 190,
|
||||
"t": 105663.914979381,
|
||||
"age_ms": 177.12505100644194
|
||||
},
|
||||
{
|
||||
"seq": 191,
|
||||
"t": 105663.983808926,
|
||||
"age_ms": 229.52398400229868
|
||||
},
|
||||
{
|
||||
"seq": 193,
|
||||
"t": 105664.040300492,
|
||||
"age_ms": 252.6649139908841
|
||||
},
|
||||
{
|
||||
"seq": 198,
|
||||
"t": 105664.109830323,
|
||||
"age_ms": 237.5882069900399
|
||||
},
|
||||
{
|
||||
"seq": 201,
|
||||
"t": 105664.160752478,
|
||||
"age_ms": 239.84793899580836
|
||||
},
|
||||
{
|
||||
"seq": 202,
|
||||
"t": 105664.220458183,
|
||||
"age_ms": 282.8468259976944
|
||||
},
|
||||
{
|
||||
"seq": 207,
|
||||
"t": 105664.247748328,
|
||||
"age_ms": 226.65771598985884
|
||||
},
|
||||
{
|
||||
"seq": 213,
|
||||
"t": 105664.290144346,
|
||||
"age_ms": 169.0602430026047
|
||||
},
|
||||
{
|
||||
"seq": 215,
|
||||
"t": 105664.328379066,
|
||||
"age_ms": 173.7471619999269
|
||||
},
|
||||
{
|
||||
"seq": 220,
|
||||
"t": 105664.427703271,
|
||||
"age_ms": 189.75544298882596
|
||||
},
|
||||
{
|
||||
"seq": 224,
|
||||
"t": 105664.485993239,
|
||||
"age_ms": 181.2134739884641
|
||||
},
|
||||
{
|
||||
"seq": 228,
|
||||
"t": 105664.533541797,
|
||||
"age_ms": 162.6477140089264
|
||||
},
|
||||
{
|
||||
"seq": 232,
|
||||
"t": 105664.621815428,
|
||||
"age_ms": 184.23494801390916
|
||||
},
|
||||
{
|
||||
"seq": 237,
|
||||
"t": 105664.702844704,
|
||||
"age_ms": 181.76659400342032
|
||||
},
|
||||
{
|
||||
"seq": 242,
|
||||
"t": 105664.754943515,
|
||||
"age_ms": 150.48910699260887
|
||||
},
|
||||
{
|
||||
"seq": 246,
|
||||
"t": 105664.830002425,
|
||||
"age_ms": 159.09641000325792
|
||||
},
|
||||
{
|
||||
"seq": 250,
|
||||
"t": 105664.889416466,
|
||||
"age_ms": 151.0499779979
|
||||
},
|
||||
{
|
||||
"seq": 254,
|
||||
"t": 105664.954948747,
|
||||
"age_ms": 150.31352500955109
|
||||
},
|
||||
{
|
||||
"seq": 258,
|
||||
"t": 105665.044959821,
|
||||
"age_ms": 173.59241099620704
|
||||
},
|
||||
{
|
||||
"seq": 262,
|
||||
"t": 105665.103812117,
|
||||
"age_ms": 165.720977995079
|
||||
},
|
||||
{
|
||||
"seq": 266,
|
||||
"t": 105665.20514618,
|
||||
"age_ms": 200.88197400036734
|
||||
},
|
||||
{
|
||||
"seq": 271,
|
||||
"t": 105665.259916635,
|
||||
"age_ms": 172.009842004627
|
||||
},
|
||||
{
|
||||
"seq": 273,
|
||||
"t": 105665.324900878,
|
||||
"age_ms": 203.94911400217097
|
||||
},
|
||||
{
|
||||
"seq": 277,
|
||||
"t": 105665.392394018,
|
||||
"age_ms": 204.61089999298565
|
||||
},
|
||||
{
|
||||
"seq": 285,
|
||||
"t": 105665.503136293,
|
||||
"age_ms": 182.03171600180212
|
||||
},
|
||||
{
|
||||
"seq": 289,
|
||||
"t": 105665.605121641,
|
||||
"age_ms": 217.33883400156628
|
||||
},
|
||||
{
|
||||
"seq": 293,
|
||||
"t": 105665.624316355,
|
||||
"age_ms": 169.64444499171805
|
||||
},
|
||||
{
|
||||
"seq": 297,
|
||||
"t": 105665.67254799,
|
||||
"age_ms": 151.6277640039334
|
||||
},
|
||||
{
|
||||
"seq": 300,
|
||||
"t": 105665.806498277,
|
||||
"age_ms": 235.17030899529345
|
||||
}
|
||||
],
|
||||
"fresh_video_updates_per_second": 16.8,
|
||||
"motion_to_decoded_marker_ms": {
|
||||
"p50": 182.69000499276444,
|
||||
"p95": 237.5882069900399,
|
||||
"maximum": 282.8468259976944
|
||||
},
|
||||
"frame_gap_ms": {
|
||||
"p50": 54.770454997196794,
|
||||
"p95": 109.96411800442729,
|
||||
"maximum": 140.12249100778718
|
||||
},
|
||||
"last_motion_seen": 300,
|
||||
"release_visible": true,
|
||||
"method": "60Hz XTest held drag to first observed unique decoded marker; no USB/scanout"
|
||||
}
|
||||
@@ -0,0 +1,301 @@
|
||||
{
|
||||
"pid": 38284,
|
||||
"sent": 300,
|
||||
"elapsed": 6.014295583999683,
|
||||
"frames": [
|
||||
{
|
||||
"seq": 0,
|
||||
"t": 3787.859476511,
|
||||
"age_ms": null
|
||||
},
|
||||
{
|
||||
"seq": 2,
|
||||
"t": 3788.092472917,
|
||||
"age_ms": 226.71267700025055
|
||||
},
|
||||
{
|
||||
"seq": 5,
|
||||
"t": 3788.175824123,
|
||||
"age_ms": 260.7124770001974
|
||||
},
|
||||
{
|
||||
"seq": 10,
|
||||
"t": 3788.275966548,
|
||||
"age_ms": 277.91959799969845
|
||||
},
|
||||
{
|
||||
"seq": 21,
|
||||
"t": 3788.409275804,
|
||||
"age_ms": 227.99071400004323
|
||||
},
|
||||
{
|
||||
"seq": 25,
|
||||
"t": 3788.499590005,
|
||||
"age_ms": 251.19836599969858
|
||||
},
|
||||
{
|
||||
"seq": 30,
|
||||
"t": 3788.576047629,
|
||||
"age_ms": 244.42028100020252
|
||||
},
|
||||
{
|
||||
"seq": 38,
|
||||
"t": 3788.676070767,
|
||||
"age_ms": 211.41036100016208
|
||||
},
|
||||
{
|
||||
"seq": 41,
|
||||
"t": 3788.809415313,
|
||||
"age_ms": 294.83360599988373
|
||||
},
|
||||
{
|
||||
"seq": 48,
|
||||
"t": 3788.842632599,
|
||||
"age_ms": 211.36836200003017
|
||||
},
|
||||
{
|
||||
"seq": 51,
|
||||
"t": 3788.993322804,
|
||||
"age_ms": 311.54462099993907
|
||||
},
|
||||
{
|
||||
"seq": 56,
|
||||
"t": 3789.016962982,
|
||||
"age_ms": 252.36411600008068
|
||||
},
|
||||
{
|
||||
"seq": 59,
|
||||
"t": 3789.159079083,
|
||||
"age_ms": 343.99310200024047
|
||||
},
|
||||
{
|
||||
"seq": 65,
|
||||
"t": 3789.225854311,
|
||||
"age_ms": 311.1680930001057
|
||||
},
|
||||
{
|
||||
"seq": 67,
|
||||
"t": 3789.259320089,
|
||||
"age_ms": 311.3147970002501
|
||||
},
|
||||
{
|
||||
"seq": 76,
|
||||
"t": 3789.392587346,
|
||||
"age_ms": 294.14004799991744
|
||||
},
|
||||
{
|
||||
"seq": 81,
|
||||
"t": 3789.442516815,
|
||||
"age_ms": 261.26254200016774
|
||||
},
|
||||
{
|
||||
"seq": 86,
|
||||
"t": 3789.52590856,
|
||||
"age_ms": 261.2806229999478
|
||||
},
|
||||
{
|
||||
"seq": 92,
|
||||
"t": 3789.642666921,
|
||||
"age_ms": 277.9292240002178
|
||||
},
|
||||
{
|
||||
"seq": 99,
|
||||
"t": 3789.726031835,
|
||||
"age_ms": 244.51215299995965
|
||||
},
|
||||
{
|
||||
"seq": 103,
|
||||
"t": 3789.825976518,
|
||||
"age_ms": 250.37648099987564
|
||||
},
|
||||
{
|
||||
"seq": 111,
|
||||
"t": 3789.925941034,
|
||||
"age_ms": 244.56144299983862
|
||||
},
|
||||
{
|
||||
"seq": 116,
|
||||
"t": 3790.025928882,
|
||||
"age_ms": 249.16610799982664
|
||||
},
|
||||
{
|
||||
"seq": 123,
|
||||
"t": 3790.142752866,
|
||||
"age_ms": 261.45474400027524
|
||||
},
|
||||
{
|
||||
"seq": 129,
|
||||
"t": 3790.242694049,
|
||||
"age_ms": 248.77616499998112
|
||||
},
|
||||
{
|
||||
"seq": 136,
|
||||
"t": 3790.342592943,
|
||||
"age_ms": 244.67110700015837
|
||||
},
|
||||
{
|
||||
"seq": 142,
|
||||
"t": 3790.442789034,
|
||||
"age_ms": 244.74197899962746
|
||||
},
|
||||
{
|
||||
"seq": 148,
|
||||
"t": 3790.482821447,
|
||||
"age_ms": 184.80229299984785
|
||||
},
|
||||
{
|
||||
"seq": 150,
|
||||
"t": 3790.592687976,
|
||||
"age_ms": 250.9090449998439
|
||||
},
|
||||
{
|
||||
"seq": 154,
|
||||
"t": 3790.642761523,
|
||||
"age_ms": 244.52061200008757
|
||||
},
|
||||
{
|
||||
"seq": 158,
|
||||
"t": 3790.759334974,
|
||||
"age_ms": 294.2185060001066
|
||||
},
|
||||
{
|
||||
"seq": 169,
|
||||
"t": 3790.85937532,
|
||||
"age_ms": 211.51360899966676
|
||||
},
|
||||
{
|
||||
"seq": 175,
|
||||
"t": 3790.942703194,
|
||||
"age_ms": 184.29335300015737
|
||||
},
|
||||
{
|
||||
"seq": 178,
|
||||
"t": 3791.092760798,
|
||||
"age_ms": 294.5976590003738
|
||||
},
|
||||
{
|
||||
"seq": 185,
|
||||
"t": 3791.159227746,
|
||||
"age_ms": 244.03675499979727
|
||||
},
|
||||
{
|
||||
"seq": 189,
|
||||
"t": 3791.309405513,
|
||||
"age_ms": 300.9365120001348
|
||||
},
|
||||
{
|
||||
"seq": 197,
|
||||
"t": 3791.376129993,
|
||||
"age_ms": 261.5256170001885
|
||||
},
|
||||
{
|
||||
"seq": 200,
|
||||
"t": 3791.409295948,
|
||||
"age_ms": 244.7492709998187
|
||||
},
|
||||
{
|
||||
"seq": 204,
|
||||
"t": 3791.559292596,
|
||||
"age_ms": 327.64374399994267
|
||||
},
|
||||
{
|
||||
"seq": 210,
|
||||
"t": 3791.609347185,
|
||||
"age_ms": 277.9158099997403
|
||||
},
|
||||
{
|
||||
"seq": 216,
|
||||
"t": 3791.69270685,
|
||||
"age_ms": 261.0411769996972
|
||||
},
|
||||
{
|
||||
"seq": 222,
|
||||
"t": 3791.826089312,
|
||||
"age_ms": 294.3526680001014
|
||||
},
|
||||
{
|
||||
"seq": 230,
|
||||
"t": 3791.876044447,
|
||||
"age_ms": 211.1697479999748
|
||||
},
|
||||
{
|
||||
"seq": 233,
|
||||
"t": 3792.009430702,
|
||||
"age_ms": 294.8169860001144
|
||||
},
|
||||
{
|
||||
"seq": 240,
|
||||
"t": 3792.109578378,
|
||||
"age_ms": 278.3293790002972
|
||||
},
|
||||
{
|
||||
"seq": 246,
|
||||
"t": 3792.17617278,
|
||||
"age_ms": 244.72856400007004
|
||||
},
|
||||
{
|
||||
"seq": 251,
|
||||
"t": 3792.276059133,
|
||||
"age_ms": 261.44307900040076
|
||||
},
|
||||
{
|
||||
"seq": 256,
|
||||
"t": 3792.343641666,
|
||||
"age_ms": 233.05911600027684
|
||||
},
|
||||
{
|
||||
"seq": 258,
|
||||
"t": 3792.376834162,
|
||||
"age_ms": 245.4212469997401
|
||||
},
|
||||
{
|
||||
"seq": 265,
|
||||
"t": 3792.459423272,
|
||||
"age_ms": 210.72089000017513
|
||||
},
|
||||
{
|
||||
"seq": 276,
|
||||
"t": 3792.578765415,
|
||||
"age_ms": 146.6606869998941
|
||||
},
|
||||
{
|
||||
"seq": 278,
|
||||
"t": 3792.692758003,
|
||||
"age_ms": 228.04350800015527
|
||||
},
|
||||
{
|
||||
"seq": 282,
|
||||
"t": 3792.782370773,
|
||||
"age_ms": 250.07753699992463
|
||||
},
|
||||
{
|
||||
"seq": 289,
|
||||
"t": 3792.883536037,
|
||||
"age_ms": 235.47986099993068
|
||||
},
|
||||
{
|
||||
"seq": 295,
|
||||
"t": 3792.968493394,
|
||||
"age_ms": 220.19416899956923
|
||||
},
|
||||
{
|
||||
"seq": 300,
|
||||
"t": 3793.057073994,
|
||||
"age_ms": 225.8108819996778
|
||||
}
|
||||
],
|
||||
"fresh_video_updates_per_second": 10.6,
|
||||
"motion_to_decoded_marker_ms": {
|
||||
"p50": 250.07753699992463,
|
||||
"p95": 311.54462099993907,
|
||||
"maximum": 343.99310200024047
|
||||
},
|
||||
"frame_gap_ms": {
|
||||
"p50": 99.89889400003449,
|
||||
"p95": 150.17776700005925,
|
||||
"maximum": 232.99640599998384
|
||||
},
|
||||
"last_motion_seen": 300,
|
||||
"release_visible": true,
|
||||
"method": "60Hz XTest held drag to first observed unique decoded marker; no USB/scanout"
|
||||
}
|
||||
|
After Width: | Height: | Size: 52 KiB |
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"normal_exit": "MainPID=16035\nExecStart={ path=/usr/bin/sunshine ; argv[]=/usr/bin/sunshine /home/test2/.config/sunshine/sunshine.conf ; ignore_errors=no ; start_time=[Thu 2026-11-05 17:15:15 CST] ; stop_time=[n/a] ; pid=16035 ; code=(null) ; status=0/0 }\nActiveState=active\nActiveState=inactive\nno-dropin\n",
|
||||
"reconnect_from_idle": {
|
||||
"host": "MainPID=16178\nExecStart={ path=/usr/bin/sunshine ; argv[]=/usr/bin/sunshine /home/test2/.config/sunshine/sunshine.conf capture=kms ; ignore_errors=no ; start_time=[Thu 2026-11-05 17:15:21 CST] ; stop_time=[n/a] ; pid=16178 ; code=(null) ; status=0/0 }\nActiveState=active\nActiveState=active\n",
|
||||
"client_pid": 42247
|
||||
},
|
||||
"guard_kill": "MainPID=16391\nExecStart={ path=/usr/bin/sunshine ; argv[]=/usr/bin/sunshine /home/test2/.config/sunshine/sunshine.conf ; ignore_errors=no ; start_time=[Thu 2026-11-05 17:15:32 CST] ; stop_time=[n/a] ; pid=16391 ; code=(null) ; status=0/0 }\nActiveState=active\nActiveState=failed\nno-dropin\n",
|
||||
"client_after_guard_kill": "",
|
||||
"final_reconnect": {
|
||||
"host": "MainPID=16529\nExecStart={ path=/usr/bin/sunshine ; argv[]=/usr/bin/sunshine /home/test2/.config/sunshine/sunshine.conf capture=kms ; ignore_errors=no ; start_time=[Thu 2026-11-05 17:15:39 CST] ; stop_time=[n/a] ; pid=16529 ; code=(null) ; status=0/0 }\nActiveState=active\nActiveState=active\n",
|
||||
"client_pid": 42381
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
{"pid": 354371, "method": "XTest to decoded unique GTK marker; actual buttons/masked entry; submit has no backend; no USB/scanout", "hover": {"samples_ms": [178.57448200811632, 197.69827400159556, 162.49186400091276, 146.33253899228293, 183.9545060065575, 146.01579200825654, 166.1364909959957, 192.4687470018398, 140.93326398869976, 170.40761098905932, 130.25429600384086, 149.79033399140462, 147.36502699088305, 171.34793299192097, 140.67922400136013, 209.93443099723663, 171.2703499943018, 196.47124300536234, 161.18245999678038, 180.97574400599115, 166.86477199255023, 151.43810700101312, 183.07192900101654, 141.6548370034434], "p50": 166.50063149427297, "p95": 197.69827400159556, "maximum": 209.93443099723663}, "click_release": {"samples_ms": [257.4923289939761, 303.3968300005654, 307.51015900750645, 273.22628200636245, 289.78947599534877, 220.67785200488288, 307.0895790006034, 233.37104699749034, 247.0398559962632, 291.9942420121515, 270.1069380127592, 265.9521909954492, 286.96012900036294, 283.32125100132544, 331.5912260004552, 283.4998309990624, 340.8977479994064, 230.6568220083136, 227.89726899645757, 290.9694980044151, 322.98202499805484, 309.3181730073411, 278.06292999594007, 269.26877499499824], "p50": 283.4105410001939, "p95": 331.5912260004552, "maximum": 340.8977479994064}, "masked_character": {"samples_ms": [244.65199999394827, 168.10375200293493, 152.95970799343195, 185.5787690001307, 190.88075299805496, 159.54021899960935, 151.98876000067685, 149.26637199823745, 142.085617990233, 182.01551600941457, 164.85578600259032, 169.318653002847, 168.0935420008609, 178.00193399307318, 153.05012199678458, 152.86141600518022, 153.40886800549924, 131.56268899911083, 155.47442898969166, 141.60670500132255, 142.74031699460465, 134.45744900673162, 136.85492299555335, 148.39983900310472], "p50": 153.2294950011419, "p95": 190.88075299805496, "maximum": 244.65199999394827}, "synthetic_submit_ms": 151.72217699000612}
|
||||
@@ -0,0 +1,98 @@
|
||||
{
|
||||
"pid": 40222,
|
||||
"method": "XTest to decoded unique GTK marker; actual buttons/masked entry; submit has no backend; no USB/scanout",
|
||||
"hover": {
|
||||
"samples_ms": [
|
||||
179.4374070000231,
|
||||
177.66267800016067,
|
||||
208.36882899993725,
|
||||
199.27586399990105,
|
||||
148.48014099970896,
|
||||
213.92079799989006,
|
||||
198.48197600003914,
|
||||
178.2961570002044,
|
||||
197.5781329997517,
|
||||
214.10600099989097,
|
||||
177.7525100001185,
|
||||
212.00228400039123,
|
||||
196.16214400002718,
|
||||
160.70637099983287,
|
||||
152.5974529999985,
|
||||
183.83500199979608,
|
||||
156.91950700011148,
|
||||
225.2300620002643,
|
||||
215.25687800021842,
|
||||
188.55662499981918,
|
||||
198.21802900014518,
|
||||
219.25752600009218,
|
||||
206.12453800004005,
|
||||
150.1562919997923
|
||||
],
|
||||
"p50": 196.87013849988944,
|
||||
"p95": 219.25752600009218,
|
||||
"maximum": 225.2300620002643
|
||||
},
|
||||
"click_release": {
|
||||
"samples_ms": [
|
||||
326.73401400006696,
|
||||
274.3639309996979,
|
||||
349.7045670001171,
|
||||
320.1542500000869,
|
||||
308.8067819999196,
|
||||
360.9321670001009,
|
||||
399.3371690003187,
|
||||
359.72587800006295,
|
||||
298.4526960003677,
|
||||
290.17870100005894,
|
||||
311.8793829999049,
|
||||
357.8887379999287,
|
||||
377.508160999696,
|
||||
288.05223700010174,
|
||||
296.05907699988165,
|
||||
283.28161699982957,
|
||||
271.19392499980677,
|
||||
261.88279999996666,
|
||||
257.65757599992867,
|
||||
246.06978300016635,
|
||||
278.55853799974284,
|
||||
336.5990040001634,
|
||||
299.61845300022105,
|
||||
312.11358900009145
|
||||
],
|
||||
"p50": 304.21261750007034,
|
||||
"p95": 377.508160999696,
|
||||
"maximum": 399.3371690003187
|
||||
},
|
||||
"masked_character": {
|
||||
"samples_ms": [
|
||||
152.01677300001393,
|
||||
123.98044099973049,
|
||||
159.24751500006096,
|
||||
165.2842150001561,
|
||||
141.40894399997705,
|
||||
145.89140800035238,
|
||||
155.53414799978782,
|
||||
176.99567199997546,
|
||||
154.7761330002686,
|
||||
167.62854899980084,
|
||||
140.38931400000365,
|
||||
151.679619999868,
|
||||
149.37670199969943,
|
||||
150.03730399985216,
|
||||
176.47535800006153,
|
||||
175.34752400024445,
|
||||
177.99022099961803,
|
||||
164.80910900008894,
|
||||
166.62204399972325,
|
||||
176.02591600007145,
|
||||
176.3773630000287,
|
||||
181.4332240001022,
|
||||
190.9327589996792,
|
||||
181.52742900019803
|
||||
],
|
||||
"p50": 165.04666200012252,
|
||||
"p95": 181.52742900019803,
|
||||
"maximum": 190.9327589996792
|
||||
},
|
||||
"synthetic_submit_ms": 192.79906800011304
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
"""Run on box: XTest input to decoded marker. Excludes USB and scanout."""
|
||||
import ctypes as C
|
||||
import os
|
||||
import json
|
||||
import statistics
|
||||
import subprocess
|
||||
import time
|
||||
os.environ.update(DISPLAY=':0',XAUTHORITY='/home/armbian/.Xauthority')
|
||||
x=C.CDLL('libX11.so.6'); t=C.CDLL('libXtst.so.6')
|
||||
x.XOpenDisplay.restype=C.c_void_p
|
||||
x.XDefaultRootWindow.argtypes=[C.c_void_p]; x.XDefaultRootWindow.restype=C.c_ulong
|
||||
x.XSync.argtypes=[C.c_void_p,C.c_int]
|
||||
x.XGetImage.argtypes=[C.c_void_p,C.c_ulong,C.c_int,C.c_int,C.c_uint,C.c_uint,C.c_ulong,C.c_int]; x.XGetImage.restype=C.c_void_p
|
||||
x.XGetPixel.argtypes=[C.c_void_p,C.c_int,C.c_int]; x.XGetPixel.restype=C.c_ulong
|
||||
x.XDestroyImage.argtypes=[C.c_void_p]
|
||||
x.XStringToKeysym.argtypes=[C.c_char_p]; x.XStringToKeysym.restype=C.c_ulong
|
||||
x.XKeysymToKeycode.argtypes=[C.c_void_p,C.c_ulong];x.XKeysymToKeycode.restype=C.c_uint
|
||||
t.XTestFakeMotionEvent.argtypes=[C.c_void_p,C.c_int,C.c_int,C.c_int,C.c_ulong]
|
||||
t.XTestFakeButtonEvent.argtypes=[C.c_void_p,C.c_uint,C.c_int,C.c_ulong]
|
||||
t.XTestFakeKeyEvent.argtypes=[C.c_void_p,C.c_uint,C.c_int,C.c_ulong]
|
||||
d=x.XOpenDisplay(None);assert d;root=x.XDefaultRootWindow(d)
|
||||
pid=int(subprocess.check_output(['pgrep','-x','moonlight']).strip())
|
||||
assert int(subprocess.check_output(['xdotool','getwindowfocus','getwindowpid']).strip())==pid
|
||||
|
||||
def key(name):
|
||||
code=x.XKeysymToKeycode(d,x.XStringToKeysym(name.encode()));assert code
|
||||
t.XTestFakeKeyEvent(d,code,1,0);t.XTestFakeKeyEvent(d,code,0,0);x.XSync(d,0)
|
||||
def move(px,py):
|
||||
t.XTestFakeMotionEvent(d,-1,px,py,0);x.XSync(d,0)
|
||||
def read():
|
||||
im=x.XGetImage(d,root,40,1380,1320,1,0xffffffff,2);assert im
|
||||
try:
|
||||
def val(offset,n):
|
||||
pixels=[x.XGetPixel(im,offset+20+i*40,0)&0xffffff for i in range(n)]
|
||||
if any(0x404040<v<0xc0c0c0 for v in pixels):return -1
|
||||
return sum((1<<i) for i,v in enumerate(pixels) if v>0xc0c0c0)
|
||||
return val(0,16),val(760,8),val(1120,4)
|
||||
finally:x.XDestroyImage(im)
|
||||
def await_marker(m,s):
|
||||
deadline=time.monotonic()+4
|
||||
while time.monotonic()<deadline:
|
||||
seen,magic,mode=read()
|
||||
if (seen,magic,mode)==(s,0x5a,m):return
|
||||
time.sleep(.002)
|
||||
raise AssertionError(('marker timeout',m,s,read()))
|
||||
def sample(m,s,action):
|
||||
start=time.monotonic();action();await_marker(m,s);return (time.monotonic()-start)*1000
|
||||
def stats(a):
|
||||
b=sorted(a);return dict(samples_ms=a,p50=statistics.median(b),p95=b[int(len(b)*.95)],maximum=max(b))
|
||||
|
||||
result={'pid':pid,'method':'XTest to decoded unique GTK marker; actual buttons/masked entry; submit has no backend; no USB/scanout'}
|
||||
for m in [1,2,3]:
|
||||
move(300,300);time.sleep(.4);key('F'+str(m));await_marker(m,0)
|
||||
values=[]
|
||||
for i in range(1,25):
|
||||
px=750 if i%2 else 1750
|
||||
if m==1: action=lambda:move(px,550)
|
||||
elif m==2:
|
||||
move(px,550);time.sleep(.12)
|
||||
def action():
|
||||
t.XTestFakeButtonEvent(d,1,1,0);x.XSync(d,0);time.sleep(.04)
|
||||
t.XTestFakeButtonEvent(d,1,0,0);x.XSync(d,0)
|
||||
else:action=lambda:key('a')
|
||||
values.append(sample(m,i,action));time.sleep(.12)
|
||||
result[{1:'hover',2:'click_release',3:'masked_character'}[m]]=stats(values)
|
||||
if m==3:result['synthetic_submit_ms']=sample(m,1024,lambda:key('Return'))
|
||||
print(json.dumps(result))
|
||||
@@ -0,0 +1,72 @@
|
||||
"""Temporary real GTK buttons and masked entry; no authentication or passwords saved."""
|
||||
import json
|
||||
import time
|
||||
import gi
|
||||
gi.require_version('Gtk', '3.0')
|
||||
from gi.repository import Gtk, Gdk, GLib
|
||||
|
||||
w = Gtk.Window(title='VDI response probe')
|
||||
overlay = Gtk.Overlay(); w.add(overlay)
|
||||
area = Gtk.DrawingArea(); overlay.add(area)
|
||||
fixed = Gtk.Fixed(); overlay.add_overlay(fixed)
|
||||
seq = mode = 0
|
||||
entry = Gtk.Entry(); entry.set_visibility(False); entry.set_size_request(600, 70)
|
||||
entry.set_placeholder_text('Synthetic masked input; no real credential')
|
||||
fixed.put(entry, 900, 850)
|
||||
buttons = []
|
||||
for i in range(2):
|
||||
b = Gtk.Button(label='Application '+str(i+1))
|
||||
b.set_size_request(300, 250); fixed.put(b, 600+i*1000, 450); buttons.append(b)
|
||||
|
||||
def log(event):
|
||||
print(json.dumps(dict(t=time.monotonic(), event=event, mode=mode, seq=seq)), flush=True)
|
||||
|
||||
def enter(button, event):
|
||||
global seq
|
||||
if mode == 1:
|
||||
seq += 1; area.queue_draw(); log('hover')
|
||||
return False
|
||||
|
||||
def click(button):
|
||||
global seq
|
||||
if mode == 2:
|
||||
seq += 1; area.queue_draw(); log('click')
|
||||
|
||||
def changed(widget):
|
||||
global seq
|
||||
if mode == 3:
|
||||
seq = widget.get_text_length(); area.queue_draw(); log('masked-count')
|
||||
|
||||
def submit(widget):
|
||||
global seq
|
||||
if mode == 3:
|
||||
seq = 1000 + widget.get_text_length(); area.queue_draw(); log('synthetic-submit')
|
||||
|
||||
def key(widget, event):
|
||||
global mode, seq
|
||||
if event.keyval in (Gdk.KEY_F1, Gdk.KEY_F2, Gdk.KEY_F3):
|
||||
mode = 0; entry.set_text(''); mode = event.keyval-Gdk.KEY_F1+1; seq = 0
|
||||
if mode == 3: entry.grab_focus()
|
||||
else: area.grab_focus()
|
||||
area.queue_draw(); log('mode'); return True
|
||||
return False
|
||||
|
||||
def draw(widget, cr):
|
||||
cr.set_source_rgb(.94, .96, .98); cr.paint()
|
||||
cr.set_source_rgb(.1, .15, .2); cr.set_font_size(26); cr.move_to(60, 80)
|
||||
cr.show_text('VDI: GTK hover / click / masked input and synthetic page response')
|
||||
if seq >= 1000:
|
||||
cr.move_to(60, 180); cr.show_text('Synthetic page ready (no backend authentication)')
|
||||
for start, bits, val in [(40,16,seq),(800,8,0x5a),(1160,4,mode)]:
|
||||
for i in range(bits):
|
||||
v = float(bool(val & (1 << i))); cr.set_source_rgb(v,v,v)
|
||||
cr.rectangle(start+i*40,1350,40,70); cr.fill()
|
||||
return False
|
||||
|
||||
for b in buttons:
|
||||
b.connect('enter-notify-event',enter); b.connect('clicked',click)
|
||||
entry.connect('changed',changed); entry.connect('activate',submit)
|
||||
area.set_can_focus(True); area.connect('draw',draw)
|
||||
w.connect('key-press-event',key); w.connect('destroy',Gtk.main_quit)
|
||||
GLib.timeout_add_seconds(600, lambda: (Gtk.main_quit(),False)[1])
|
||||
w.fullscreen(); w.show_all(); w.present(); log('ready'); Gtk.main()
|
||||
@@ -0,0 +1,98 @@
|
||||
{
|
||||
"pid": 38284,
|
||||
"method": "XTest to decoded unique GTK marker; actual buttons/masked entry; submit has no backend; no USB/scanout",
|
||||
"hover": {
|
||||
"samples_ms": [
|
||||
161.9723610001529,
|
||||
232.07568699990588,
|
||||
235.94742100021904,
|
||||
248.71466600006897,
|
||||
234.44043499966938,
|
||||
227.53052100006244,
|
||||
220.13616399999592,
|
||||
189.33990799996536,
|
||||
301.9308159996399,
|
||||
238.9576059999854,
|
||||
221.49382399993556,
|
||||
261.52157799970155,
|
||||
251.48131800006013,
|
||||
271.03219099990383,
|
||||
232.2783919998983,
|
||||
268.6922350003442,
|
||||
302.4181780001527,
|
||||
286.5821289997257,
|
||||
236.30528800003958,
|
||||
258.2019520000358,
|
||||
178.59646900024018,
|
||||
202.35885600004622,
|
||||
229.3306270003086,
|
||||
257.8586740000901
|
||||
],
|
||||
"p50": 236.1263545001293,
|
||||
"p95": 301.9308159996399,
|
||||
"maximum": 302.4181780001527
|
||||
},
|
||||
"click_release": {
|
||||
"samples_ms": [
|
||||
341.7477110001528,
|
||||
312.60981200011884,
|
||||
311.248653000348,
|
||||
353.3086679999542,
|
||||
293.28059899989967,
|
||||
313.67231700005505,
|
||||
274.033340999722,
|
||||
335.19799499981673,
|
||||
330.50933300000906,
|
||||
373.78467899998213,
|
||||
314.9255670000457,
|
||||
376.5717470000709,
|
||||
344.0299280000545,
|
||||
363.27543900006276,
|
||||
345.92948499994236,
|
||||
387.3300670002209,
|
||||
343.66623699997945,
|
||||
379.99258499985444,
|
||||
372.03504199987947,
|
||||
331.58234399979847,
|
||||
343.5160359999827,
|
||||
290.8111579999968,
|
||||
255.34694499992838,
|
||||
335.03497199990306
|
||||
],
|
||||
"p50": 338.47285299998475,
|
||||
"p95": 379.99258499985444,
|
||||
"maximum": 387.3300670002209
|
||||
},
|
||||
"masked_character": {
|
||||
"samples_ms": [
|
||||
272.9139750003924,
|
||||
219.77598600005877,
|
||||
217.20095499995296,
|
||||
178.2925749998867,
|
||||
234.2179219999707,
|
||||
185.61810199980755,
|
||||
181.28263400012656,
|
||||
182.37138599988612,
|
||||
173.20171899973502,
|
||||
161.4812279999569,
|
||||
194.62385899987567,
|
||||
203.74802900005307,
|
||||
190.66841999983808,
|
||||
219.02905900014957,
|
||||
218.40374700013854,
|
||||
224.31795100010277,
|
||||
196.303799999896,
|
||||
197.53867200006425,
|
||||
209.46769900001527,
|
||||
237.62271999976292,
|
||||
210.94902000004367,
|
||||
213.11194200006867,
|
||||
197.15310399988084,
|
||||
190.0804430001699
|
||||
],
|
||||
"p50": 200.64335050005866,
|
||||
"p95": 237.62271999976292,
|
||||
"maximum": 272.9139750003924
|
||||
},
|
||||
"synthetic_submit_ms": 225.34020800003418
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
"""Local SSH harness; uses existing credential helper without copying credentials."""
|
||||
import json
|
||||
import sys
|
||||
import tempfile
|
||||
import time
|
||||
from pathlib import Path
|
||||
sys.path.insert(0, tempfile.gettempdir())
|
||||
from vdi_ubuntu_remote import ROOT, box, guest, password, run
|
||||
|
||||
g, b = guest(), box()
|
||||
env = 'DISPLAY=:0 XAUTHORITY=/run/user/1000/gdm/Xauthority XDG_RUNTIME_DIR=/run/user/1000 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus '
|
||||
try:
|
||||
s = g.open_sftp()
|
||||
s.put(str(ROOT/'docs/evidence/ubuntu-drag-20261105/drag-source.py'), '/tmp/vdi-ubuntu-drag-source.py')
|
||||
s.close()
|
||||
i, o, e = g.exec_command('sudo -S -p "" loginctl unlock-sessions')
|
||||
i.write(password()+'\n'); i.flush(); i.channel.shutdown_write()
|
||||
assert o.channel.recv_exit_status() == 0, e.read().decode()
|
||||
print(run(b, 'DISPLAY=:0 XAUTHORITY=/home/armbian/.Xauthority xdotool key Escape'))
|
||||
print(run(g, env+'systemd-run --user --unit=vdi-deep-drag --collect /usr/bin/python3 /tmp/vdi-ubuntu-drag-source.py'))
|
||||
time.sleep(4)
|
||||
s = b.open_sftp()
|
||||
s.put(str(ROOT/'docs/evidence/ubuntu-drag-20261105/drag-probe.py'), '/tmp/vdi-deep-drag-probe.py')
|
||||
s.close()
|
||||
result = run(b, 'python3 /tmp/vdi-deep-drag-probe.py', 30)
|
||||
print(result['err'])
|
||||
assert result['rc'] == 0, result
|
||||
d = json.loads(result['out'])
|
||||
(Path(__file__).parent/(sys.argv[1]+'.json')).write_text(json.dumps(d, indent=2), encoding='utf-8')
|
||||
print({k: v for k, v in d.items() if k != 'frames'})
|
||||
finally:
|
||||
print(run(g, 'XDG_RUNTIME_DIR=/run/user/1000 systemctl --user stop vdi-deep-drag'))
|
||||
g.close(); b.close()
|
||||
@@ -0,0 +1,50 @@
|
||||
"""Ubuntu-only recovery checks, using the existing kiosk entry and SSH identities."""
|
||||
import json
|
||||
from pathlib import Path
|
||||
import sys
|
||||
import tempfile
|
||||
import time
|
||||
sys.path.insert(0, tempfile.gettempdir())
|
||||
from vdi_ubuntu_remote import box, guest, run
|
||||
|
||||
b, g = box(), guest()
|
||||
benv = 'DISPLAY=:0 XAUTHORITY=/home/armbian/.Xauthority '
|
||||
genv = 'DISPLAY=:0 XAUTHORITY=/run/user/1000/gdm/Xauthority '
|
||||
results = {}
|
||||
|
||||
def state():
|
||||
r = run(g, 'systemctl --user show vdi-sunshine.service -p MainPID -p ExecStart -p ActiveState; '
|
||||
'systemctl --user show vdi-native-cursor-guard.service -p ActiveState; '
|
||||
'test ! -e /run/user/1000/systemd/user/vdi-sunshine.service.d/90-native-cursor.conf && echo no-dropin || true')
|
||||
return r['out']
|
||||
|
||||
def connect():
|
||||
assert run(b, benv+'xdotool mousemove 2390 320 click 1')['rc'] == 0
|
||||
time.sleep(12)
|
||||
s = state()
|
||||
assert 'capture=kms' in s and s.count('ActiveState=active') == 2, s
|
||||
client = run(b, 'pgrep -x moonlight')['out'].strip()
|
||||
assert client.isdigit(), client
|
||||
return dict(host=s, client_pid=int(client))
|
||||
|
||||
try:
|
||||
assert run(b, benv+'xdotool key ctrl+alt+shift+q')['rc'] == 0
|
||||
time.sleep(4)
|
||||
results['normal_exit'] = state()
|
||||
assert 'capture=kms' not in results['normal_exit'] and 'no-dropin' in results['normal_exit']
|
||||
assert run(g, genv+'xset dpms force off')['rc'] == 0
|
||||
time.sleep(1)
|
||||
results['reconnect_from_idle'] = connect()
|
||||
assert run(g, 'systemctl --user kill --kill-whom=main --signal=SIGKILL vdi-native-cursor-guard.service')['rc'] == 0
|
||||
time.sleep(6)
|
||||
results['guard_kill'] = state()
|
||||
results['client_after_guard_kill'] = run(b, 'pgrep -x moonlight')['out'].strip()
|
||||
assert 'capture=kms' not in results['guard_kill'] and 'no-dropin' in results['guard_kill']
|
||||
assert results['client_after_guard_kill'] == ''
|
||||
run(g, 'systemctl --user reset-failed vdi-native-cursor-guard.service')
|
||||
results['final_reconnect'] = connect()
|
||||
finally:
|
||||
(Path(__file__).parent/'kms-lifecycle.json').write_text(json.dumps(results, indent=2), encoding='utf-8')
|
||||
g.close()
|
||||
b.close()
|
||||
print(json.dumps(results))
|
||||
@@ -0,0 +1,39 @@
|
||||
"""Run the controlled GTK response or native-cursor check via existing SSH credentials."""
|
||||
import json
|
||||
from pathlib import Path
|
||||
import sys
|
||||
import tempfile
|
||||
import time
|
||||
sys.path.insert(0, tempfile.gettempdir())
|
||||
from vdi_ubuntu_remote import ROOT, box, guest, run
|
||||
|
||||
kind, name = sys.argv[1:3]
|
||||
assert kind in ('response', 'cursor')
|
||||
folder = ROOT / 'docs/evidence' / ('native-cursor-20261105' if kind == 'cursor' else 'ubuntu-deep-latency-20261105')
|
||||
source = folder / ('source.py' if kind == 'cursor' else 'response-source.py')
|
||||
probe = folder / ('probe.py' if kind == 'cursor' else 'response-probe.py')
|
||||
g, b = guest(), box()
|
||||
env = 'DISPLAY=:0 XAUTHORITY=/run/user/1000/gdm/Xauthority XDG_RUNTIME_DIR=/run/user/1000 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus '
|
||||
unit = 'vdi-deep-response'
|
||||
invocation = ''
|
||||
try:
|
||||
for client, local, remote in [(g, source, '/tmp/vdi-response-source.py'),
|
||||
(b, probe, '/tmp/vdi-response-probe.py')]:
|
||||
with client.open_sftp() as s:
|
||||
s.put(str(local), remote)
|
||||
started = run(g, env + 'systemd-run --user --unit=' + unit + ' --collect /usr/bin/python3 /tmp/vdi-response-source.py')
|
||||
assert started['rc'] == 0, started
|
||||
invocation = run(g, 'systemctl --user show ' + unit + ' -p InvocationID --value')['out'].strip()
|
||||
time.sleep(4)
|
||||
result = run(b, 'python3 /tmp/vdi-response-probe.py' + (' 192.168.1.72' if kind == 'cursor' else ''), 100)
|
||||
if result['rc']:
|
||||
raise RuntimeError(result)
|
||||
data = json.loads(result['out'])
|
||||
(Path(__file__).parent / (name + '.json')).write_text(json.dumps(data, indent=2), encoding='utf-8')
|
||||
print(json.dumps(data, ensure_ascii=False))
|
||||
finally:
|
||||
print(run(g, env + 'systemctl --user stop ' + unit))
|
||||
log = run(g, 'journalctl --user _SYSTEMD_INVOCATION_ID=' + invocation + ' --no-pager') if invocation else {'out': ''}
|
||||
(Path(__file__).parent / (name + '-source.log')).write_text(log['out'], encoding='utf-8')
|
||||
g.close()
|
||||
b.close()
|
||||
@@ -0,0 +1,28 @@
|
||||
import base64
|
||||
import runpy
|
||||
import sys
|
||||
from pathlib import Path
|
||||
ROOT = Path(__file__).resolve().parents[3]
|
||||
term = runpy.run_path(str(ROOT/'tools/pve_term_exec.py'))
|
||||
vm = runpy.run_path(str(ROOT/'tools/pve_vm.py'))
|
||||
ticket, csrf = term['login']()
|
||||
task = 'VDIDeepLatencyReference20261105'
|
||||
folder = r'C:\ProgramData\VDI\deep-latency-20261105'
|
||||
if sys.argv[1] == 'start':
|
||||
encoded = base64.b64encode(Path(__file__).with_name('windows-drag.ps1').read_bytes()).decode()
|
||||
ps = r"""$ErrorActionPreference='Stop'; $folder='"""+folder+r"""';
|
||||
New-Item -ItemType Directory -Force $folder | Out-Null
|
||||
if (Get-ScheduledTask -TaskName '"""+task+r"""' -ErrorAction SilentlyContinue) { throw 'Task already exists' }
|
||||
[IO.File]::WriteAllBytes("$folder\drag.ps1",[Convert]::FromBase64String('"""+encoded+r"""'))
|
||||
$action=New-ScheduledTaskAction -Execute powershell.exe -Argument "-NoProfile -ExecutionPolicy Bypass -STA -WindowStyle Hidden -File $folder\drag.ps1"
|
||||
$principal=New-ScheduledTaskPrincipal -UserId test -LogonType Interactive -RunLevel Limited
|
||||
$settings=New-ScheduledTaskSettingsSet -ExecutionTimeLimit (New-TimeSpan -Minutes 10)
|
||||
Register-ScheduledTask -TaskName '"""+task+r"""' -Action $action -Principal $principal -Settings $settings | Out-Null
|
||||
Start-ScheduledTask -TaskName '"""+task+r"""'
|
||||
'Started temporary reference'
|
||||
"""
|
||||
else:
|
||||
ps = "Stop-ScheduledTask -TaskName '"+task+"' -ErrorAction SilentlyContinue; Unregister-ScheduledTask -TaskName '"+task+"' -Confirm:$false -ErrorAction SilentlyContinue; 'Stopped temporary reference'"
|
||||
out, err = vm['agent'](ticket, csrf, ['powershell.exe','-NoProfile','-Command',ps])
|
||||
print(out)
|
||||
if err: raise RuntimeError(err)
|
||||
|
After Width: | Height: | Size: 757 KiB |
@@ -0,0 +1,156 @@
|
||||
[Thread debugging using libthread_db enabled]
|
||||
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
|
||||
[New Thread 0x7ffff1c10000 (LWP 4119)]
|
||||
[New Thread 0x7ffff140f000 (LWP 4120)]
|
||||
[2026-11-05 14:20:13.495941] [0x00007ffff1c17000] [info] config: 'adapter_name' = /dev/dri/renderD128
|
||||
[2026-11-05 14:20:13.495974] [0x00007ffff1c17000] [info] config: 'system_tray' = disabled
|
||||
[2026-11-05 14:20:13.495978] [0x00007ffff1c17000] [info] config: 'audio_sink' = vdi_audio
|
||||
[2026-11-05 14:20:13.495981] [0x00007ffff1c17000] [info] config: 'origin_web_ui_allowed' = pc
|
||||
[2026-11-05 14:20:13.495984] [0x00007ffff1c17000] [info] config: 'upnp' = disabled
|
||||
[2026-11-05 14:20:13.495987] [0x00007ffff1c17000] [info] config: 'sw_tune' = zerolatency
|
||||
[2026-11-05 14:20:13.495989] [0x00007ffff1c17000] [info] config: 'hevc_mode' = 1
|
||||
[2026-11-05 14:20:13.495992] [0x00007ffff1c17000] [info] config: 'encoder' = vaapi
|
||||
[2026-11-05 14:20:13.495994] [0x00007ffff1c17000] [info] config: 'capture' = x11
|
||||
[2026-11-05 14:20:13.495997] [0x00007ffff1c17000] [info] config: 'sw_preset' = ultrafast
|
||||
[2026-11-05 14:20:13.495999] [0x00007ffff1c17000] [info] config: 'sunshine_name' = VDI-Ubuntu
|
||||
[New Thread 0x7ffff0c0e000 (LWP 4121)]
|
||||
[2026-11-05 14:20:13.496]: Info: Sunshine version: 2026.914.233613 commit: 63d35f702ee9e362e43263742981836ec0710384
|
||||
[2026-11-05 14:20:13.496]: Info: Package Publisher: LizardByte
|
||||
[2026-11-05 14:20:13.496]: Info: Publisher Website: https://app.lizardbyte.dev
|
||||
[2026-11-05 14:20:13.496]: Info: Get support: https://app.lizardbyte.dev/support
|
||||
[2026-11-05 14:20:13.496]: Info: config: 'sunshine_name' = VDI-Ubuntu
|
||||
[2026-11-05 14:20:13.496]: Info: config: 'sw_preset' = ultrafast
|
||||
[2026-11-05 14:20:13.496]: Info: config: 'capture' = x11
|
||||
[2026-11-05 14:20:13.496]: Info: config: 'encoder' = vaapi
|
||||
[2026-11-05 14:20:13.496]: Info: config: 'hevc_mode' = 1
|
||||
[2026-11-05 14:20:13.496]: Info: config: 'sw_tune' = zerolatency
|
||||
[2026-11-05 14:20:13.496]: Info: config: 'upnp' = disabled
|
||||
[2026-11-05 14:20:13.496]: Info: config: 'origin_web_ui_allowed' = pc
|
||||
[2026-11-05 14:20:13.496]: Info: config: 'audio_sink' = vdi_audio
|
||||
[2026-11-05 14:20:13.496]: Info: config: 'system_tray' = disabled
|
||||
[2026-11-05 14:20:13.496]: Info: config: 'adapter_name' = /dev/dri/renderD128
|
||||
[New Thread 0x7fffe83ff000 (LWP 4122)]
|
||||
[2026-11-05 14:20:13.508]: Info: Detecting displays
|
||||
[2026-11-05 14:20:13.510]: Info: Detected display: Virtual-1 (id: 0)Virtual-1 connected: true
|
||||
[New Thread 0x7fffe93ff000 (LWP 4123)]
|
||||
[2026-11-05 14:20:13.813]: Info: Trying encoder [vaapi]
|
||||
[2026-11-05 14:20:13.813]: Error: Failed to gain CAP_SYS_ADMIN
|
||||
[2026-11-05 14:20:13.813]: Info: [misc] drop_elevated_privileges succeeded in dropping capabilities
|
||||
[2026-11-05 14:20:13.813]: Info: Screencasting with X11
|
||||
[2026-11-05 14:20:13.822]: Warning: Couldn't get info for requested display [], defaulting to recording entire virtual desktop
|
||||
[2026-11-05 14:20:13.823]: Info: Creating encoder [h264_vaapi]
|
||||
[2026-11-05 14:20:13.823]: Info: Color coding: SDR (Rec. 601)
|
||||
[2026-11-05 14:20:13.823]: Info: Color depth: 8-bit
|
||||
[2026-11-05 14:20:13.823]: Info: Color range: JPEG
|
||||
[New Thread 0x7fffde3ef000 (LWP 4135)]
|
||||
[2026-11-05 14:20:13.855]: Warning: EGL: context priority set to MEDIUM but CAP_SYS_NICE capability is missing
|
||||
[New Thread 0x7fffddbee000 (LWP 4136)]
|
||||
[2026-11-05 14:20:13.864]: Info: vaapi vendor: Mesa Gallium driver 25.2.8-0ubuntu0.24.04.4 for virgl (Mesa Intel(R) HD Graphics 4600 (HSW GT2))
|
||||
[2026-11-05 14:20:13.865]: Info: Streaming bitrate is 1000000
|
||||
[2026-11-05 14:20:13.865]: Info: Using normal encoding mode
|
||||
[2026-11-05 14:20:13.865]: Info: [VAAPI] Using VBR rate control with single frame VBV size (whitelist override)
|
||||
|
||||
Thread 1 "sunshine" received signal SIGSEGV, Segmentation fault.
|
||||
0x00005555557259c7 in ?? ()
|
||||
|
||||
Thread 8 (Thread 0x7fffddbee000 (LWP 4136) "sunshin:disk$0"):
|
||||
#0 0x00007ffff5898e51 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x5555573216c8) at ./nptl/futex-internal.c:57
|
||||
#1 __futex_abstimed_wait_common (cancel=true, private=0, abstime=0x0, clockid=0, expected=0, futex_word=0x5555573216c8) at ./nptl/futex-internal.c:87
|
||||
#2 __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x5555573216c8, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ./nptl/futex-internal.c:139
|
||||
#3 0x00007ffff589b8cd in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x555557321670, cond=0x5555573216a0) at ./nptl/pthread_cond_wait.c:503
|
||||
#4 ___pthread_cond_wait (cond=0x5555573216a0, mutex=0x555557321670) at ./nptl/pthread_cond_wait.c:627
|
||||
#5 0x00007fffe9999edd in ?? () from /home/test2/vdi-terminal/experiments/virgl-video-20261105/root/usr/lib/x86_64-linux-gnu/libgallium-25.2.8-0ubuntu0.24.04.4.so
|
||||
#6 0x00007fffe9965fbb in ?? () from /home/test2/vdi-terminal/experiments/virgl-video-20261105/root/usr/lib/x86_64-linux-gnu/libgallium-25.2.8-0ubuntu0.24.04.4.so
|
||||
#7 0x00007fffe9999e0c in ?? () from /home/test2/vdi-terminal/experiments/virgl-video-20261105/root/usr/lib/x86_64-linux-gnu/libgallium-25.2.8-0ubuntu0.24.04.4.so
|
||||
#8 0x00007ffff589cb84 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
|
||||
#9 0x00007ffff5929ecc in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
|
||||
|
||||
Thread 7 (Thread 0x7fffde3ef000 (LWP 4135) "sunshin:disk$0"):
|
||||
#0 0x00007ffff5898e51 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x5555572b1a08) at ./nptl/futex-internal.c:57
|
||||
#1 __futex_abstimed_wait_common (cancel=true, private=0, abstime=0x0, clockid=0, expected=0, futex_word=0x5555572b1a08) at ./nptl/futex-internal.c:87
|
||||
#2 __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x5555572b1a08, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ./nptl/futex-internal.c:139
|
||||
#3 0x00007ffff589b8cd in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x5555572b19b0, cond=0x5555572b19e0) at ./nptl/pthread_cond_wait.c:503
|
||||
#4 ___pthread_cond_wait (cond=0x5555572b19e0, mutex=0x5555572b19b0) at ./nptl/pthread_cond_wait.c:627
|
||||
#5 0x00007fffd5999edd in ?? () from /lib/x86_64-linux-gnu/libgallium-25.2.8-0ubuntu0.24.04.1.so
|
||||
#6 0x00007fffd5965fbb in ?? () from /lib/x86_64-linux-gnu/libgallium-25.2.8-0ubuntu0.24.04.1.so
|
||||
#7 0x00007fffd5999e0c in ?? () from /lib/x86_64-linux-gnu/libgallium-25.2.8-0ubuntu0.24.04.1.so
|
||||
#8 0x00007ffff589cb84 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
|
||||
#9 0x00007ffff5929ecc in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
|
||||
|
||||
Thread 6 (Thread 0x7fffe93ff000 (LWP 4123) "sunshine"):
|
||||
#0 0x00007ffff58ecbdf in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=0x7fffe93fa7c0, rem=0x7fffe93fa7c0) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:78
|
||||
#1 0x00007ffff58f9b27 in __GI___nanosleep (req=<optimized out>, rem=<optimized out>) at ../sysdeps/unix/sysv/linux/nanosleep.c:25
|
||||
#2 0x00005555559d0d0c in ?? ()
|
||||
#3 0x0000555556b3c224 in ?? ()
|
||||
#4 0x00007ffff589cb84 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
|
||||
#5 0x00007ffff5929ecc in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
|
||||
|
||||
Thread 5 (Thread 0x7fffe83ff000 (LWP 4122) "TaskPool::worke"):
|
||||
#0 0x00007ffff5898e51 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x7fffe83fa810, op=137, expected=0, futex_word=0x555556f84914) at ./nptl/futex-internal.c:57
|
||||
#1 __futex_abstimed_wait_common (cancel=true, private=0, abstime=0x7fffe83fa810, clockid=0, expected=0, futex_word=0x555556f84914) at ./nptl/futex-internal.c:87
|
||||
#2 __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x555556f84914, expected=expected@entry=0, clockid=clockid@entry=1, abstime=abstime@entry=0x7fffe83fa810, private=private@entry=0) at ./nptl/futex-internal.c:139
|
||||
#3 0x00007ffff589c1f6 in __pthread_cond_wait_common (abstime=<optimized out>, clockid=<optimized out>, mutex=0x555556f84918, cond=0x555556f848e8) at ./nptl/pthread_cond_wait.c:503
|
||||
#4 ___pthread_cond_clockwait64 (abstime=<optimized out>, clockid=<optimized out>, mutex=0x555556f84918, cond=0x555556f848e8) at ./nptl/pthread_cond_wait.c:691
|
||||
#5 ___pthread_cond_clockwait64 (cond=0x555556f848e8, mutex=0x555556f84918, clockid=<optimized out>, abstime=<optimized out>) at ./nptl/pthread_cond_wait.c:679
|
||||
#6 0x0000555555784398 in ?? ()
|
||||
#7 0x0000555556b3c224 in ?? ()
|
||||
#8 0x00007ffff589cb84 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
|
||||
#9 0x00007ffff5929ecc in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
|
||||
|
||||
Thread 4 (Thread 0x7ffff0c0e000 (LWP 4121) "sunshine"):
|
||||
#0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
|
||||
#1 0x00005555569b1372 in ?? ()
|
||||
#2 0x000055555577a37c in ?? ()
|
||||
#3 0x0000555556b3c224 in ?? ()
|
||||
#4 0x00007ffff589cb84 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
|
||||
#5 0x00007ffff5929ecc in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
|
||||
|
||||
Thread 3 (Thread 0x7ffff140f000 (LWP 4120) "egl_worker"):
|
||||
#0 0x00007ffff5898e51 in __futex_abstimed_wait_common64 (private=21845, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x555556f8d03c) at ./nptl/futex-internal.c:57
|
||||
#1 __futex_abstimed_wait_common (cancel=true, private=21845, abstime=0x0, clockid=0, expected=0, futex_word=0x555556f8d03c) at ./nptl/futex-internal.c:87
|
||||
#2 __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x555556f8d03c, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ./nptl/futex-internal.c:139
|
||||
#3 0x00007ffff589b8cd in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x555556f8cfe8, cond=0x555556f8d010) at ./nptl/pthread_cond_wait.c:503
|
||||
#4 ___pthread_cond_wait (cond=0x555556f8d010, mutex=0x555556f8cfe8) at ./nptl/pthread_cond_wait.c:627
|
||||
#5 0x000055555596411c in ?? ()
|
||||
#6 0x0000555556b3c224 in ?? ()
|
||||
#7 0x00007ffff589cb84 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
|
||||
#8 0x00007ffff5929ecc in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
|
||||
|
||||
Thread 2 (Thread 0x7ffff1c10000 (LWP 4119) "drm_worker"):
|
||||
#0 0x00007ffff5898e51 in __futex_abstimed_wait_common64 (private=21845, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x555556f863fc) at ./nptl/futex-internal.c:57
|
||||
#1 __futex_abstimed_wait_common (cancel=true, private=21845, abstime=0x0, clockid=0, expected=0, futex_word=0x555556f863fc) at ./nptl/futex-internal.c:87
|
||||
#2 __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x555556f863fc, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ./nptl/futex-internal.c:139
|
||||
#3 0x00007ffff589b8cd in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x555556f863a8, cond=0x555556f863d0) at ./nptl/pthread_cond_wait.c:503
|
||||
#4 ___pthread_cond_wait (cond=0x555556f863d0, mutex=0x555556f863a8) at ./nptl/pthread_cond_wait.c:627
|
||||
#5 0x00005555558ffa3c in ?? ()
|
||||
#6 0x0000555556b3c224 in ?? ()
|
||||
#7 0x00007ffff589cb84 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
|
||||
#8 0x00007ffff5929ecc in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
|
||||
|
||||
Thread 1 (Thread 0x7ffff1c17000 (LWP 4116) "sunshine"):
|
||||
#0 0x00005555557259c7 in ?? ()
|
||||
#1 0x00005555558aeb46 in ?? ()
|
||||
#2 0x00005555558afc26 in ?? ()
|
||||
#3 0x00005555558b0950 in ?? ()
|
||||
#4 0x0000555555707092 in main ()
|
||||
|
||||
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libcap.so.2
|
||||
warning: could not find '.gnu_debugaltlink' file for /home/test2/vdi-terminal/experiments/virgl-video-20261105/root/usr/lib/x86_64-linux-gnu/libgbm.so.1
|
||||
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libgio-2.0.so.0
|
||||
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libgobject-2.0.so.0
|
||||
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libglib-2.0.so.0
|
||||
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libpulse.so.0
|
||||
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libpulse-simple.so.0
|
||||
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libQt6Gui.so.6
|
||||
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/liblber.so.2
|
||||
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libbrotlidec.so.1
|
||||
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libgmodule-2.0.so.0
|
||||
warning: could not find '.gnu_debugaltlink' file for /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-16.1.so
|
||||
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libbrotlicommon.so.1
|
||||
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libtinfo.so.6
|
||||
warning: could not find '.gnu_debugaltlink' file for /usr/lib/x86_64-linux-gnu/gbm/dri_gbm.so
|
||||
libva info: VA-API version 1.20.0
|
||||
libva info: User environment variable requested driver 'virtio_gpu'
|
||||
libva info: Trying to open /home/test2/vdi-terminal/experiments/virgl-video-20261105/root/usr/lib/x86_64-linux-gnu/dri/virtio_gpu_drv_video.so
|
||||
libva info: Found init function __vaDriverInit_1_20
|
||||
libva info: va_openDriver() returns 0
|
||||
@@ -0,0 +1,57 @@
|
||||
0
|
||||
[AVHWDeviceContext @ 0x560b30ebdf80] libva: VA-API version 1.20.0
|
||||
[AVHWDeviceContext @ 0x560b30ebdf80] libva: User environment variable requested driver 'virtio_gpu'
|
||||
[AVHWDeviceContext @ 0x560b30ebdf80] libva: Trying to open /home/test2/vdi-terminal/experiments/virgl-video-20261105/root/usr/lib/x86_64-linux-gnu/dri/virtio_gpu_drv_video.so
|
||||
[AVHWDeviceContext @ 0x560b30ebdf80] libva: Found init function __vaDriverInit_1_20
|
||||
[AVHWDeviceContext @ 0x560b30ebdf80] libva: va_openDriver() returns 0
|
||||
[AVHWDeviceContext @ 0x560b30ebdf80] Initialised VAAPI connection: version 1.20
|
||||
[AVHWDeviceContext @ 0x560b30ebdf80] VAAPI driver: Mesa Gallium driver 25.2.8-0ubuntu0.24.04.4 for virgl (Mesa Intel(R) HD Graphics 4600 (HSW GT2)).
|
||||
[AVHWDeviceContext @ 0x560b30ebdf80] Driver not found in known nonstandard list, using standard behaviour.
|
||||
[Parsed_testsrc2_0 @ 0x560b30f39d40] size:2560x1440 rate:30/1 duration:-1.000000 sar:1/1
|
||||
Input #0, lavfi, from 'testsrc2=size=2560x1440:rate=30':
|
||||
Duration: N/A, start: 0.000000, bitrate: N/A
|
||||
Stream #0:0: Video: wrapped_avframe, 1 reference frame, yuv420p, 2560x1440 [SAR 1:1 DAR 16:9], 30 fps, 30 tbr, 30 tbn
|
||||
[out#0/h264 @ 0x560b30f28ac0] No explicit maps, mapping streams automatically...
|
||||
[vost#0:0/h264_vaapi @ 0x560b30f3d780] Created video stream from input stream 0:0
|
||||
Stream mapping:
|
||||
Stream #0:0 -> #0:0 (wrapped_avframe (native) -> h264 (h264_vaapi))
|
||||
Press [q] to stop, [?] for help
|
||||
[graph 0 input from stream 0:0 @ 0x560b30f43bc0] w:2560 h:1440 pixfmt:yuv420p tb:1/30 fr:30/1 sar:1/1
|
||||
[auto_scale_0 @ 0x560b30f44c40] w:iw h:ih flags:'' interl:0
|
||||
[Parsed_format_0 @ 0x560b30f402c0] auto-inserting filter 'auto_scale_0' between the filter 'graph 0 input from stream 0:0' and the filter 'Parsed_format_0'
|
||||
[auto_scale_0 @ 0x560b30f44c40] w:2560 h:1440 fmt:yuv420p sar:1/1 -> w:2560 h:1440 fmt:nv12 sar:1/1 flags:0x00000004
|
||||
[h264_vaapi @ 0x560b30f3db40] Using input frames context (format vaapi) with h264_vaapi encoder.
|
||||
[h264_vaapi @ 0x560b30f3db40] Input surface format is nv12.
|
||||
[h264_vaapi @ 0x560b30f3db40] Using VAAPI profile VAProfileH264High (7).
|
||||
[h264_vaapi @ 0x560b30f3db40] Using VAAPI entrypoint VAEntrypointEncSlice (6).
|
||||
[h264_vaapi @ 0x560b30f3db40] Using VAAPI render target format YUV420 (0x1).
|
||||
[h264_vaapi @ 0x560b30f3db40] RC mode: CBR.
|
||||
[h264_vaapi @ 0x560b30f3db40] RC target: 100% of 30000000 bps over 33 ms.
|
||||
[h264_vaapi @ 0x560b30f3db40] RC buffer: 1000000 bits, initial fullness 750000 bits.
|
||||
[h264_vaapi @ 0x560b30f3db40] RC framerate: 30/1 (30.00 fps).
|
||||
[h264_vaapi @ 0x560b30f3db40] Driver does not report any additional prediction constraints.
|
||||
[h264_vaapi @ 0x560b30f3db40] Using intra and P-frames (supported references: 1 / 0).
|
||||
[h264_vaapi @ 0x560b30f3db40] All wanted packed headers available (wanted 0xd, found 0x1f).
|
||||
[h264_vaapi @ 0x560b30f3db40] Using level 5.
|
||||
Output #0, h264, to '/tmp/vdi-vaapi-test.h264':
|
||||
Metadata:
|
||||
encoder : Lavf60.16.100
|
||||
Stream #0:0: Video: h264 (High), 1 reference frame, vaapi(tv, progressive), 2560x1440 (0x0) [SAR 1:1 DAR 16:9], q=2-31, 30000 kb/s, 30 fps, 30 tbn
|
||||
Metadata:
|
||||
encoder : Lavc60.31.102 h264_vaapi
|
||||
frame= 0 fps=0.0 q=0.0 size= 0kB time=N/A bitrate=N/A speed=N/A ␍No more output streams to write to, finishing.
|
||||
[out#0/h264 @ 0x560b30f28ac0] All streams finished
|
||||
[out#0/h264 @ 0x560b30f28ac0] Terminating muxer thread
|
||||
[vist#0:0/wrapped_avframe @ 0x560b30f3c740] Decoder thread received EOF packet
|
||||
[vist#0:0/wrapped_avframe @ 0x560b30f3c740] Decoder returned EOF, finishing
|
||||
[vist#0:0/wrapped_avframe @ 0x560b30f3c740] Terminating decoder thread
|
||||
[AVIOContext @ 0x560b30f40640] Statistics: 0 bytes written, 0 seeks, 0 writeouts
|
||||
[out#0/h264 @ 0x560b30f28ac0] Output file #0 (/tmp/vdi-vaapi-test.h264):
|
||||
[out#0/h264 @ 0x560b30f28ac0] Output stream #0:0 (video): 90 frames encoded; 89 packets muxed (0 bytes);
|
||||
[out#0/h264 @ 0x560b30f28ac0] Total: 89 packets (0 bytes) muxed
|
||||
[out#0/h264 @ 0x560b30f28ac0] video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
|
||||
frame= 89 fps=0.0 q=-0.0 Lsize= 0kB time=00:00:02.93 bitrate= 0.0kbits/s speed=7.61x
|
||||
[in#0/lavfi @ 0x560b30f382c0] Terminating demuxer thread
|
||||
[in#0/lavfi @ 0x560b30f382c0] Input file #0 (testsrc2=size=2560x1440:rate=30):
|
||||
[in#0/lavfi @ 0x560b30f382c0] Input stream #0:0 (video): 92 packets read (44160 bytes); 90 frames decoded; 0 decode errors;
|
||||
[in#0/lavfi @ 0x560b30f382c0] Total: 92 packets (44160 bytes) demuxed
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"rc": 0,
|
||||
"out": "",
|
||||
"err": ""
|
||||
}
|
||||
@@ -0,0 +1,87 @@
|
||||
/* Isolated VM102 experiment. Requires private virglrenderer >=1.2.0.
|
||||
* Backport asynchronous completion delivery to the QEMU/GLib main thread.
|
||||
* QEMU built against 1.1.0 has compiled out its native async-fence path.
|
||||
* Never install as a global preload. No video acceleration flags are added.
|
||||
*/
|
||||
#define _GNU_SOURCE
|
||||
#define VIRGL_RENDERER_UNSTABLE_APIS
|
||||
#include <virgl/virglrenderer.h>
|
||||
#include <dlfcn.h>
|
||||
#include <fcntl.h>
|
||||
#include <pthread.h>
|
||||
#include <stdatomic.h>
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
|
||||
extern unsigned int g_idle_add_full(int, int (*)(void *), void *, void (*)(void *));
|
||||
static struct virgl_renderer_callbacks original, replaced;
|
||||
static pthread_t main_thread;
|
||||
static atomic_uint epoch;
|
||||
struct completion { void *cookie; uint32_t ctx, ring; uint64_t fence; unsigned epoch; int context; };
|
||||
|
||||
static int deliver(void *opaque) {
|
||||
struct completion *c = opaque;
|
||||
if (!pthread_equal(main_thread, pthread_self())) abort();
|
||||
if (c->epoch != atomic_load(&epoch)) return 0;
|
||||
if (c->context) original.write_context_fence(c->cookie, c->ctx, c->ring, c->fence);
|
||||
else original.write_fence(c->cookie, (uint32_t)c->fence);
|
||||
return 0;
|
||||
}
|
||||
static void schedule(void *cookie, uint32_t ctx, uint32_t ring, uint64_t fence, int context) {
|
||||
struct completion *c = malloc(sizeof(*c));
|
||||
if (!c) abort();
|
||||
*c = (struct completion){cookie, ctx, ring, fence, atomic_load(&epoch), context};
|
||||
if (!g_idle_add_full(0, deliver, c, free)) abort();
|
||||
}
|
||||
static void fence(void *cookie, uint32_t id) { schedule(cookie, 0, 0, id, 0); }
|
||||
static void context_fence(void *cookie, uint32_t ctx, uint32_t ring, uint64_t id) { schedule(cookie, ctx, ring, id, 1); }
|
||||
static int target(void) {
|
||||
char args[32768]; int fd = open("/proc/self/cmdline", O_RDONLY | O_CLOEXEC);
|
||||
if (fd < 0) return 0;
|
||||
ssize_t n = read(fd, args, sizeof(args)); close(fd);
|
||||
if (n <= 0 || n == sizeof(args) || args[n-1]) return 0;
|
||||
for (char *p=args; p<args+n; p+=strlen(p)+1) if (!strcmp(p,"-id")) {
|
||||
p+=strlen(p)+1; return p<args+n && !strcmp(p,"102");
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
int virgl_renderer_init(void *cookie, int flags, struct virgl_renderer_callbacks *cb) {
|
||||
typedef int (*Init)(void *, int, struct virgl_renderer_callbacks *);
|
||||
Init real=(Init)dlsym(RTLD_NEXT,"virgl_renderer_init"); if(!real) abort();
|
||||
if (!target()) return real(cookie,flags,cb);
|
||||
if (!cb || cb->version!=4 || !cb->get_egl_display || !cb->write_fence || !cb->write_context_fence || (flags & VIRGL_RENDERER_ASYNC_FENCE_CB)) return -1;
|
||||
main_thread=pthread_self(); atomic_fetch_add(&epoch,1); original=*cb; replaced=*cb;
|
||||
replaced.write_fence=fence; replaced.write_context_fence=context_fence;
|
||||
fprintf(stderr,"VDI async shim: VM102 flags 0x%x -> 0x%x, main-thread GLib delivery\n",flags,flags|VIRGL_RENDERER_THREAD_SYNC|VIRGL_RENDERER_ASYNC_FENCE_CB);
|
||||
return real(cookie,flags|VIRGL_RENDERER_THREAD_SYNC|VIRGL_RENDERER_ASYNC_FENCE_CB,&replaced);
|
||||
}
|
||||
void virgl_renderer_cleanup(void *cookie) {
|
||||
typedef void (*Cleanup)(void *);
|
||||
Cleanup real=(Cleanup)dlsym(RTLD_NEXT,"virgl_renderer_cleanup"); if(!real) abort();
|
||||
real(cookie); atomic_fetch_add(&epoch,1);
|
||||
}
|
||||
void virgl_renderer_reset(void) {
|
||||
typedef void (*Reset)(void);
|
||||
Reset real=(Reset)dlsym(RTLD_NEXT,"virgl_renderer_reset"); if(!real) abort();
|
||||
atomic_fetch_add(&epoch,1); real();
|
||||
}
|
||||
|
||||
#ifdef VDI_TEST
|
||||
extern int g_main_context_iteration(void *, int);
|
||||
static int seen;
|
||||
static void verify(void *c, uint32_t f) { if(c!=(void *)1 || f!=(uint32_t)++seen) abort(); }
|
||||
static void *producer(void *unused) { (void)unused; for(uint32_t i=1;i<=1000;i++) fence((void *)1,i); return NULL; }
|
||||
int main(void) {
|
||||
main_thread=pthread_self(); original.write_fence=verify;
|
||||
pthread_t t; if(pthread_create(&t,NULL,producer,NULL)) abort(); pthread_join(t,NULL);
|
||||
while(seen<1000) g_main_context_iteration(NULL,1);
|
||||
fence((void *)1,9999); atomic_fetch_add(&epoch,1);
|
||||
while(g_main_context_iteration(NULL,0)) {}
|
||||
if(seen!=1000) abort();
|
||||
puts("PASS: 1000 ordered callbacks on main thread; stale epoch dropped");
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
@@ -0,0 +1,51 @@
|
||||
/* VM102-only proof of concept for virglrenderer 1.1.0 / QEMU 11.
|
||||
* Never use /etc/ld.so.preload. No QEMU/library files are replaced.
|
||||
* Normal start without the explicit LD_PRELOAD is the rollback.
|
||||
*/
|
||||
#define _GNU_SOURCE
|
||||
#define VIRGL_RENDERER_UNSTABLE_APIS
|
||||
#include <virgl/virglrenderer.h>
|
||||
#include <dlfcn.h>
|
||||
#include <fcntl.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
|
||||
static struct virgl_renderer_callbacks callbacks;
|
||||
static int vm102(void) {
|
||||
char args[32768];
|
||||
int fd = open("/proc/self/cmdline", O_RDONLY | O_CLOEXEC);
|
||||
if (fd < 0) return 0;
|
||||
ssize_t n = read(fd, args, sizeof(args));
|
||||
close(fd);
|
||||
if (n <= 0 || n == sizeof(args) || args[n-1]) return 0;
|
||||
for (char *p = args; p < args+n; p += strlen(p)+1) {
|
||||
if (!strcmp(p, "-id")) {
|
||||
p += strlen(p)+1;
|
||||
return p < args+n && !strcmp(p, "102");
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
static int video_fd(void *cookie) {
|
||||
(void)cookie;
|
||||
int fd = open("/dev/dri/renderD128", O_RDWR | O_CLOEXEC);
|
||||
fprintf(stderr, "VDI video shim: dedicated VA fd=%d\n", fd);
|
||||
return fd;
|
||||
}
|
||||
int virgl_renderer_init(void *cookie, int flags, struct virgl_renderer_callbacks *cb) {
|
||||
typedef int (*Init)(void *, int, struct virgl_renderer_callbacks *);
|
||||
Init original = (Init)dlsym(RTLD_NEXT, "virgl_renderer_init");
|
||||
if (!original) abort();
|
||||
if (!vm102()) return original(cookie, flags, cb);
|
||||
if (!cb || cb->version < 3 || cb->version > 4 || cb->get_drm_fd) {
|
||||
fprintf(stderr, "VDI video shim: unsupported callback ABI; refusing\n");
|
||||
return -1;
|
||||
}
|
||||
callbacks = *cb;
|
||||
callbacks.get_drm_fd = video_fd;
|
||||
fprintf(stderr, "VDI video shim: VM102 callbacks v%d flags 0x%x -> 0x%x\n",
|
||||
cb->version, flags, flags | VIRGL_RENDERER_USE_VIDEO);
|
||||
return original(cookie, flags | VIRGL_RENDERER_USE_VIDEO, &callbacks);
|
||||
}
|
||||
@@ -0,0 +1,956 @@
|
||||
{
|
||||
"pid": 347888,
|
||||
"sent": 300,
|
||||
"elapsed": 5.903147364006145,
|
||||
"frames": [
|
||||
{
|
||||
"seq": 0,
|
||||
"t": 105428.1534139,
|
||||
"age_ms": null
|
||||
},
|
||||
{
|
||||
"seq": 2,
|
||||
"t": 105428.245812751,
|
||||
"age_ms": 76.70932200562675
|
||||
},
|
||||
{
|
||||
"seq": 3,
|
||||
"t": 105428.270851015,
|
||||
"age_ms": 84.91618899279274
|
||||
},
|
||||
{
|
||||
"seq": 4,
|
||||
"t": 105428.293949998,
|
||||
"age_ms": 91.1621919949539
|
||||
},
|
||||
{
|
||||
"seq": 7,
|
||||
"t": 105428.313522754,
|
||||
"age_ms": 60.63829601043835
|
||||
},
|
||||
{
|
||||
"seq": 9,
|
||||
"t": 105428.36120967,
|
||||
"age_ms": 74.82516700110864
|
||||
},
|
||||
{
|
||||
"seq": 10,
|
||||
"t": 105428.404278657,
|
||||
"age_ms": 101.67262800678145
|
||||
},
|
||||
{
|
||||
"seq": 11,
|
||||
"t": 105428.42481449,
|
||||
"age_ms": 105.57918800623156
|
||||
},
|
||||
{
|
||||
"seq": 14,
|
||||
"t": 105428.446406732,
|
||||
"age_ms": 77.16869399882853
|
||||
},
|
||||
{
|
||||
"seq": 16,
|
||||
"t": 105428.494538438,
|
||||
"age_ms": 91.36139899783302
|
||||
},
|
||||
{
|
||||
"seq": 17,
|
||||
"t": 105428.52063457,
|
||||
"age_ms": 101.27333899436053
|
||||
},
|
||||
{
|
||||
"seq": 18,
|
||||
"t": 105428.53777309,
|
||||
"age_ms": 101.83479300758336
|
||||
},
|
||||
{
|
||||
"seq": 20,
|
||||
"t": 105428.55776001,
|
||||
"age_ms": 87.8100879926933
|
||||
},
|
||||
{
|
||||
"seq": 21,
|
||||
"t": 105428.585062759,
|
||||
"age_ms": 99.12376799911726
|
||||
},
|
||||
{
|
||||
"seq": 23,
|
||||
"t": 105428.607380956,
|
||||
"age_ms": 88.16970999760088
|
||||
},
|
||||
{
|
||||
"seq": 24,
|
||||
"t": 105428.62803433,
|
||||
"age_ms": 91.51044000464026
|
||||
},
|
||||
{
|
||||
"seq": 26,
|
||||
"t": 105428.653982296,
|
||||
"age_ms": 84.73769000556786
|
||||
},
|
||||
{
|
||||
"seq": 27,
|
||||
"t": 105428.671523897,
|
||||
"age_ms": 85.56135100661777
|
||||
},
|
||||
{
|
||||
"seq": 29,
|
||||
"t": 105428.693329056,
|
||||
"age_ms": 73.62613300210796
|
||||
},
|
||||
{
|
||||
"seq": 30,
|
||||
"t": 105428.71554342,
|
||||
"age_ms": 79.67409599223174
|
||||
},
|
||||
{
|
||||
"seq": 33,
|
||||
"t": 105428.759986148,
|
||||
"age_ms": 73.51180099067278
|
||||
},
|
||||
{
|
||||
"seq": 34,
|
||||
"t": 105428.780384898,
|
||||
"age_ms": 77.78031600173563
|
||||
},
|
||||
{
|
||||
"seq": 35,
|
||||
"t": 105428.804866082,
|
||||
"age_ms": 85.44876900850795
|
||||
},
|
||||
{
|
||||
"seq": 37,
|
||||
"t": 105428.826849156,
|
||||
"age_ms": 74.08988100360148
|
||||
},
|
||||
{
|
||||
"seq": 38,
|
||||
"t": 105428.846754409,
|
||||
"age_ms": 77.54231798753608
|
||||
},
|
||||
{
|
||||
"seq": 39,
|
||||
"t": 105428.871434508,
|
||||
"age_ms": 85.43885299877729
|
||||
},
|
||||
{
|
||||
"seq": 41,
|
||||
"t": 105428.891846674,
|
||||
"age_ms": 72.09051700192504
|
||||
},
|
||||
{
|
||||
"seq": 42,
|
||||
"t": 105428.913852206,
|
||||
"age_ms": 77.92352300020866
|
||||
},
|
||||
{
|
||||
"seq": 44,
|
||||
"t": 105428.958929596,
|
||||
"age_ms": 89.06162100902293
|
||||
},
|
||||
{
|
||||
"seq": 45,
|
||||
"t": 105428.97957247,
|
||||
"age_ms": 93.65009299654048
|
||||
},
|
||||
{
|
||||
"seq": 47,
|
||||
"t": 105429.004751899,
|
||||
"age_ms": 85.4516850085929
|
||||
},
|
||||
{
|
||||
"seq": 48,
|
||||
"t": 105429.027443718,
|
||||
"age_ms": 90.87490101228468
|
||||
},
|
||||
{
|
||||
"seq": 50,
|
||||
"t": 105429.053916972,
|
||||
"age_ms": 84.66039699851535
|
||||
},
|
||||
{
|
||||
"seq": 51,
|
||||
"t": 105429.071056076,
|
||||
"age_ms": 85.11160399939399
|
||||
},
|
||||
{
|
||||
"seq": 53,
|
||||
"t": 105429.092447945,
|
||||
"age_ms": 73.20817701111082
|
||||
},
|
||||
{
|
||||
"seq": 54,
|
||||
"t": 105429.113320942,
|
||||
"age_ms": 77.4183589965105
|
||||
},
|
||||
{
|
||||
"seq": 56,
|
||||
"t": 105429.162054476,
|
||||
"age_ms": 92.15397598745767
|
||||
},
|
||||
{
|
||||
"seq": 57,
|
||||
"t": 105429.188391523,
|
||||
"age_ms": 102.38120600115508
|
||||
},
|
||||
{
|
||||
"seq": 59,
|
||||
"t": 105429.207277699,
|
||||
"age_ms": 87.94729399960488
|
||||
},
|
||||
{
|
||||
"seq": 60,
|
||||
"t": 105429.228784192,
|
||||
"age_ms": 92.30301700881682
|
||||
},
|
||||
{
|
||||
"seq": 62,
|
||||
"t": 105429.254511368,
|
||||
"age_ms": 85.08243699907325
|
||||
},
|
||||
{
|
||||
"seq": 64,
|
||||
"t": 105429.292430427,
|
||||
"age_ms": 89.10770299553405
|
||||
},
|
||||
{
|
||||
"seq": 65,
|
||||
"t": 105429.316827028,
|
||||
"age_ms": 97.27957099676132
|
||||
},
|
||||
{
|
||||
"seq": 66,
|
||||
"t": 105429.338625186,
|
||||
"age_ms": 102.53099701367319
|
||||
},
|
||||
{
|
||||
"seq": 69,
|
||||
"t": 105429.358508689,
|
||||
"age_ms": 72.28722400031984
|
||||
},
|
||||
{
|
||||
"seq": 70,
|
||||
"t": 105429.385677564,
|
||||
"age_ms": 82.93824100110214
|
||||
},
|
||||
{
|
||||
"seq": 72,
|
||||
"t": 105429.428523718,
|
||||
"age_ms": 91.8258540041279
|
||||
},
|
||||
{
|
||||
"seq": 73,
|
||||
"t": 105429.45409952,
|
||||
"age_ms": 101.4579619950382
|
||||
},
|
||||
{
|
||||
"seq": 74,
|
||||
"t": 105429.472724364,
|
||||
"age_ms": 103.49319899978582
|
||||
},
|
||||
{
|
||||
"seq": 77,
|
||||
"t": 105429.494538855,
|
||||
"age_ms": 75.28862099570688
|
||||
},
|
||||
{
|
||||
"seq": 79,
|
||||
"t": 105429.539811953,
|
||||
"age_ms": 86.78955100185703
|
||||
},
|
||||
{
|
||||
"seq": 80,
|
||||
"t": 105429.560813866,
|
||||
"age_ms": 91.04115000809543
|
||||
},
|
||||
{
|
||||
"seq": 82,
|
||||
"t": 105429.604970762,
|
||||
"age_ms": 102.33208099089097
|
||||
},
|
||||
{
|
||||
"seq": 84,
|
||||
"t": 105429.627038418,
|
||||
"age_ms": 90.3449460020056
|
||||
},
|
||||
{
|
||||
"seq": 85,
|
||||
"t": 105429.670905108,
|
||||
"age_ms": 118.16306799300946
|
||||
},
|
||||
{
|
||||
"seq": 88,
|
||||
"t": 105429.693498344,
|
||||
"age_ms": 90.3846120054368
|
||||
},
|
||||
{
|
||||
"seq": 89,
|
||||
"t": 105429.714060718,
|
||||
"age_ms": 94.75637700234074
|
||||
},
|
||||
{
|
||||
"seq": 90,
|
||||
"t": 105429.737692574,
|
||||
"age_ms": 101.76654299721122
|
||||
},
|
||||
{
|
||||
"seq": 92,
|
||||
"t": 105429.758156073,
|
||||
"age_ms": 88.57978999731131
|
||||
},
|
||||
{
|
||||
"seq": 94,
|
||||
"t": 105429.780499353,
|
||||
"age_ms": 77.95064699894283
|
||||
},
|
||||
{
|
||||
"seq": 95,
|
||||
"t": 105429.804206458,
|
||||
"age_ms": 84.9016049905913
|
||||
},
|
||||
{
|
||||
"seq": 96,
|
||||
"t": 105429.823491923,
|
||||
"age_ms": 87.11388299707323
|
||||
},
|
||||
{
|
||||
"seq": 98,
|
||||
"t": 105429.849294056,
|
||||
"age_ms": 79.98792600119486
|
||||
},
|
||||
{
|
||||
"seq": 101,
|
||||
"t": 105429.892663165,
|
||||
"age_ms": 73.37909100169782
|
||||
},
|
||||
{
|
||||
"seq": 102,
|
||||
"t": 105429.912658542,
|
||||
"age_ms": 75.98219999636058
|
||||
},
|
||||
{
|
||||
"seq": 103,
|
||||
"t": 105429.941161492,
|
||||
"age_ms": 88.40245699684601
|
||||
},
|
||||
{
|
||||
"seq": 104,
|
||||
"t": 105429.961982864,
|
||||
"age_ms": 91.98293500230648
|
||||
},
|
||||
{
|
||||
"seq": 106,
|
||||
"t": 105429.987757289,
|
||||
"age_ms": 85.13668499654159
|
||||
},
|
||||
{
|
||||
"seq": 107,
|
||||
"t": 105430.027661419,
|
||||
"age_ms": 108.37945899402257
|
||||
},
|
||||
{
|
||||
"seq": 110,
|
||||
"t": 105430.054136132,
|
||||
"age_ms": 84.88089599995874
|
||||
},
|
||||
{
|
||||
"seq": 111,
|
||||
"t": 105430.071107527,
|
||||
"age_ms": 84.7916459897533
|
||||
},
|
||||
{
|
||||
"seq": 112,
|
||||
"t": 105430.092316814,
|
||||
"age_ms": 89.22232700570021
|
||||
},
|
||||
{
|
||||
"seq": 113,
|
||||
"t": 105430.113676016,
|
||||
"age_ms": 94.38450400193688
|
||||
},
|
||||
{
|
||||
"seq": 114,
|
||||
"t": 105430.138229824,
|
||||
"age_ms": 102.31720500451047
|
||||
},
|
||||
{
|
||||
"seq": 116,
|
||||
"t": 105430.159897899,
|
||||
"age_ms": 90.03753098659217
|
||||
},
|
||||
{
|
||||
"seq": 117,
|
||||
"t": 105430.179952484,
|
||||
"age_ms": 93.9825890091015
|
||||
},
|
||||
{
|
||||
"seq": 120,
|
||||
"t": 105430.229120474,
|
||||
"age_ms": 92.66834800655488
|
||||
},
|
||||
{
|
||||
"seq": 121,
|
||||
"t": 105430.253855405,
|
||||
"age_ms": 101.25029500341043
|
||||
},
|
||||
{
|
||||
"seq": 123,
|
||||
"t": 105430.271252632,
|
||||
"age_ms": 85.17576899612322
|
||||
},
|
||||
{
|
||||
"seq": 125,
|
||||
"t": 105430.29235546,
|
||||
"age_ms": 73.1212590035284
|
||||
},
|
||||
{
|
||||
"seq": 126,
|
||||
"t": 105430.314346992,
|
||||
"age_ms": 78.40418499836233
|
||||
},
|
||||
{
|
||||
"seq": 127,
|
||||
"t": 105430.357702684,
|
||||
"age_ms": 104.9824380024802
|
||||
},
|
||||
{
|
||||
"seq": 129,
|
||||
"t": 105430.411405188,
|
||||
"age_ms": 125.40860500303097
|
||||
},
|
||||
{
|
||||
"seq": 133,
|
||||
"t": 105430.455217335,
|
||||
"age_ms": 102.58903598878533
|
||||
},
|
||||
{
|
||||
"seq": 134,
|
||||
"t": 105430.473050893,
|
||||
"age_ms": 103.76444699068088
|
||||
},
|
||||
{
|
||||
"seq": 137,
|
||||
"t": 105430.496897704,
|
||||
"age_ms": 77.60648099065293
|
||||
},
|
||||
{
|
||||
"seq": 139,
|
||||
"t": 105430.538714573,
|
||||
"age_ms": 82.67503400566056
|
||||
},
|
||||
{
|
||||
"seq": 141,
|
||||
"t": 105430.559114781,
|
||||
"age_ms": 73.22888400813099
|
||||
},
|
||||
{
|
||||
"seq": 142,
|
||||
"t": 105430.580059235,
|
||||
"age_ms": 77.5306479918072
|
||||
},
|
||||
{
|
||||
"seq": 143,
|
||||
"t": 105430.603617007,
|
||||
"age_ms": 84.19373299693689
|
||||
},
|
||||
{
|
||||
"seq": 145,
|
||||
"t": 105430.636492597,
|
||||
"age_ms": 83.92306799942162
|
||||
},
|
||||
{
|
||||
"seq": 146,
|
||||
"t": 105430.657736592,
|
||||
"age_ms": 88.39924899803009
|
||||
},
|
||||
{
|
||||
"seq": 148,
|
||||
"t": 105430.704287764,
|
||||
"age_ms": 101.67087501031347
|
||||
},
|
||||
{
|
||||
"seq": 149,
|
||||
"t": 105430.725742341,
|
||||
"age_ms": 106.50697100209072
|
||||
},
|
||||
{
|
||||
"seq": 150,
|
||||
"t": 105430.74684342,
|
||||
"age_ms": 109.20107999118045
|
||||
},
|
||||
{
|
||||
"seq": 152,
|
||||
"t": 105430.770608565,
|
||||
"age_ms": 100.97029600001406
|
||||
},
|
||||
{
|
||||
"seq": 153,
|
||||
"t": 105430.787358296,
|
||||
"age_ms": 101.42587700102013
|
||||
},
|
||||
{
|
||||
"seq": 156,
|
||||
"t": 105430.829396246,
|
||||
"age_ms": 92.88359600759577
|
||||
},
|
||||
{
|
||||
"seq": 158,
|
||||
"t": 105430.87156807,
|
||||
"age_ms": 102.28599699621554
|
||||
},
|
||||
{
|
||||
"seq": 160,
|
||||
"t": 105430.891616822,
|
||||
"age_ms": 88.57103899936192
|
||||
},
|
||||
{
|
||||
"seq": 162,
|
||||
"t": 105430.918912279,
|
||||
"age_ms": 83.00665600108914
|
||||
},
|
||||
{
|
||||
"seq": 165,
|
||||
"t": 105430.962190387,
|
||||
"age_ms": 76.24323900381569
|
||||
},
|
||||
{
|
||||
"seq": 166,
|
||||
"t": 105431.004959541,
|
||||
"age_ms": 102.39041199383792
|
||||
},
|
||||
{
|
||||
"seq": 168,
|
||||
"t": 105431.026766448,
|
||||
"age_ms": 90.42427700478584
|
||||
},
|
||||
{
|
||||
"seq": 169,
|
||||
"t": 105431.047782944,
|
||||
"age_ms": 95.17228900222108
|
||||
},
|
||||
{
|
||||
"seq": 170,
|
||||
"t": 105431.071592423,
|
||||
"age_ms": 102.2690789977787
|
||||
},
|
||||
{
|
||||
"seq": 173,
|
||||
"t": 105431.09478503,
|
||||
"age_ms": 75.593702000333
|
||||
},
|
||||
{
|
||||
"seq": 174,
|
||||
"t": 105431.120900411,
|
||||
"age_ms": 84.53293799539097
|
||||
},
|
||||
{
|
||||
"seq": 177,
|
||||
"t": 105431.161776368,
|
||||
"age_ms": 75.85619999736082
|
||||
},
|
||||
{
|
||||
"seq": 178,
|
||||
"t": 105431.187864332,
|
||||
"age_ms": 85.16380899527576
|
||||
},
|
||||
{
|
||||
"seq": 179,
|
||||
"t": 105431.207349004,
|
||||
"age_ms": 87.94950100127608
|
||||
},
|
||||
{
|
||||
"seq": 180,
|
||||
"t": 105431.228066835,
|
||||
"age_ms": 91.59181200084276
|
||||
},
|
||||
{
|
||||
"seq": 181,
|
||||
"t": 105431.272055731,
|
||||
"age_ms": 119.49655698845163
|
||||
},
|
||||
{
|
||||
"seq": 185,
|
||||
"t": 105431.292751979,
|
||||
"age_ms": 73.5018819977995
|
||||
},
|
||||
{
|
||||
"seq": 186,
|
||||
"t": 105431.313710141,
|
||||
"age_ms": 77.81531299406197
|
||||
},
|
||||
{
|
||||
"seq": 187,
|
||||
"t": 105431.34237759,
|
||||
"age_ms": 89.66332300042268
|
||||
},
|
||||
{
|
||||
"seq": 188,
|
||||
"t": 105431.363299878,
|
||||
"age_ms": 93.4575919964118
|
||||
},
|
||||
{
|
||||
"seq": 189,
|
||||
"t": 105431.387636686,
|
||||
"age_ms": 101.75283200806007
|
||||
},
|
||||
{
|
||||
"seq": 192,
|
||||
"t": 105431.427538483,
|
||||
"age_ms": 91.16306499345228
|
||||
},
|
||||
{
|
||||
"seq": 193,
|
||||
"t": 105431.454225527,
|
||||
"age_ms": 101.59679201024119
|
||||
},
|
||||
{
|
||||
"seq": 194,
|
||||
"t": 105431.471497337,
|
||||
"age_ms": 102.22970400354825
|
||||
},
|
||||
{
|
||||
"seq": 197,
|
||||
"t": 105431.494456904,
|
||||
"age_ms": 75.2197869878728
|
||||
},
|
||||
{
|
||||
"seq": 198,
|
||||
"t": 105431.520849658,
|
||||
"age_ms": 84.94651899673045
|
||||
},
|
||||
{
|
||||
"seq": 199,
|
||||
"t": 105431.540776202,
|
||||
"age_ms": 87.99558300233912
|
||||
},
|
||||
{
|
||||
"seq": 201,
|
||||
"t": 105431.562194321,
|
||||
"age_ms": 76.29194800392725
|
||||
},
|
||||
{
|
||||
"seq": 202,
|
||||
"t": 105431.587271958,
|
||||
"age_ms": 84.68810399062932
|
||||
},
|
||||
{
|
||||
"seq": 203,
|
||||
"t": 105431.605494596,
|
||||
"age_ms": 86.1228030116763
|
||||
},
|
||||
{
|
||||
"seq": 205,
|
||||
"t": 105431.626329093,
|
||||
"age_ms": 73.76467098947614
|
||||
},
|
||||
{
|
||||
"seq": 206,
|
||||
"t": 105431.648745288,
|
||||
"age_ms": 79.52388600097038
|
||||
},
|
||||
{
|
||||
"seq": 207,
|
||||
"t": 105431.674128299,
|
||||
"age_ms": 88.0037509923568
|
||||
},
|
||||
{
|
||||
"seq": 209,
|
||||
"t": 105431.695154419,
|
||||
"age_ms": 75.54732699645683
|
||||
},
|
||||
{
|
||||
"seq": 210,
|
||||
"t": 105431.738316154,
|
||||
"age_ms": 102.39157899923157
|
||||
},
|
||||
{
|
||||
"seq": 212,
|
||||
"t": 105431.759552565,
|
||||
"age_ms": 89.72282300237566
|
||||
},
|
||||
{
|
||||
"seq": 213,
|
||||
"t": 105431.780599102,
|
||||
"age_ms": 94.7114589944249
|
||||
},
|
||||
{
|
||||
"seq": 214,
|
||||
"t": 105431.80417379,
|
||||
"age_ms": 101.60816600546241
|
||||
},
|
||||
{
|
||||
"seq": 217,
|
||||
"t": 105431.829639633,
|
||||
"age_ms": 77.03335898986552
|
||||
},
|
||||
{
|
||||
"seq": 218,
|
||||
"t": 105431.853820693,
|
||||
"age_ms": 84.53789699706249
|
||||
},
|
||||
{
|
||||
"seq": 219,
|
||||
"t": 105431.872390412,
|
||||
"age_ms": 86.20155300013721
|
||||
},
|
||||
{
|
||||
"seq": 221,
|
||||
"t": 105431.892316664,
|
||||
"age_ms": 73.08888300030958
|
||||
},
|
||||
{
|
||||
"seq": 222,
|
||||
"t": 105431.916984512,
|
||||
"age_ms": 81.07058401219547
|
||||
},
|
||||
{
|
||||
"seq": 225,
|
||||
"t": 105431.96153982,
|
||||
"age_ms": 75.62286699248943
|
||||
},
|
||||
{
|
||||
"seq": 227,
|
||||
"t": 105432.005361592,
|
||||
"age_ms": 85.29914100654423
|
||||
},
|
||||
{
|
||||
"seq": 229,
|
||||
"t": 105432.026606461,
|
||||
"age_ms": 74.0560429985635
|
||||
},
|
||||
{
|
||||
"seq": 230,
|
||||
"t": 105432.059655882,
|
||||
"age_ms": 90.4414839897072
|
||||
},
|
||||
{
|
||||
"seq": 231,
|
||||
"t": 105432.080805377,
|
||||
"age_ms": 94.71175000362564
|
||||
},
|
||||
{
|
||||
"seq": 232,
|
||||
"t": 105432.104147025,
|
||||
"age_ms": 100.76554601255339
|
||||
},
|
||||
{
|
||||
"seq": 233,
|
||||
"t": 105432.121930707,
|
||||
"age_ms": 102.61295099917334
|
||||
},
|
||||
{
|
||||
"seq": 236,
|
||||
"t": 105432.170750447,
|
||||
"age_ms": 100.93208600301296
|
||||
},
|
||||
{
|
||||
"seq": 238,
|
||||
"t": 105432.206429519,
|
||||
"age_ms": 103.65856900170911
|
||||
},
|
||||
{
|
||||
"seq": 240,
|
||||
"t": 105432.227740013,
|
||||
"age_ms": 91.39639500062913
|
||||
},
|
||||
{
|
||||
"seq": 243,
|
||||
"t": 105432.272488695,
|
||||
"age_ms": 85.91980300843716
|
||||
},
|
||||
{
|
||||
"seq": 245,
|
||||
"t": 105432.293274775,
|
||||
"age_ms": 74.0350429987302
|
||||
},
|
||||
{
|
||||
"seq": 246,
|
||||
"t": 105432.314011564,
|
||||
"age_ms": 78.08451799792238
|
||||
},
|
||||
{
|
||||
"seq": 247,
|
||||
"t": 105432.339099701,
|
||||
"age_ms": 86.04726099292748
|
||||
},
|
||||
{
|
||||
"seq": 249,
|
||||
"t": 105432.387091989,
|
||||
"age_ms": 101.16104299959261
|
||||
},
|
||||
{
|
||||
"seq": 250,
|
||||
"t": 105432.407657862,
|
||||
"age_ms": 105.06789399369154
|
||||
},
|
||||
{
|
||||
"seq": 253,
|
||||
"t": 105432.427561072,
|
||||
"age_ms": 74.94941201002803
|
||||
},
|
||||
{
|
||||
"seq": 255,
|
||||
"t": 105432.45497407,
|
||||
"age_ms": 68.98515799548477
|
||||
},
|
||||
{
|
||||
"seq": 256,
|
||||
"t": 105432.496899728,
|
||||
"age_ms": 93.793004998588
|
||||
},
|
||||
{
|
||||
"seq": 257,
|
||||
"t": 105432.520948955,
|
||||
"age_ms": 101.70062301040161
|
||||
},
|
||||
{
|
||||
"seq": 260,
|
||||
"t": 105432.562666656,
|
||||
"age_ms": 92.8617189929355
|
||||
},
|
||||
{
|
||||
"seq": 263,
|
||||
"t": 105432.604811355,
|
||||
"age_ms": 85.15914200688712
|
||||
},
|
||||
{
|
||||
"seq": 264,
|
||||
"t": 105432.627594756,
|
||||
"age_ms": 91.31764501216821
|
||||
},
|
||||
{
|
||||
"seq": 265,
|
||||
"t": 105432.671091321,
|
||||
"age_ms": 118.50606100051664
|
||||
},
|
||||
{
|
||||
"seq": 267,
|
||||
"t": 105432.695090965,
|
||||
"age_ms": 108.60695599694736
|
||||
},
|
||||
{
|
||||
"seq": 269,
|
||||
"t": 105432.72072714,
|
||||
"age_ms": 101.51191600016318
|
||||
},
|
||||
{
|
||||
"seq": 270,
|
||||
"t": 105432.738190282,
|
||||
"age_ms": 102.24107799876947
|
||||
},
|
||||
{
|
||||
"seq": 272,
|
||||
"t": 105432.757900994,
|
||||
"age_ms": 88.12858098826837
|
||||
},
|
||||
{
|
||||
"seq": 273,
|
||||
"t": 105432.784986161,
|
||||
"age_ms": 99.06834800494835
|
||||
},
|
||||
{
|
||||
"seq": 275,
|
||||
"t": 105432.827612981,
|
||||
"age_ms": 108.21612399013247
|
||||
},
|
||||
{
|
||||
"seq": 276,
|
||||
"t": 105432.85394186,
|
||||
"age_ms": 117.43798399402294
|
||||
},
|
||||
{
|
||||
"seq": 278,
|
||||
"t": 105432.875595352,
|
||||
"age_ms": 106.34567799570505
|
||||
},
|
||||
{
|
||||
"seq": 280,
|
||||
"t": 105432.896457264,
|
||||
"age_ms": 93.35258998908103
|
||||
},
|
||||
{
|
||||
"seq": 281,
|
||||
"t": 105432.920738073,
|
||||
"age_ms": 101.49383198586293
|
||||
},
|
||||
{
|
||||
"seq": 282,
|
||||
"t": 105432.938179632,
|
||||
"age_ms": 102.25740999158006
|
||||
},
|
||||
{
|
||||
"seq": 284,
|
||||
"t": 105432.957464804,
|
||||
"age_ms": 87.6137919985922
|
||||
},
|
||||
{
|
||||
"seq": 285,
|
||||
"t": 105432.988810611,
|
||||
"age_ms": 102.87865699501708
|
||||
},
|
||||
{
|
||||
"seq": 287,
|
||||
"t": 105433.009949605,
|
||||
"age_ms": 90.39889999257866
|
||||
},
|
||||
{
|
||||
"seq": 288,
|
||||
"t": 105433.030575853,
|
||||
"age_ms": 94.14504400047008
|
||||
},
|
||||
{
|
||||
"seq": 289,
|
||||
"t": 105433.054055749,
|
||||
"age_ms": 101.48070599825587
|
||||
},
|
||||
{
|
||||
"seq": 290,
|
||||
"t": 105433.072260303,
|
||||
"age_ms": 102.54265800176654
|
||||
},
|
||||
{
|
||||
"seq": 292,
|
||||
"t": 105433.093066217,
|
||||
"age_ms": 89.86952899431344
|
||||
},
|
||||
{
|
||||
"seq": 295,
|
||||
"t": 105433.138782351,
|
||||
"age_ms": 85.84338599757757
|
||||
},
|
||||
{
|
||||
"seq": 296,
|
||||
"t": 105433.159999512,
|
||||
"age_ms": 90.23323500878178
|
||||
},
|
||||
{
|
||||
"seq": 297,
|
||||
"t": 105433.180393011,
|
||||
"age_ms": 94.282126010512
|
||||
},
|
||||
{
|
||||
"seq": 299,
|
||||
"t": 105433.210494575,
|
||||
"age_ms": 91.20564500335604
|
||||
},
|
||||
{
|
||||
"seq": 300,
|
||||
"t": 105433.251180948,
|
||||
"age_ms": 114.66658300196286
|
||||
}
|
||||
],
|
||||
"fresh_video_updates_per_second": 36.6,
|
||||
"motion_to_decoded_marker_ms": {
|
||||
"p50": 89.69307300139917,
|
||||
"p95": 108.21612399013247,
|
||||
"maximum": 125.40860500303097
|
||||
},
|
||||
"frame_gap_ms": {
|
||||
"p50": 23.267127500730567,
|
||||
"p95": 45.71613400185015,
|
||||
"maximum": 92.3988510039635
|
||||
},
|
||||
"last_motion_seen": 300,
|
||||
"release_visible": true,
|
||||
"method": "60Hz XTest held drag to first observed unique decoded marker; no USB/scanout"
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
# Temporary Windows reference workload with the same geometry/marker as GTK.
|
||||
$ErrorActionPreference='Stop'
|
||||
Add-Type -ReferencedAssemblies System.Windows.Forms,System.Drawing -TypeDefinition @'
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
using System.Runtime.InteropServices;
|
||||
public class VDIDragReference : Form {
|
||||
[DllImport("user32.dll")] public static extern bool SetProcessDPIAware();
|
||||
int seq=0; bool held=false; Point target=new Point(800,700);
|
||||
readonly Timer expiry=new Timer();
|
||||
public VDIDragReference() {
|
||||
Text="VDI temporary drag reference"; FormBorderStyle=FormBorderStyle.None;
|
||||
Bounds=Screen.PrimaryScreen.Bounds; TopMost=true; DoubleBuffered=true;
|
||||
expiry.Interval=600000; expiry.Tick+=delegate { Close(); }; expiry.Start();
|
||||
}
|
||||
protected override void OnMouseDown(MouseEventArgs e) { if(e.Button==MouseButtons.Left) { held=true; seq=0; Invalidate(); } base.OnMouseDown(e); }
|
||||
protected override void OnMouseUp(MouseEventArgs e) { if(e.Button==MouseButtons.Left) { held=false; Invalidate(); } base.OnMouseUp(e); }
|
||||
protected override void OnMouseMove(MouseEventArgs e) { if(held) { seq=Math.Max(0,Math.Min(300,(int)Math.Round((e.X-800)/4.0))); target=e.Location; Invalidate(); } base.OnMouseMove(e); }
|
||||
protected override void OnPaint(PaintEventArgs e) {
|
||||
var g=e.Graphics; g.Clear(Color.FromArgb(240,245,250));
|
||||
using(var f=new Font("Arial",20)) g.DrawString("Windows 2560 x 1440: held-button selection / video response probe",f,Brushes.Black,60,50);
|
||||
if(held) { using(var b=new SolidBrush(Color.FromArgb(50,40,100,230))) g.FillRectangle(b,500,350,Math.Max(1,target.X-500),Math.Max(1,target.Y-350)); g.DrawRectangle(Pens.Blue,500,350,Math.Max(1,target.X-500),Math.Max(1,target.Y-350)); }
|
||||
for(int i=0;i<16;i++) g.FillRectangle((seq&(1<<i))!=0?Brushes.White:Brushes.Black,40+i*40,1350,40,70);
|
||||
g.FillRectangle(held?Brushes.White:Brushes.Black,720,1350,40,70);
|
||||
for(int i=0;i<8;i++) g.FillRectangle((0xa5&(1<<i))!=0?Brushes.White:Brushes.Black,800+i*40,1350,40,70);
|
||||
}
|
||||
}
|
||||
'@
|
||||
[VDIDragReference]::SetProcessDPIAware() | Out-Null
|
||||
[Windows.Forms.Application]::Run((New-Object VDIDragReference))
|
||||
@@ -0,0 +1 @@
|
||||
{"pid": 310764, "sent": 300, "elapsed": 6.016666693991283, "frames": [{"seq": 0, "t": 101760.163802624, "age_ms": null}, {"seq": 1, "t": 101760.296015875, "age_ms": 133.10923000972252}, {"seq": 4, "t": 101760.379533579, "age_ms": 161.50291000667494}, {"seq": 7, "t": 101760.480417591, "age_ms": 217.41995699994732}, {"seq": 12, "t": 101760.512667599, "age_ms": 166.10180400311947}, {"seq": 14, "t": 101760.596377799, "age_ms": 215.97011599806137}, {"seq": 20, "t": 101760.67948922, "age_ms": 197.68070199643262}, {"seq": 25, "t": 101760.762840386, "age_ms": 199.35424700088333}, {"seq": 30, "t": 101760.829595517, "age_ms": 182.33180600509513}, {"seq": 33, "t": 101761.008848269, "age_ms": 312.2149850096321}, {"seq": 39, "t": 101761.062963149, "age_ms": 266.1207530036336}, {"seq": 47, "t": 101761.146170527, "age_ms": 216.5376860066317}, {"seq": 53, "t": 101761.197215686, "age_ms": 167.09928099589888}, {"seq": 55, "t": 101761.279807953, "age_ms": 215.96486600174103}, {"seq": 61, "t": 101761.363416363, "age_ms": 199.81915400421713}, {"seq": 66, "t": 101761.463394772, "age_ms": 216.6610580025008}, {"seq": 71, "t": 101761.546294156, "age_ms": 211.68329699139576}, {"seq": 84, "t": 101761.69342173, "age_ms": 146.2050529953558}, {"seq": 87, "t": 101761.796632606, "age_ms": 199.1086699999869}, {"seq": 90, "t": 101761.880199309, "age_ms": 229.0143150021322}, {"seq": 96, "t": 101761.962779618, "age_ms": 215.69070499390364}, {"seq": 101, "t": 101762.046435277, "age_ms": 213.67825201014057}, {"seq": 107, "t": 101762.129679404, "age_ms": 199.23175100120716}, {"seq": 112, "t": 101762.246941582, "age_ms": 233.63129299832508}, {"seq": 117, "t": 101762.279609539, "age_ms": 183.31936698814388}, {"seq": 120, "t": 101762.31287044, "age_ms": 166.52762799640186}, {"seq": 124, "t": 101762.396279063, "age_ms": 182.6619650091743}, {"seq": 128, "t": 101762.429745585, "age_ms": 149.0149050077889}, {"seq": 130, "t": 101762.529497666, "age_ms": 215.71520499128383}, {"seq": 135, "t": 101762.629958188, "age_ms": 232.73327099741437}, {"seq": 141, "t": 101762.712961988, "age_ms": 213.7640000000829}, {"seq": 147, "t": 101762.762934713, "age_ms": 166.24121800123248}, {"seq": 149, "t": 101762.846374544, "age_ms": 215.4815849935403}, {"seq": 154, "t": 101762.929672628, "age_ms": 215.74057900579646}, {"seq": 160, "t": 101763.030870759, "age_ms": 217.47566500562243}, {"seq": 165, "t": 101763.113285988, "age_ms": 216.7969720030669}, {"seq": 170, "t": 101763.196582322, "age_ms": 213.62983599829022}, {"seq": 176, "t": 101763.296267321, "age_ms": 216.60476799297612}, {"seq": 181, "t": 101763.362820915, "age_ms": 198.94067400309723}, {"seq": 184, "t": 101763.396304062, "age_ms": 183.33715799963102}, {"seq": 187, "t": 101763.479597771, "age_ms": 214.87551600148436}, {"seq": 193, "t": 101763.579797841, "age_ms": 215.9762410010444}, {"seq": 198, "t": 101763.679638295, "age_ms": 232.39523799566086}, {"seq": 207, "t": 101763.779802783, "age_ms": 183.4899880050216}, {"seq": 209, "t": 101763.863460775, "age_ms": 232.98468299617525}, {"seq": 215, "t": 101763.979812099, "age_ms": 248.9276910055196}, {"seq": 221, "t": 101764.029933571, "age_ms": 199.56832600291818}, {"seq": 225, "t": 101764.129736984, "age_ms": 232.58890000579413}, {"seq": 231, "t": 101764.213012902, "age_ms": 216.24281798722222}, {"seq": 237, "t": 101764.313547798, "age_ms": 216.62168399780057}, {"seq": 242, "t": 101764.396249438, "age_ms": 216.31660898856353}, {"seq": 248, "t": 101764.49642005, "age_ms": 216.22940099041443}, {"seq": 253, "t": 101764.596612246, "age_ms": 233.52746199816465}, {"seq": 259, "t": 101764.697007437, "age_ms": 233.67912600224372}, {"seq": 265, "t": 101764.780397102, "age_ms": 216.12790400104132}, {"seq": 271, "t": 101764.863004827, "age_ms": 199.87865300208796}, {"seq": 275, "t": 101764.979939471, "age_ms": 249.0676879970124}, {"seq": 281, "t": 101765.030203273, "age_ms": 199.91044299968053}, {"seq": 284, "t": 101765.138975813, "age_ms": 259.0967069991166}, {"seq": 291, "t": 101765.188345095, "age_ms": 191.91225299437065}, {"seq": 296, "t": 101765.288963114, "age_ms": 209.33922700351104}, {"seq": 300, "t": 101765.374608477, "age_ms": 227.49535099137574}], "fresh_video_updates_per_second": 11.8, "motion_to_decoded_marker_ms": {"p50": 215.69070499390364, "p95": 249.0676879970124, "maximum": 312.2149850096321}, "frame_gap_ms": {"p50": 83.43983099621255, "p95": 117.26217799878214, "maximum": 179.25275200104807}, "last_motion_seen": 300, "release_visible": true, "method": "60Hz XTest held drag to first observed unique decoded marker; no USB/scanout"}
|
||||
@@ -0,0 +1 @@
|
||||
{"pid": 314141, "sent": 300, "elapsed": 6.074999421995017, "frames": [{"seq": 0, "t": 101929.582704085, "age_ms": null}, {"seq": 1, "t": 101929.723570903, "age_ms": 141.87392000167165}, {"seq": 3, "t": 101929.83973237, "age_ms": 200.58566000079736}, {"seq": 7, "t": 101929.923080921, "age_ms": 242.03929500072263}, {"seq": 13, "t": 101930.022502563, "age_ms": 234.2385570082115}, {"seq": 19, "t": 101930.072782704, "age_ms": 192.16047799272928}, {"seq": 21, "t": 101930.190480344, "age_ms": 268.3330269937869}, {"seq": 28, "t": 101930.272704838, "age_ms": 242.0500870066462}, {"seq": 35, "t": 101930.372978127, "age_ms": 225.18688898708206}, {"seq": 40, "t": 101930.46693756, "age_ms": 236.35104999993928}, {"seq": 46, "t": 101930.572847762, "age_ms": 231.57307600195054}, {"seq": 50, "t": 101930.672652645, "age_ms": 249.79628399887588}, {"seq": 58, "t": 101930.739239788, "age_ms": 200.26220900763292}, {"seq": 62, "t": 101930.869371477, "age_ms": 272.018151008524}, {"seq": 68, "t": 101930.899508704, "age_ms": 201.567095995415}, {"seq": 72, "t": 101930.956807643, "age_ms": 192.54867700510658}, {"seq": 75, "t": 101930.989279609, "age_ms": 174.81574999692384}, {"seq": 77, "t": 101931.056071789, "age_ms": 184.49273701116908}, {"seq": 81, "t": 101931.155969128, "age_ms": 241.94100599561352}, {"seq": 87, "t": 101931.222631811, "age_ms": 208.58735199726652}, {"seq": 93, "t": 101931.322703855, "age_ms": 208.59901899530087}, {"seq": 98, "t": 101931.405848827, "age_ms": 208.05682199716102}, {"seq": 103, "t": 101931.439574931, "age_ms": 158.94740501244087}, {"seq": 106, "t": 101931.506150991, "age_ms": 175.19811699457932}, {"seq": 109, "t": 101931.589515583, "age_ms": 208.1869029934751}, {"seq": 114, "t": 101931.640143675, "age_ms": 176.1576779972529}, {"seq": 117, "t": 101931.722703286, "age_ms": 208.16561199899297}, {"seq": 122, "t": 101931.806067295, "age_ms": 208.44910498999525}, {"seq": 127, "t": 101931.880567757, "age_ms": 199.7086390038021}, {"seq": 129, "t": 101931.922586046, "age_ms": 199.03519599756692}, {"seq": 135, "t": 101932.022717588, "age_ms": 208.75068199529778}, {"seq": 140, "t": 101932.122878297, "age_ms": 224.8590639937902}, {"seq": 146, "t": 101932.205949771, "age_ms": 207.84070300578605}, {"seq": 151, "t": 101932.28953515, "age_ms": 208.90322000195738}, {"seq": 156, "t": 101932.339980663, "age_ms": 165.41554901050404}, {"seq": 159, "t": 101932.422704187, "age_ms": 208.45639800245408}, {"seq": 164, "t": 101932.486632849, "age_ms": 189.36083400330972}, {"seq": 169, "t": 101932.532587381, "age_ms": 151.8810670095263}, {"seq": 171, "t": 101932.653423866, "age_ms": 229.80240899778437}, {"seq": 177, "t": 101932.706242033, "age_ms": 191.75011300831102}, {"seq": 180, "t": 101932.756030143, "age_ms": 191.62294900161214}, {"seq": 182, "t": 101932.806704026, "age_ms": 209.36521000112407}, {"seq": 189, "t": 101932.929588839, "age_ms": 215.34540600259788}, {"seq": 192, "t": 101933.022749124, "age_ms": 258.44137799867895}, {"seq": 198, "t": 101933.090151749, "age_ms": 226.16482600278687}, {"seq": 205, "t": 101933.216121742, "age_ms": 235.41978100547567}, {"seq": 208, "t": 101933.272882568, "age_ms": 242.11395999009255}, {"seq": 213, "t": 101933.306094767, "age_ms": 191.96156700490974}, {"seq": 216, "t": 101933.406644841, "age_ms": 242.65936500160024}, {"seq": 223, "t": 101933.489653025, "age_ms": 208.49518799514044}, {"seq": 228, "t": 101933.540147828, "age_ms": 176.16905199247412}, {"seq": 231, "t": 101933.621706171, "age_ms": 206.93655700597446}, {"seq": 236, "t": 101933.673669773, "age_ms": 175.7213539967779}, {"seq": 238, "t": 101933.717970885, "age_ms": 176.80341300729197}, {"seq": 240, "t": 101933.786794477, "age_ms": 180.50020399095956}, {"seq": 244, "t": 101933.873087336, "age_ms": 242.40124601055868}, {"seq": 250, "t": 101933.939506191, "age_ms": 208.72589100326877}, {"seq": 254, "t": 101933.972760972, "age_ms": 175.45886100560892}, {"seq": 257, "t": 101934.022897908, "age_ms": 175.35940400557593}, {"seq": 260, "t": 101934.106332791, "age_ms": 198.67441299720667}, {"seq": 266, "t": 101934.206084592, "age_ms": 208.313775001443}, {"seq": 271, "t": 101934.256693143, "age_ms": 175.38332100957632}, {"seq": 273, "t": 101934.28972597, "age_ms": 175.68110499996692}, {"seq": 275, "t": 101934.333215975, "age_ms": 177.93826200067997}, {"seq": 279, "t": 101934.439910451, "age_ms": 225.9212899953127}, {"seq": 285, "t": 101934.507724025, "age_ms": 193.16437299130484}, {"seq": 290, "t": 101934.62397824, "age_ms": 226.66648098675068}, {"seq": 294, "t": 101934.677671678, "age_ms": 212.84442199976183}, {"seq": 299, "t": 101934.768863258, "age_ms": 211.03379598935135}, {"seq": 300, "t": 101934.849227253, "age_ms": 260.5745799955912}], "fresh_video_updates_per_second": 13.2, "motion_to_decoded_marker_ms": {"p50": 208.1869029934751, "p95": 258.44137799867895, "maximum": 272.018151008524}, "frame_gap_ms": {"p50": 81.55834300850984, "p95": 122.88481299765408, "maximum": 140.86681800836232}, "last_motion_seen": 300, "release_visible":Line truncated
|
||||
@@ -0,0 +1 @@
|
||||
{"pid": 299860, "sent": 300, "elapsed": 6.156590503000189, "frames": [{"seq": 0, "t": 101430.99398335, "age_ms": null}, {"seq": 1, "t": 101431.319368405, "age_ms": 326.33528200676665}, {"seq": 10, "t": 101431.560468432, "age_ms": 428.58509899815544}, {"seq": 27, "t": 101431.82799284, "age_ms": 410.26244399836287}, {"seq": 54, "t": 101432.243882278, "age_ms": 378.6818079970544}, {"seq": 68, "t": 101432.544293376, "age_ms": 445.7647390081547}, {"seq": 95, "t": 101432.94411119, "age_ms": 395.4152090009302}, {"seq": 199, "t": 101434.777525225, "age_ms": 495.6079499970656}, {"seq": 220, "t": 101435.030036152, "age_ms": 398.25189400289673}, {"seq": 239, "t": 101435.59441137, "age_ms": 634.569867994287}, {"seq": 294, "t": 101436.262625077, "age_ms": 397.27337699150667}, {"seq": 300, "t": 101436.334007074, "age_ms": 357.2742699907394}], "fresh_video_updates_per_second": 2.0, "motion_to_decoded_marker_ms": {"p50": 398.25189400289673, "p95": 634.569867994287, "maximum": 634.569867994287}, "frame_gap_ms": {"p50": 325.38505500997417, "p95": 1833.4140350052621, "maximum": 1833.4140350052621}, "last_motion_seen": 300, "release_visible": true, "method": "60Hz XTest held drag to first observed unique decoded marker; no USB/scanout"}
|
||||
@@ -0,0 +1,120 @@
|
||||
{
|
||||
"baseline": {
|
||||
"pid": 299860,
|
||||
"sent": 300,
|
||||
"elapsed": 6.156590503000189,
|
||||
"fresh_video_updates_per_second": 2.0,
|
||||
"motion_to_decoded_marker_ms": {
|
||||
"p50": 398.25189400289673,
|
||||
"p95": 634.569867994287,
|
||||
"maximum": 634.569867994287
|
||||
},
|
||||
"frame_gap_ms": {
|
||||
"p50": 325.38505500997417,
|
||||
"p95": 1833.4140350052621,
|
||||
"maximum": 1833.4140350052621
|
||||
},
|
||||
"last_motion_seen": 300,
|
||||
"release_visible": true,
|
||||
"method": "60Hz XTest held drag to first observed unique decoded marker; no USB/scanout"
|
||||
},
|
||||
"accelerated30": {
|
||||
"pid": 310764,
|
||||
"sent": 300,
|
||||
"elapsed": 6.016666693991283,
|
||||
"fresh_video_updates_per_second": 11.8,
|
||||
"motion_to_decoded_marker_ms": {
|
||||
"p50": 215.69070499390364,
|
||||
"p95": 249.0676879970124,
|
||||
"maximum": 312.2149850096321
|
||||
},
|
||||
"frame_gap_ms": {
|
||||
"p50": 83.43983099621255,
|
||||
"p95": 117.26217799878214,
|
||||
"maximum": 179.25275200104807
|
||||
},
|
||||
"last_motion_seen": 300,
|
||||
"release_visible": true,
|
||||
"method": "60Hz XTest held drag to first observed unique decoded marker; no USB/scanout"
|
||||
},
|
||||
"accelerated45": {
|
||||
"pid": 314141,
|
||||
"sent": 300,
|
||||
"elapsed": 6.074999421995017,
|
||||
"fresh_video_updates_per_second": 13.2,
|
||||
"motion_to_decoded_marker_ms": {
|
||||
"p50": 208.1869029934751,
|
||||
"p95": 258.44137799867895,
|
||||
"maximum": 272.018151008524
|
||||
},
|
||||
"frame_gap_ms": {
|
||||
"p50": 81.55834300850984,
|
||||
"p95": 122.88481299765408,
|
||||
"maximum": 140.86681800836232
|
||||
},
|
||||
"last_motion_seen": 300,
|
||||
"release_visible": true,
|
||||
"method": "60Hz XTest held drag to first observed unique decoded marker; no USB/scanout"
|
||||
},
|
||||
"hostcpu45": {
|
||||
"pid": 319425,
|
||||
"sent": 300,
|
||||
"elapsed": 6.045887186002801,
|
||||
"fresh_video_updates_per_second": 2.8,
|
||||
"motion_to_decoded_marker_ms": {
|
||||
"p50": 433.26696900476236,
|
||||
"p95": 545.5845219985349,
|
||||
"maximum": 545.5845219985349
|
||||
},
|
||||
"frame_gap_ms": {
|
||||
"p50": 333.20788799755974,
|
||||
"p95": 668.1846940045943,
|
||||
"maximum": 668.1846940045943
|
||||
},
|
||||
"last_motion_seen": 300,
|
||||
"release_visible": true,
|
||||
"method": "60Hz XTest held drag to first observed unique decoded marker; no USB/scanout"
|
||||
},
|
||||
"threads4-45": {
|
||||
"pid": 322221,
|
||||
"sent": 300,
|
||||
"elapsed": 6.059825101998285,
|
||||
"fresh_video_updates_per_second": 11.6,
|
||||
"motion_to_decoded_marker_ms": {
|
||||
"p50": 211.1673344988958,
|
||||
"p95": 259.3057539925212,
|
||||
"maximum": 261.4585800038185
|
||||
},
|
||||
"frame_gap_ms": {
|
||||
"p50": 83.62990950263338,
|
||||
"p95": 126.65964200277813,
|
||||
"maximum": 199.5532830042066
|
||||
},
|
||||
"last_motion_seen": 300,
|
||||
"release_visible": true,
|
||||
"method": "60Hz XTest held drag to first observed unique decoded marker; no USB/scanout"
|
||||
},
|
||||
"final": {
|
||||
"pid": 325044,
|
||||
"sent": 300,
|
||||
"elapsed": 6.072603578999406,
|
||||
"fresh_video_updates_per_second": 12.4,
|
||||
"motion_to_decoded_marker_ms": {
|
||||
"p50": 224.4429390048026,
|
||||
"p95": 308.31432100967504,
|
||||
"maximum": 327.4417700013146
|
||||
},
|
||||
"frame_gap_ms": {
|
||||
"p50": 75.51110150234308,
|
||||
"p95": 149.420955000096,
|
||||
"maximum": 176.92619799345266
|
||||
},
|
||||
"last_motion_seen": 300,
|
||||
"release_visible": true,
|
||||
"method": "60Hz XTest held drag to first observed unique decoded marker; no USB/scanout"
|
||||
},
|
||||
"improvement_percent": {
|
||||
"p50": 43.64297009390492,
|
||||
"p95": 51.41365252904653
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 579 KiB |
|
After Width: | Height: | Size: 2.4 MiB |
|
After Width: | Height: | Size: 2.3 MiB |
@@ -0,0 +1,93 @@
|
||||
"""Run on the box with drag-source.py visibly filling the Ubuntu video."""
|
||||
import ctypes as C
|
||||
import json
|
||||
import os
|
||||
import statistics
|
||||
import subprocess
|
||||
import time
|
||||
from pathlib import Path
|
||||
|
||||
os.environ.update(DISPLAY=':0', XAUTHORITY='/home/armbian/.Xauthority')
|
||||
x = C.CDLL('libX11.so.6')
|
||||
t = C.CDLL('libXtst.so.6')
|
||||
x.XOpenDisplay.restype = C.c_void_p
|
||||
x.XDefaultRootWindow.argtypes = [C.c_void_p]
|
||||
x.XDefaultRootWindow.restype = C.c_ulong
|
||||
x.XSync.argtypes = [C.c_void_p, C.c_int]
|
||||
x.XGetImage.argtypes = [C.c_void_p,C.c_ulong,C.c_int,C.c_int,C.c_uint,C.c_uint,C.c_ulong,C.c_int]
|
||||
x.XGetImage.restype = C.c_void_p
|
||||
x.XGetPixel.argtypes = [C.c_void_p,C.c_int,C.c_int]
|
||||
x.XGetPixel.restype = C.c_ulong
|
||||
x.XDestroyImage.argtypes = [C.c_void_p]
|
||||
t.XTestFakeMotionEvent.argtypes = [C.c_void_p,C.c_int,C.c_int,C.c_int,C.c_ulong]
|
||||
t.XTestFakeButtonEvent.argtypes = [C.c_void_p,C.c_uint,C.c_int,C.c_ulong]
|
||||
d = x.XOpenDisplay(None)
|
||||
assert d
|
||||
root = x.XDefaultRootWindow(d)
|
||||
|
||||
def read():
|
||||
image = x.XGetImage(d, root, 40, 1380, 1120, 1, 0xffffffff, 2)
|
||||
assert image
|
||||
try:
|
||||
magic = sum(1 << i for i in range(8)
|
||||
if (x.XGetPixel(image, 780+i*40, 0) & 0xffffff) > 0xc0c0c0)
|
||||
assert magic == 0xa5, ('probe signature absent', magic)
|
||||
pixels = [x.XGetPixel(image, i*40+20, 0) & 0xffffff for i in range(16)]
|
||||
if any(0x404040 < v < 0xc0c0c0 for v in pixels):
|
||||
return -1, False
|
||||
seq = sum(1 << i for i,v in enumerate(pixels) if v > 0xc0c0c0)
|
||||
held = (x.XGetPixel(image, 700, 0) & 0xffffff) > 0xc0c0c0
|
||||
return seq, held
|
||||
finally:
|
||||
x.XDestroyImage(image)
|
||||
|
||||
pid = int(subprocess.check_output(['pgrep','-x','moonlight']).strip())
|
||||
focus = int(subprocess.check_output(['xdotool','getwindowfocus','getwindowpid']).strip())
|
||||
assert focus == pid
|
||||
assert read() == (0, False), ('test window not visible/ready',read())
|
||||
t.XTestFakeMotionEvent(d, -1, 800, 700, 0)
|
||||
x.XSync(d, 0)
|
||||
time.sleep(.5)
|
||||
sent, frames = {}, []
|
||||
start = time.monotonic()
|
||||
last = -1
|
||||
try:
|
||||
t.XTestFakeButtonEvent(d, 1, 1, 0)
|
||||
x.XSync(d, 0)
|
||||
time.sleep(.8)
|
||||
assert read()[1], 'held-button marker did not appear'
|
||||
start = time.monotonic()
|
||||
for seq in range(1, 301):
|
||||
target = start + (seq-1)/60
|
||||
time.sleep(max(0, target-time.monotonic()))
|
||||
t.XTestFakeMotionEvent(d, -1, 800+4*seq, 700+seq, 0)
|
||||
x.XSync(d, 0)
|
||||
sent[seq] = time.monotonic()
|
||||
seen, held = read()
|
||||
now = time.monotonic()
|
||||
if 0 <= seen <= 300 and seen != last and held:
|
||||
frames.append(dict(seq=seen,t=now,age_ms=(now-sent[seen])*1000 if seen in sent else None))
|
||||
last = seen
|
||||
deadline = time.monotonic()+2
|
||||
while last < 300 and time.monotonic()<deadline:
|
||||
seen, held = read()
|
||||
now = time.monotonic()
|
||||
if 0 <= seen <= 300 and seen != last and held:
|
||||
frames.append(dict(seq=seen,t=now,age_ms=(now-sent[seen])*1000 if seen in sent else None))
|
||||
last = seen
|
||||
time.sleep(.002)
|
||||
finally:
|
||||
t.XTestFakeButtonEvent(d, 1, 0, 0)
|
||||
x.XSync(d, 0)
|
||||
time.sleep(.8)
|
||||
gaps = [(b['t']-a['t'])*1000 for a,b in zip(frames,frames[1:])]
|
||||
ages = [a['age_ms'] for a in frames if a['age_ms'] is not None]
|
||||
def stats(items):
|
||||
items=sorted(items)
|
||||
return dict(p50=statistics.median(items),p95=items[int(len(items)*.95)],maximum=max(items)) if items else None
|
||||
result = dict(pid=pid,sent=300,elapsed=time.monotonic()-start,frames=frames,
|
||||
fresh_video_updates_per_second=sum(f['t']<start+5 for f in frames)/5,
|
||||
motion_to_decoded_marker_ms=stats(ages),frame_gap_ms=stats(gaps),
|
||||
last_motion_seen=last,release_visible=not read()[1],
|
||||
method='60Hz XTest held drag to first observed unique decoded marker; no USB/scanout')
|
||||
print(json.dumps(result))
|
||||
@@ -0,0 +1,89 @@
|
||||
"""Controlled 2K rubber-band workload, with sequence numbers in each paint."""
|
||||
import json
|
||||
import time
|
||||
import gi
|
||||
gi.require_version('Gtk', '3.0')
|
||||
from gi.repository import Gtk, Gdk
|
||||
|
||||
window = Gtk.Window(title='Ubuntu drag rendering probe')
|
||||
area = Gtk.DrawingArea()
|
||||
window.add(area)
|
||||
area.set_events(Gdk.EventMask.POINTER_MOTION_MASK | Gdk.EventMask.BUTTON_PRESS_MASK |
|
||||
Gdk.EventMask.BUTTON_RELEASE_MASK)
|
||||
sequence, held, draws = 0, False, 0
|
||||
target = (800, 700)
|
||||
received = 0.0
|
||||
|
||||
def log(**kw):
|
||||
print(json.dumps(dict(t=time.monotonic(), **kw)), flush=True)
|
||||
|
||||
def motion(widget, event):
|
||||
global sequence, target, received
|
||||
if held:
|
||||
sequence = max(0, min(300, round((event.x_root - 800) / 4)))
|
||||
target = (event.x_root, event.y_root)
|
||||
received = time.monotonic()
|
||||
log(event='motion', seq=sequence, x=target[0], y=target[1])
|
||||
area.queue_draw()
|
||||
return False
|
||||
|
||||
def button(widget, event):
|
||||
global held, sequence, received
|
||||
if event.type not in (Gdk.EventType.BUTTON_PRESS, Gdk.EventType.BUTTON_RELEASE):
|
||||
return False
|
||||
held = event.type == Gdk.EventType.BUTTON_PRESS
|
||||
if held:
|
||||
sequence = 0
|
||||
received = time.monotonic()
|
||||
log(event='press' if held else 'release', seq=sequence, x=event.x_root, y=event.y_root)
|
||||
area.queue_draw()
|
||||
return False
|
||||
|
||||
def draw(widget, cr):
|
||||
global draws
|
||||
draws += 1
|
||||
cr.set_source_rgb(.94, .96, .98)
|
||||
cr.paint()
|
||||
cr.set_source_rgb(.1, .15, .2)
|
||||
cr.select_font_face('sans')
|
||||
cr.set_font_size(26)
|
||||
cr.move_to(60, 70)
|
||||
cr.show_text('Ubuntu 2560 x 1440: held-button selection / video response probe')
|
||||
cr.set_font_size(18)
|
||||
cr.move_to(60, 110)
|
||||
cr.show_text('Temporary test window. The mouse pointer is separate from the rendered selection.')
|
||||
if held:
|
||||
cr.set_source_rgba(.1, .4, .9, .22)
|
||||
cr.rectangle(500, 350, max(1, target[0]-500), max(1, target[1]-350))
|
||||
cr.fill_preserve()
|
||||
cr.set_source_rgb(.1, .4, .9)
|
||||
cr.set_line_width(2)
|
||||
cr.stroke()
|
||||
for i in range(16):
|
||||
v = float(bool(sequence & (1 << i)))
|
||||
cr.set_source_rgb(v, v, v)
|
||||
cr.rectangle(40+i*40, 1350, 40, 70)
|
||||
cr.fill()
|
||||
v = float(held)
|
||||
cr.set_source_rgb(v, v, v)
|
||||
cr.rectangle(720, 1350, 40, 70)
|
||||
cr.fill()
|
||||
for i in range(8):
|
||||
v = float(bool(0xa5 & (1 << i)))
|
||||
cr.set_source_rgb(v, v, v)
|
||||
cr.rectangle(800+i*40, 1350, 40, 70)
|
||||
cr.fill()
|
||||
log(event='paint', seq=sequence, held=held, draw=draws,
|
||||
event_to_paint_ms=(time.monotonic()-received)*1000 if received else None)
|
||||
return False
|
||||
|
||||
area.connect('motion-notify-event', motion)
|
||||
area.connect('button-press-event', button)
|
||||
area.connect('button-release-event', button)
|
||||
area.connect('draw', draw)
|
||||
window.connect('destroy', Gtk.main_quit)
|
||||
window.fullscreen()
|
||||
window.show_all()
|
||||
window.present()
|
||||
log(event='ready')
|
||||
Gtk.main()
|
||||
@@ -0,0 +1,4 @@
|
||||
5d4330f703d7f8e053bc3795ca42bdaf231c9e9dd8ebb00a612013adbcccee03 /home/armbian/vdi-build/rkmpp-experiment/build/moonlight/app/moonlight
|
||||
PID
|
||||
325044 /home/armbian/vdi-build/rkmpp-experiment/build/moonlight/app/moonlight stream 192.168.1.72 Desktop --resolution 2560x1440 --fps 30 --bitrate 30000 --display-mode fullscreen --video-codec H.264 --video-decoder hardware --absolute-mouse --capture-system-keys always --keep-awake --no-vsync --no-frame-pacing --audio-on-host
|
||||
/tmp/vdi-render-desktop-final.png 2560x1440
|
||||
@@ -0,0 +1,43 @@
|
||||
active
|
||||
active
|
||||
Screen 0: minimum 320 x 200, current 2560 x 1440, maximum 8192 x 8192
|
||||
Virtual-1 connected primary 2560x1440+0+0 (normal left inverted right x axis y axis) 325mm x 203mm
|
||||
1280x800 74.99 +
|
||||
5120x2160 50.00
|
||||
4096x2160 50.00
|
||||
3840x2160 60.00 50.00 59.94
|
||||
1920x1440 60.00
|
||||
2560x1080 50.00
|
||||
1856x1392 60.00
|
||||
1792x1344 60.00
|
||||
2048x1152 60.00
|
||||
1920x1200 59.88
|
||||
1920x1080 60.00 50.00
|
||||
1600x1200 60.00
|
||||
1680x1050 59.95
|
||||
1400x1050 59.98
|
||||
1280x1024 60.02
|
||||
1440x900 59.89
|
||||
1280x960 60.00
|
||||
1360x768 60.02
|
||||
1280x768 59.87
|
||||
1024x768 60.00
|
||||
800x600 60.32
|
||||
640x480 60.00 59.94
|
||||
2560x1440_60.00 59.95*
|
||||
[ 8.194] (II) modeset(0): glamor X acceleration enabled on virgl (Mesa Intel(R) HD Graphics 4600 (HSW GT2))
|
||||
[ 8.258] (II) AIGLX: Loaded and initialized virtio_gpu
|
||||
sunshine_name = VDI-Ubuntu
|
||||
capture = x11
|
||||
encoder = software
|
||||
sw_preset = ultrafast
|
||||
sw_tune = zerolatency
|
||||
upnp = disabled
|
||||
origin_web_ui_allowed = pc
|
||||
hevc_mode = 1
|
||||
audio_sink = vdi_audio
|
||||
|
||||
'Adwaita'
|
||||
24
|
||||
false
|
||||
11月 05 13:35:26 test2-Standard-PC-Q35-ICH9-2009 sunshine[3753]: [2026-11-05 13:35:26.013]: Info: [libx264 @ 0x706ffc003700] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
|
||||
@@ -0,0 +1 @@
|
||||
{"pid": 325044, "sent": 300, "elapsed": 6.072603578999406, "frames": [{"seq": 0, "t": 102637.231005679, "age_ms": null}, {"seq": 1, "t": 102637.375821531, "age_ms": 146.55213899095543}, {"seq": 4, "t": 102637.470369078, "age_ms": 182.81436200777534}, {"seq": 7, "t": 102637.497399496, "age_ms": 167.78540800441988}, {"seq": 11, "t": 102637.573050309, "age_ms": 177.17500499566086}, {"seq": 15, "t": 102637.637224947, "age_ms": 165.53578899765853}, {"seq": 18, "t": 102637.753354012, "age_ms": 241.16151900670957}, {"seq": 23, "t": 102637.803491943, "age_ms": 208.07116100331768}, {"seq": 28, "t": 102637.903925304, "age_ms": 215.7119280018378}, {"seq": 33, "t": 102637.986829842, "age_ms": 224.30469100072514}, {"seq": 39, "t": 102638.103472527, "age_ms": 240.95501299598254}, {"seq": 45, "t": 102638.153393749, "age_ms": 190.98508200841025}, {"seq": 48, "t": 102638.236762035, "age_ms": 224.61822899640538}, {"seq": 54, "t": 102638.336837812, "age_ms": 224.58118700888008}, {"seq": 60, "t": 102638.370273502, "age_ms": 157.78010099893436}, {"seq": 62, "t": 102638.470623736, "age_ms": 224.76639499654993}, {"seq": 68, "t": 102638.503828718, "age_ms": 158.22576600476168}, {"seq": 70, "t": 102638.53700745, "age_ms": 157.95072499895468}, {"seq": 73, "t": 102638.620147945, "age_ms": 191.04953999340069}, {"seq": 77, "t": 102638.73692188, "age_ms": 234.24903300474398}, {"seq": 82, "t": 102638.803553509, "age_ms": 214.09055299591273}, {"seq": 86, "t": 102638.853724105, "age_ms": 207.8894460137235}, {"seq": 91, "t": 102638.903663993, "age_ms": 167.7334849955514}, {"seq": 93, "t": 102638.953489547, "age_ms": 191.05974500416778}, {"seq": 96, "t": 102639.004131766, "age_ms": 191.8373250082368}, {"seq": 99, "t": 102639.086846427, "age_ms": 224.23964100016747}, {"seq": 105, "t": 102639.170783459, "age_ms": 207.79056601168122}, {"seq": 110, "t": 102639.320204414, "age_ms": 274.7010260063689}, {"seq": 116, "t": 102639.422243682, "age_ms": 276.0415219963761}, {"seq": 121, "t": 102639.453343128, "age_ms": 224.09468299883883}, {"seq": 126, "t": 102639.536739412, "age_ms": 215.7501249894267}, {"seq": 131, "t": 102639.630087624, "age_ms": 193.12386200181209}, {"seq": 136, "t": 102639.686818657, "age_ms": 208.0063989997143}, {"seq": 137, "t": 102639.770788356, "age_ms": 275.27385800203774}, {"seq": 146, "t": 102639.803607754, "age_ms": 157.53305499674752}, {"seq": 148, "t": 102639.864781731, "age_ms": 177.04986900207587}, {"seq": 149, "t": 102639.936894632, "age_ms": 241.36391900538}, {"seq": 161, "t": 102640.11382083, "age_ms": 218.28323599766009}, {"seq": 162, "t": 102640.136301843, "age_ms": 200.27841700357385}, {"seq": 166, "t": 102640.22026979, "age_ms": 241.42020600265823}, {"seq": 170, "t": 102640.375098223, "age_ms": 327.4417700013146}, {"seq": 178, "t": 102640.420292124, "age_ms": 241.39016401022673}, {"seq": 182, "t": 102640.487361832, "age_ms": 241.62845499813557}, {"seq": 186, "t": 102640.562733222, "age_ms": 249.37393100117333}, {"seq": 194, "t": 102640.652493358, "age_ms": 207.02056199661456}, {"seq": 198, "t": 102640.753895334, "age_ms": 241.7529959930107}, {"seq": 204, "t": 102640.910777676, "age_ms": 297.56761201133486}, {"seq": 210, "t": 102641.020406373, "age_ms": 308.2691169984173}, {"seq": 215, "t": 102641.105655021, "age_ms": 309.69302701123524}, {"seq": 223, "t": 102641.170360193, "age_ms": 240.16399501124397}, {"seq": 227, "t": 102641.214437012, "age_ms": 218.2913959986763}, {"seq": 231, "t": 102641.353738907, "age_ms": 290.888167990488}, {"seq": 237, "t": 102641.4274023, "age_ms": 241.2379070010502}, {"seq": 242, "t": 102641.487311028, "age_ms": 241.81948900513817}, {"seq": 246, "t": 102641.620435734, "age_ms": 308.31432100967504}, {"seq": 254, "t": 102641.688955894, "age_ms": 243.4965669963276}, {"seq": 258, "t": 102641.753825856, "age_ms": 241.21165699034464}, {"seq": 262, "t": 102641.902053013, "age_ms": 321.8129019951448}, {"seq": 266, "t": 102641.937644692, "age_ms": 291.70395400433335}, {"seq": 274, "t": 102642.037546333, "age_ms": 258.58122199133504}, {"seq": 278, "t": 102642.137321683, "age_ms": 290.67028500139713}, {"seq": 284, "t": 102642.187138774, "age_ms": 240.92173400276806}, {"seq": 287, "t": 102642.239541191, "age_ms": 243.85880799673032}, {"seq": 291, "t": 102642.283865634, "age_ms": 221.210964009515}, {"seq": 296, "t": 102642.348700595, "age_ms": 203.1839800038142}, {"seq": 299, "t": 102642.393434244, "age_ms": 197.78553801006638}, {"seq": 300, "t": 102642.496291334, "age_ms": 284.0378059918294}], "fresh_video_updates_per_second": 12.4, "motion_to_decoded_marker_ms": {"p50": 224.4429390048026, "p95": 308.31432100967504, "maximum": 327.4417700013146}, "frame_gap_ms": {"p50": 75.51110150234308, "p95": 149.420955000096, "maximum": 176.92619799345266}, "last_motion_seen": 300, "release_visible": true, "method": "60Hz XTest held drag to first observed unique decoded marker; no USB/scanout"}
|
||||
@@ -0,0 +1,8 @@
|
||||
PID %CPU %MEM NLWP COMMAND
|
||||
42901 175 5.0 34 /home/test2/vdi-terminal/native-cursor-v1/sunshine /home/test2/.config/sunshine/sunshine.conf
|
||||
42867 14.5 0.3 1 /usr/bin/python3 /home/test2/vdi-terminal/native-cursor-v1/host.py stream
|
||||
6986 2.3 2.6 2 /usr/lib/xorg/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -nolisten tcp -background none -noreset -keeptty -novtswitch -verbose 3
|
||||
7174 1.5 9.1 21 /usr/bin/gnome-shell
|
||||
42870 0.8 0.2 1 /usr/bin/python3 /home/test2/vdi-terminal/native-cursor-v1/host.py guard
|
||||
CONFIG_DRM_VIRTIO_GPU=m
|
||||
CONFIG_DRM_VIRTIO_GPU_KMS=y
|
||||
@@ -0,0 +1 @@
|
||||
{"title": "Ubuntu drag rendering probe", "events": [{"seq": 1, "t": 386.746389628, "sync_ms": 16.544800000019677}, {"seq": 2, "t": 386.747641604, "sync_ms": 0.24364900002638024}, {"seq": 3, "t": 386.790644364, "sync_ms": 27.45621899998696}, {"seq": 4, "t": 386.791266283, "sync_ms": 0.4979270000262659}, {"seq": 5, "t": 386.82377804, "sync_ms": 27.241626000034103}, {"seq": 6, "t": 386.837072026, "sync_ms": 13.192211999978554}, {"seq": 7, "t": 386.838046058, "sync_ms": 0.8761970000250585}, {"seq": 8, "t": 386.893485037, "sync_ms": 46.964530000025206}, {"seq": 9, "t": 386.894080511, "sync_ms": 0.515604000042913}, {"seq": 10, "t": 386.894550321, "sync_ms": 0.40416199999526725}, {"seq": 11, "t": 386.953060816, "sync_ms": 56.54477000001634}, {"seq": 12, "t": 386.954057172, "sync_ms": 0.90117900003861}, {"seq": 13, "t": 386.992250164, "sync_ms": 38.11462699997037}, {"seq": 14, "t": 387.007995053, "sync_ms": 15.618908000021747}, {"seq": 15, "t": 387.039058012, "sync_ms": 30.94949399996949}, {"seq": 16, "t": 387.075334684, "sync_ms": 36.19679999997061}, {"seq": 17, "t": 387.095601286, "sync_ms": 17.495036000013897}, {"seq": 18, "t": 387.097089911, "sync_ms": 1.3822029999914776}, {"seq": 19, "t": 387.098355173, "sync_ms": 1.1646240000118269}, {"seq": 20, "t": 387.139738971, "sync_ms": 26.675644000022203}, {"seq": 21, "t": 387.141063814, "sync_ms": 1.226703999975598}, {"seq": 22, "t": 387.163879739, "sync_ms": 22.732104999988678}, {"seq": 23, "t": 387.166374348, "sync_ms": 2.3419340000145894}, {"seq": 24, "t": 387.199076922, "sync_ms": 32.62201699999423}, {"seq": 25, "t": 387.199985739, "sync_ms": 0.7881129999987024}, {"seq": 26, "t": 387.202476622, "sync_ms": 2.391553999984808}, {"seq": 27, "t": 387.248580673, "sync_ms": 46.01456599999665}, {"seq": 28, "t": 387.289111457, "sync_ms": 40.437841999960256}, {"seq": 29, "t": 387.291677416, "sync_ms": 2.392225999983566}, {"seq": 30, "t": 387.309069203, "sync_ms": 17.30778299997837}, {"seq": 31, "t": 387.340080195, "sync_ms": 28.50956699995777}, {"seq": 32, "t": 387.353073595, "sync_ms": 12.860319000026266}, {"seq": 33, "t": 387.377555439, "sync_ms": 24.400210000010247}, {"seq": 34, "t": 387.404325183, "sync_ms": 26.695274000019253}, {"seq": 35, "t": 387.404735836, "sync_ms": 0.30218000000559186}, {"seq": 36, "t": 387.405035549, "sync_ms": 0.2246199999831333}, {"seq": 37, "t": 387.405307499, "sync_ms": 0.19708899998249763}, {"seq": 38, "t": 387.405606668, "sync_ms": 0.21398500001623688}, {"seq": 39, "t": 387.408298388, "sync_ms": 1.025252999966142}, {"seq": 40, "t": 387.449077128, "sync_ms": 40.702318000001014}, {"seq": 41, "t": 387.470067873, "sync_ms": 20.907851999993454}, {"seq": 42, "t": 387.470811639, "sync_ms": 0.6574010000122144}, {"seq": 43, "t": 387.507744961, "sync_ms": 36.848121000048195}, {"seq": 44, "t": 387.52487975, "sync_ms": 15.802726000003986}, {"seq": 45, "t": 387.566461716, "sync_ms": 41.49454399998831}, {"seq": 46, "t": 387.592686309, "sync_ms": 26.11562699996739}, {"seq": 47, "t": 387.62752035, "sync_ms": 34.47726199999579}, {"seq": 48, "t": 387.630150606, "sync_ms": 2.3882799999910276}, {"seq": 49, "t": 387.630588359, "sync_ms": 0.3501319999941188}, {"seq": 50, "t": 387.631052887, "sync_ms": 0.36523399995758155}, {"seq": 51, "t": 387.656628609, "sync_ms": 25.496101999976872}, {"seq": 52, "t": 387.657914521, "sync_ms": 1.2138339999978598}, {"seq": 53, "t": 387.65921297, "sync_ms": 0.4041070000084801}, {"seq": 54, "t": 387.689129272, "sync_ms": 29.8373960000049}, {"seq": 55, "t": 387.689451988, "sync_ms": 0.22815099998751975}, {"seq": 56, "t": 387.73503928, "sync_ms": 45.499651000000085}, {"seq": 57, "t": 387.737069696, "sync_ms": 1.8893309999725716}, {"seq": 58, "t": 387.737437038, "sync_ms": 0.27320300000610587}, {"seq": 59, "t": 387.772095322, "sync_ms": 34.57055799998443}, {"seq": 60, "t": 387.772665593, "sync_ms": 0.4754650000222682}, {"seq": 61, "t": 387.772950546, "sync_ms": 0.19955299995899622}, {"seq": 62, "t": 387.817658317, "sync_ms": 44.61924200001022}, {"seq": 63, "t": 387.819669682, "sync_ms": 1.9063789999904657}, {"seq": 64, "t": 387.821051614, "sync_ms": 0.523154000006798}, {"seq": 65, "t": 387.821428957, "sync_ms": 0.28402300000607283}, {"seq": 66, "t": 387.821710913, "sync_ms": 0.19694500002742643}, {"seq": 67, "t": 387.868941536, "sync_ms": 39.09314399999175}, {"seq": 68, "t": 387.870479698, "sync_ms": 1.4517800000248826}, {"seq": 69, "t": 387.870973607, "sync_ms": 0.2445920000013757}, {"seq": 70, "t": 387.915544176, "sync_ms": 35.7009420000054}, {"seq": 71, "t": 387.916121849, "sync_ms": 0.4259820000243053}, {"seq": 72, "t": 387.956062437, "sync_ms": 39.8498900000277}, {"seq": 73, "t": 387.974070345, "sync_ms": 17.917700999987574}, {"seq": 74, "t": 388.047777401, "sync_ms": 73.61539700002595}, {"seq": 75, "t": 388.050161328, "sync_ms": 2.290736000020388}, {"seq": 76, "t": 388.113794712, "sync_ms": 63.54136400000243}, {"seq": 77, "t": 388.120079666, "sync_ms": 6.179652000014357}, {"seq": 78, "t": 388.121063592, "sync_ms": 0.7985949999Line truncated
|
||||
@@ -0,0 +1,54 @@
|
||||
{
|
||||
"/nodes/starhe/qemu/102/config": {
|
||||
"bios": "seabios",
|
||||
"cpu": "x86-64-v2-AES",
|
||||
"machine": "q35",
|
||||
"memory": "6144",
|
||||
"numa": 0,
|
||||
"cores": 4,
|
||||
"sockets": 1
|
||||
},
|
||||
"/nodes/starhe/status": {
|
||||
"cpuinfo": {
|
||||
"cores": 4,
|
||||
"model": "Intel(R) Core(TM) i7-4720HQ CPU @ 2.60GHz",
|
||||
"cpus": 8,
|
||||
"sockets": 1,
|
||||
"mhz": "3483.812",
|
||||
"user_hz": 100,
|
||||
"vendor": "GenuineIntel",
|
||||
"hvm": "1",
|
||||
"family": "6",
|
||||
"flags": "fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm cpuid_fault epb pti ssbd ibrs ibpb stibp tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt dtherm ida arat pln pts vnmi md_clear flush_l1d"
|
||||
},
|
||||
"memory": {
|
||||
"used": 21725175808,
|
||||
"available": 3345096704,
|
||||
"total": 25070272512,
|
||||
"free": 2797477888
|
||||
},
|
||||
"loadavg": [
|
||||
"4.14",
|
||||
"4.33",
|
||||
"4.17"
|
||||
],
|
||||
"cpu": 0,
|
||||
"uptime": 170533
|
||||
},
|
||||
"/nodes/starhe/hardware/pci": [
|
||||
{
|
||||
"id": "0000:00:02.0",
|
||||
"class": "0x030000",
|
||||
"device_name": "4th Gen Core Processor Integrated Graphics Controller",
|
||||
"vendor_name": "Intel Corporation",
|
||||
"iommu_group": null
|
||||
},
|
||||
{
|
||||
"id": "0000:01:00.0",
|
||||
"class": "0x030200",
|
||||
"device_name": "GM204M [GeForce GTX 965M]",
|
||||
"vendor_name": "NVIDIA Corporation",
|
||||
"iommu_group": null
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
00:02.0 VGA compatible controller [0300]: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller [8086:0416] (rev 06)
|
||||
Subsystem: CLEVO/KAPOK Computer Device [1558:6557]
|
||||
Kernel driver in use: i915
|
||||
Kernel modules: i915
|
||||
total 0
|
||||
drwxr-xr-x 2 root root 80 Nov 3 13:40 by-path
|
||||
crw-rw---- 1 root video 226, 1 Nov 3 13:40 card1
|
||||
crw-rw---- 1 root render 226, 128 Nov 3 13:40 renderD128
|
||||
-cpu qemu64,+aes,enforce,+kvm_pv_eoi,+kvm_pv_unhalt,+pni,+popcnt,+sse4.1,+sse4.2,+ssse3 \
|
||||
pve-manager/9.2.21/4f6e0ac86f9e8c7f (running kernel: 7.0.14-25-pve)
|
||||
libvirglrenderer1:amd64 1.1.0-2
|
||||
lrwxrwxrwx 1 root root 0 Nov 5 13:07 /sys/bus/pci/devices/0000:00:02.0/driver -> ../../../bus/pci/drivers/i915
|
||||
dpkg-query: no packages found matching libgl1-mesa-dri
|
||||
@@ -0,0 +1 @@
|
||||
{"pid": 319425, "sent": 300, "elapsed": 6.045887186002801, "frames": [{"seq": 0, "t": 102306.790284069, "age_ms": null}, {"seq": 1, "t": 102307.077877785, "age_ms": 300.25234501226805}, {"seq": 11, "t": 102307.344724265, "age_ms": 412.03776400652714}, {"seq": 53, "t": 102308.012908959, "age_ms": 379.3470480013639}, {"seq": 68, "t": 102308.259652478, "age_ms": 376.8192309944425}, {"seq": 80, "t": 102308.478016309, "age_ms": 395.105149000301}, {"seq": 96, "t": 102308.777826205, "age_ms": 428.3570179977687}, {"seq": 123, "t": 102309.237776131, "age_ms": 438.176920011756}, {"seq": 151, "t": 102309.761594355, "age_ms": 494.9406720115803}, {"seq": 172, "t": 102310.144646653, "age_ms": 517.5548249972053}, {"seq": 192, "t": 102310.39478597, "age_ms": 445.3010080032982}, {"seq": 213, "t": 102310.844978701, "age_ms": 545.5845219985349}, {"seq": 237, "t": 102311.17827817, "age_ms": 466.9588079996174}, {"seq": 257, "t": 102311.511394477, "age_ms": 467.3510900029214}, {"seq": 300, "t": 102312.007075675, "age_ms": 244.49452900444157}], "fresh_video_updates_per_second": 2.8, "motion_to_decoded_marker_ms": {"p50": 433.26696900476236, "p95": 545.5845219985349, "maximum": 545.5845219985349}, "frame_gap_ms": {"p50": 333.20788799755974, "p95": 668.1846940045943, "maximum": 668.1846940045943}, "last_motion_seen": 300, "release_visible": true, "method": "60Hz XTest held drag to first observed unique decoded marker; no USB/scanout"}
|
||||
@@ -0,0 +1 @@
|
||||
{"clicks": [{"seq": 1, "seen": 1, "x": 300, "y": 800}, {"seq": 2, "seen": 2, "x": 1500, "y": 900}, {"seq": 3, "seen": 3, "x": 300, "y": 800}, {"seq": 4, "seen": 4, "x": 1500, "y": 900}, {"seq": 5, "seen": 5, "x": 300, "y": 800}, {"seq": 6, "seen": 6, "x": 1500, "y": 900}, {"seq": 7, "seen": 7, "x": 300, "y": 800}, {"seq": 8, "seen": 8, "x": 1500, "y": 900}, {"seq": 9, "seen": 9, "x": 300, "y": 800}, {"seq": 10, "seen": 10, "x": 1500, "y": 900}, {"seq": 11, "seen": 11, "x": 300, "y": 800}, {"seq": 12, "seen": 12, "x": 1500, "y": 900}, {"seq": 13, "seen": 13, "x": 300, "y": 800}, {"seq": 14, "seen": 14, "x": 1500, "y": 900}, {"seq": 15, "seen": 15, "x": 300, "y": 800}, {"seq": 16, "seen": 16, "x": 1500, "y": 900}], "double_click_start": 16, "double_click_end": 18}
|
||||
@@ -0,0 +1 @@
|
||||
{"pid": 299860, "sent": 300, "elapsed": 6.11392921199149, "frames": [{"seq": 244, "t": 101509.548426202, "age_ms": 946.6468809987418}, {"seq": 288, "t": 101509.743167794, "age_ms": 407.9408789984882}, {"seq": 300, "t": 101509.860311234, "age_ms": 312.7684690116439}], "fresh_video_updates_per_second": 0.2, "motion_to_decoded_marker_ms": {"p50": 407.9408789984882, "p95": 946.6468809987418, "maximum": 946.6468809987418}, "frame_gap_ms": {"p50": 155.94251600123243, "p95": 194.741592000355, "maximum": 194.741592000355}, "last_motion_seen": 300, "release_visible": true, "method": "60Hz XTest held drag to first observed unique decoded marker; no USB/scanout"}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"numbered_clicks": 16,
|
||||
"presses": 18,
|
||||
"releases": 18,
|
||||
"double_click_increment": 2,
|
||||
"max_coordinate_error_px": 1.3741799423350698
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
{"title": "Ubuntu drag rendering probe", "events": [{"seq": 1, "t": 487.501102503, "sync_ms": 0.4611210000007304}, {"seq": 2, "t": 487.557551478, "sync_ms": 40.07917299998098}, {"seq": 3, "t": 487.558176765, "sync_ms": 0.5413779999798862}, {"seq": 4, "t": 487.558549044, "sync_ms": 0.29537800003254233}, {"seq": 5, "t": 487.604584234, "sync_ms": 37.26787900001227}, {"seq": 6, "t": 487.614477975, "sync_ms": 9.785251999971933}, {"seq": 7, "t": 487.615117631, "sync_ms": 0.543262999997296}, {"seq": 8, "t": 487.656745378, "sync_ms": 39.434327999970265}, {"seq": 9, "t": 487.657173044, "sync_ms": 0.33322600000929015}, {"seq": 10, "t": 487.657525799, "sync_ms": 0.2669289999630564}, {"seq": 11, "t": 487.684672539, "sync_ms": 17.03645400004916}, {"seq": 12, "t": 487.694076836, "sync_ms": 9.281702999999197}, {"seq": 13, "t": 487.729077659, "sync_ms": 28.272915000002286}, {"seq": 14, "t": 487.741675303, "sync_ms": 12.450875000013184}, {"seq": 15, "t": 487.742071209, "sync_ms": 0.3069680000180597}, {"seq": 16, "t": 487.781029975, "sync_ms": 30.28681799997912}, {"seq": 17, "t": 487.790483364, "sync_ms": 9.331421000013052}, {"seq": 18, "t": 487.79098309, "sync_ms": 0.4125380000346013}, {"seq": 19, "t": 487.823530554, "sync_ms": 22.787355000048137}, {"seq": 20, "t": 487.823880424, "sync_ms": 0.255885000001399}, {"seq": 21, "t": 487.849209841, "sync_ms": 15.13879399999496}, {"seq": 22, "t": 487.85827904, "sync_ms": 7.626256000037301}, {"seq": 23, "t": 487.893189035, "sync_ms": 25.847838999993655}, {"seq": 24, "t": 487.907273382, "sync_ms": 13.992673000018385}, {"seq": 25, "t": 487.907700407, "sync_ms": 0.33480600001212224}, {"seq": 26, "t": 487.945955967, "sync_ms": 28.57584999998153}, {"seq": 27, "t": 487.957339132, "sync_ms": 11.31833499999857}, {"seq": 28, "t": 487.962347632, "sync_ms": 4.913234000014199}, {"seq": 29, "t": 488.006995313, "sync_ms": 39.62984699995786}, {"seq": 30, "t": 488.024093677, "sync_ms": 16.968932000054338}, {"seq": 31, "t": 488.024413841, "sync_ms": 0.21390399996334963}, {"seq": 32, "t": 488.031809074, "sync_ms": 7.316805000016302}, {"seq": 33, "t": 488.057391788, "sync_ms": 23.395475000029364}, {"seq": 34, "t": 488.057928888, "sync_ms": 0.43159000000514425}, {"seq": 35, "t": 488.09409274, "sync_ms": 26.7502430000377}, {"seq": 36, "t": 488.107402365, "sync_ms": 13.21838299998035}, {"seq": 37, "t": 488.107967825, "sync_ms": 0.46921899996732463}, {"seq": 38, "t": 488.14092099, "sync_ms": 23.536282999998548}, {"seq": 39, "t": 488.157578596, "sync_ms": 16.553893000036624}, {"seq": 40, "t": 488.158023404, "sync_ms": 0.3494649999993271}, {"seq": 41, "t": 488.190941466, "sync_ms": 23.601648999999725}, {"seq": 42, "t": 488.211403073, "sync_ms": 20.374169000035636}, {"seq": 43, "t": 488.21180392, "sync_ms": 0.3216449999854376}, {"seq": 44, "t": 488.246591243, "sync_ms": 29.292833999988943}, {"seq": 45, "t": 488.257630778, "sync_ms": 10.930890999986786}, {"seq": 46, "t": 488.258155071, "sync_ms": 0.42413400001350965}, {"seq": 47, "t": 488.29770196, "sync_ms": 30.377168999962123}, {"seq": 48, "t": 488.307895712, "sync_ms": 10.09923899999876}, {"seq": 49, "t": 488.30870116, "sync_ms": 0.7145950000335688}, {"seq": 50, "t": 488.342058956, "sync_ms": 24.38821700002336}, {"seq": 51, "t": 488.357760617, "sync_ms": 15.625645000000077}, {"seq": 52, "t": 488.358240039, "sync_ms": 0.3867759999707232}, {"seq": 53, "t": 488.391418686, "sync_ms": 24.11505100002387}, {"seq": 54, "t": 488.40770567, "sync_ms": 16.177170999981172}, {"seq": 55, "t": 488.408295419, "sync_ms": 0.5122110000002067}, {"seq": 56, "t": 488.44278825, "sync_ms": 25.378107999983968}, {"seq": 57, "t": 488.458826795, "sync_ms": 15.931275000014011}, {"seq": 58, "t": 488.459315837, "sync_ms": 0.39793000001964174}, {"seq": 59, "t": 488.507414591, "sync_ms": 40.12808599998152}, {"seq": 60, "t": 488.525953507, "sync_ms": 18.457505000014862}, {"seq": 61, "t": 488.526547693, "sync_ms": 0.5286819999810177}, {"seq": 62, "t": 488.526796442, "sync_ms": 0.17308799999682378}, {"seq": 63, "t": 488.55978423, "sync_ms": 25.740282000015213}, {"seq": 64, "t": 488.574556954, "sync_ms": 14.679845000046043}, {"seq": 65, "t": 488.575118871, "sync_ms": 0.48490399996126143}, {"seq": 66, "t": 488.599532097, "sync_ms": 15.456061999998383}, {"seq": 67, "t": 488.62409438, "sync_ms": 23.456651000003603}, {"seq": 68, "t": 488.62440462, "sync_ms": 0.2087209999785955}, {"seq": 69, "t": 488.648483132, "sync_ms": 11.161360000016884}, {"seq": 70, "t": 488.657655652, "sync_ms": 7.022019000032742}, {"seq": 71, "t": 488.68985908, "sync_ms": 22.485559000017474}, {"seq": 72, "t": 488.698347677, "sync_ms": 8.363533000022016}, {"seq": 73, "t": 488.730038753, "sync_ms": 29.406006000044727}, {"seq": 74, "t": 488.730371565, "sync_ms": 0.2564129999882425}, {"seq": 75, "t": 488.757728982, "sync_ms": 23.701856999991833}, {"seq": 76, "t": 488.774806378, "sync_ms": 16.968737000013334}, {"seq": 77, "t": 488.775534045, "sync_ms": 0.639352999996845}, {"seq": 78, "t": 488.808644666, "sync_ms": 21.89599600001Line truncated
|
||||
@@ -0,0 +1,47 @@
|
||||
"""Separate injection timing from decoded-video sampling; run in test window only."""
|
||||
import ctypes as C
|
||||
import json
|
||||
import os
|
||||
import subprocess
|
||||
import time
|
||||
|
||||
x = C.CDLL('libX11.so.6')
|
||||
t = C.CDLL('libXtst.so.6')
|
||||
x.XOpenDisplay.restype = C.c_void_p
|
||||
x.XSync.argtypes = [C.c_void_p, C.c_int]
|
||||
t.XTestFakeMotionEvent.argtypes = [C.c_void_p,C.c_int,C.c_int,C.c_int,C.c_ulong]
|
||||
t.XTestFakeButtonEvent.argtypes = [C.c_void_p,C.c_uint,C.c_int,C.c_ulong]
|
||||
d=x.XOpenDisplay(None)
|
||||
assert d
|
||||
x.XGetInputFocus.argtypes=[C.c_void_p,C.POINTER(C.c_ulong),C.POINTER(C.c_int)]
|
||||
x.XFetchName.argtypes=[C.c_void_p,C.c_ulong,C.POINTER(C.c_char_p)]
|
||||
wid=C.c_ulong();revert=C.c_int();name=C.c_char_p()
|
||||
x.XGetInputFocus(d,C.byref(wid),C.byref(revert))
|
||||
x.XQueryTree.argtypes=[C.c_void_p,C.c_ulong,C.POINTER(C.c_ulong),C.POINTER(C.c_ulong),C.POINTER(C.c_void_p),C.POINTER(C.c_uint)]
|
||||
title=''
|
||||
for _ in range(8):
|
||||
x.XFetchName(d,wid.value,C.byref(name))
|
||||
title=name.value.decode() if name.value else ''
|
||||
if title: break
|
||||
root=C.c_ulong();parent=C.c_ulong();children=C.c_void_p();count=C.c_uint()
|
||||
if not x.XQueryTree(d,wid.value,C.byref(root),C.byref(parent),C.byref(children),C.byref(count)): break
|
||||
if not parent.value or parent.value==wid.value:break
|
||||
wid.value=parent.value
|
||||
assert title in ('Ubuntu drag rendering probe','VDI-Ubuntu - Moonlight'), title
|
||||
t.XTestFakeMotionEvent(d,-1,800,700,0);x.XSync(d,0)
|
||||
time.sleep(.5)
|
||||
sent=[]
|
||||
try:
|
||||
t.XTestFakeButtonEvent(d,1,1,0);x.XSync(d,0)
|
||||
time.sleep(.8)
|
||||
start=time.monotonic()
|
||||
for seq in range(1,301):
|
||||
time.sleep(max(0,start+(seq-1)/60-time.monotonic()))
|
||||
begin=time.monotonic()
|
||||
t.XTestFakeMotionEvent(d,-1,800+4*seq,700+seq,0)
|
||||
x.XSync(d,0)
|
||||
sent.append(dict(seq=seq,t=time.monotonic(),sync_ms=(time.monotonic()-begin)*1000))
|
||||
time.sleep(1)
|
||||
finally:
|
||||
t.XTestFakeButtonEvent(d,1,0,0);x.XSync(d,0)
|
||||
print(json.dumps(dict(title=title,events=sent)))
|
||||
@@ -0,0 +1,41 @@
|
||||
/usr/bin/kvm \
|
||||
-id 102 \
|
||||
-name ubuntu-test \
|
||||
-no-shutdown \
|
||||
-chardev 'socket,id=qmp,path=/var/run/qemu-server/102.qmp,server=on,wait=off' \
|
||||
-mon 'chardev=qmp,mode=control' \
|
||||
-chardev 'socket,id=qmp-event,path=/var/run/qmeventd.sock,reconnect-ms=5000' \
|
||||
-mon 'chardev=qmp-event,mode=control' \
|
||||
-pidfile /var/run/qemu-server/102.pid \
|
||||
-daemonize \
|
||||
-smbios 'type=1,uuid=5a3c4a49-7354-407c-a152-d734e5db27b5' \
|
||||
-smp '4,sockets=1,cores=4,maxcpus=4' \
|
||||
-nodefaults \
|
||||
-boot 'menu=on,strict=on,reboot-timeout=1000,splash=/usr/share/qemu-server/bootsplash.jpg' \
|
||||
-display 'egl-headless,gl=core' \
|
||||
-vnc 'unix:/var/run/qemu-server/102.vnc,password=on' \
|
||||
-cpu host,+kvm_pv_eoi,+kvm_pv_unhalt \
|
||||
-m 6144 \
|
||||
-object 'iothread,id=iothread-virtioscsi0' \
|
||||
-object '{"id":"throttle-drive-scsi0","limits":{},"qom-type":"throttle-group"}' \
|
||||
-global 'ICH9-LPC.disable_s3=1' \
|
||||
-global 'ICH9-LPC.disable_s4=1' \
|
||||
-readconfig /usr/share/qemu-server/pve-q35-4.0.cfg \
|
||||
-device 'vmgenid,guid=5eba3fcd-a19d-4ba6-82a5-e125824cb9cd' \
|
||||
-device 'usb-tablet,id=tablet,bus=ehci.0,port=1' \
|
||||
-device 'virtio-vga-gl,id=vga,bus=pcie.0,addr=0x1' \
|
||||
-chardev 'socket,path=/var/run/qemu-server/102.qga,server=on,wait=off,id=qga0' \
|
||||
-device 'virtio-serial,id=qga0,bus=pci.0,addr=0x8' \
|
||||
-device 'virtserialport,chardev=qga0,name=org.qemu.guest_agent.0' \
|
||||
-device 'virtio-serial,id=spice,bus=pci.0,addr=0x9' \
|
||||
-chardev 'spicevmc,id=vdagent,name=vdagent' \
|
||||
-device 'virtserialport,chardev=vdagent,name=com.redhat.spice.0' \
|
||||
-spice 'tls-port=61000,addr=127.0.0.1,tls-ciphers=HIGH,seamless-migration=on' \
|
||||
-iscsi 'initiator-name=iqn.1993-08.org.debian:01:54fbd9235fe9' \
|
||||
-device 'ide-cd,bus=ide.1,unit=0,id=ide2' \
|
||||
-device 'virtio-scsi-pci,id=virtioscsi0,bus=pci.3,addr=0x1,iothread=iothread-virtioscsi0' \
|
||||
-blockdev '{"detect-zeroes":"on","discard":"ignore","driver":"throttle","file":{"cache":{"direct":true,"no-flush":false},"detect-zeroes":"on","discard":"ignore","driver":"qcow2","file":{"aio":"io_uring","cache":{"direct":true,"no-flush":false},"detect-zeroes":"on","discard":"ignore","driver":"file","filename":"/var/lib/vz/images/102/vm-102-disk-0.qcow2","node-name":"e66a1e00ed016b86a9a870a53cf552a","read-only":false},"node-name":"f66a1e00ed016b86a9a870a53cf552a","read-only":false},"node-name":"drive-scsi0","read-only":false,"throttle-group":"throttle-drive-scsi0"}' \
|
||||
-device 'scsi-hd,bus=virtioscsi0.0,channel=0,scsi-id=0,lun=0,drive=drive-scsi0,id=scsi0,device_id=drive-scsi0,bootindex=100,write-cache=on' \
|
||||
-netdev 'type=tap,id=net0,ifname=tap102i0,script=/usr/libexec/qemu-server/pve-bridge,downscript=/usr/libexec/qemu-server/pve-bridgedown,vhost=on' \
|
||||
-device 'virtio-net-pci,mac=BC:24:11:36:06:DD,netdev=net0,bus=pci.0,addr=0x12,id=net0,rx_queue_size=1024,tx_queue_size=256,host_mtu=1500,host_tunnel=off' \
|
||||
-machine 'hpet=off,type=q35+pve0'
|
||||
|
After Width: | Height: | Size: 364 KiB |
@@ -0,0 +1,82 @@
|
||||
{
|
||||
"size": [
|
||||
2560,
|
||||
1440
|
||||
],
|
||||
"source_levels": [
|
||||
0,
|
||||
8,
|
||||
16,
|
||||
24,
|
||||
32,
|
||||
64,
|
||||
128,
|
||||
192,
|
||||
223,
|
||||
235,
|
||||
247,
|
||||
255
|
||||
],
|
||||
"decoded_rgb": [
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
8,
|
||||
8,
|
||||
8
|
||||
],
|
||||
[
|
||||
16,
|
||||
16,
|
||||
16
|
||||
],
|
||||
[
|
||||
24,
|
||||
24,
|
||||
24
|
||||
],
|
||||
[
|
||||
31,
|
||||
31,
|
||||
31
|
||||
],
|
||||
[
|
||||
64,
|
||||
64,
|
||||
64
|
||||
],
|
||||
[
|
||||
128,
|
||||
128,
|
||||
128
|
||||
],
|
||||
[
|
||||
192,
|
||||
192,
|
||||
192
|
||||
],
|
||||
[
|
||||
223,
|
||||
223,
|
||||
223
|
||||
],
|
||||
[
|
||||
235,
|
||||
235,
|
||||
235
|
||||
],
|
||||
[
|
||||
247,
|
||||
247,
|
||||
247
|
||||
],
|
||||
[
|
||||
254,
|
||||
254,
|
||||
254
|
||||
]
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 2.3 MiB |
@@ -0,0 +1 @@
|
||||
{"pid": 322221, "sent": 300, "elapsed": 6.059825101998285, "frames": [{"seq": 0, "t": 102440.821692571, "age_ms": null}, {"seq": 1, "t": 102441.021245854, "age_ms": 200.77274600043893}, {"seq": 4, "t": 102441.054319233, "age_ms": 166.33144298975822}, {"seq": 7, "t": 102441.121074412, "age_ms": 184.1263880050974}, {"seq": 11, "t": 102441.187592172, "age_ms": 211.2048270064406}, {"seq": 17, "t": 102441.288195983, "age_ms": 211.599453992676}, {"seq": 25, "t": 102441.354245034, "age_ms": 144.08069000637624}, {"seq": 27, "t": 102441.437470401, "age_ms": 194.43801099259872}, {"seq": 32, "t": 102441.521143479, "age_ms": 194.14809400041122}, {"seq": 37, "t": 102441.621274497, "age_ms": 211.3877039955696}, {"seq": 40, "t": 102441.704291322, "age_ms": 244.57279201305937}, {"seq": 47, "t": 102441.761843214, "age_ms": 185.34351799462456}, {"seq": 50, "t": 102441.821215988, "age_ms": 194.05738500063308}, {"seq": 53, "t": 102441.904253228, "age_ms": 227.5764310033992}, {"seq": 59, "t": 102442.021125681, "age_ms": 244.2382409935817}, {"seq": 64, "t": 102442.054509394, "age_ms": 194.8098800057778}, {"seq": 68, "t": 102442.137818467, "age_ms": 211.01931799785234}, {"seq": 71, "t": 102442.187866327, "age_ms": 211.35531899926718}, {"seq": 75, "t": 102442.221035664, "age_ms": 167.4995659996057}, {"seq": 77, "t": 102442.261546279, "age_ms": 173.07829500350635}, {"seq": 81, "t": 102442.354193389, "age_ms": 211.2952359893825}, {"seq": 87, "t": 102442.454272485, "age_ms": 210.66260800580494}, {"seq": 92, "t": 102442.554537373, "age_ms": 227.72313200403005}, {"seq": 98, "t": 102442.637964863, "age_ms": 211.09194299788214}, {"seq": 103, "t": 102442.721551604, "age_ms": 201.39078100328334}, {"seq": 108, "t": 102442.804406258, "age_ms": 211.46381899598055}, {"seq": 113, "t": 102442.920716956, "age_ms": 244.21081799664535}, {"seq": 119, "t": 102442.987716838, "age_ms": 210.34760100883432}, {"seq": 124, "t": 102443.070907782, "age_ms": 210.82593301252928}, {"seq": 129, "t": 102443.171088957, "age_ms": 228.2131239917362}, {"seq": 135, "t": 102443.271234258, "age_ms": 227.42562201165128}, {"seq": 140, "t": 102443.371033932, "age_ms": 244.78102099965326}, {"seq": 149, "t": 102443.454392293, "age_ms": 177.41888800810557}, {"seq": 152, "t": 102443.555200555, "age_ms": 228.273792003165}, {"seq": 158, "t": 102443.638171873, "age_ms": 211.63676999276504}, {"seq": 169, "t": 102443.760404591, "age_ms": 150.1450340001611}, {"seq": 172, "t": 102443.85525233, "age_ms": 195.65804200829007}, {"seq": 175, "t": 102443.971184144, "age_ms": 261.4585800038185}, {"seq": 188, "t": 102444.11698828, "age_ms": 178.4758849971695}, {"seq": 192, "t": 102444.237862697, "age_ms": 233.97267900872976}, {"seq": 201, "t": 102444.337947034, "age_ms": 194.98486400698312}, {"seq": 204, "t": 102444.421131266, "age_ms": 228.22857300343458}, {"seq": 210, "t": 102444.521082895, "age_ms": 228.0856559955282}, {"seq": 216, "t": 102444.621723735, "age_ms": 228.45140800927766}, {"seq": 222, "t": 102444.695372472, "age_ms": 201.36859599733725}, {"seq": 227, "t": 102444.754574322, "age_ms": 178.3318009984214}, {"seq": 230, "t": 102444.837946388, "age_ms": 211.129841991351}, {"seq": 236, "t": 102444.877757871, "age_ms": 151.2591969949426}, {"seq": 238, "t": 102445.002232629, "age_ms": 242.34762000560295}, {"seq": 244, "t": 102445.0878587, "age_ms": 227.70881200267468}, {"seq": 250, "t": 102445.171681681, "age_ms": 211.80562699737493}, {"seq": 255, "t": 102445.271119679, "age_ms": 228.1101469998248}, {"seq": 261, "t": 102445.382047928, "age_ms": 238.3739349897951}, {"seq": 267, "t": 102445.454414491, "age_ms": 210.4543309978908}, {"seq": 270, "t": 102445.494580641, "age_ms": 201.10491999366786}, {"seq": 273, "t": 102445.621240283, "age_ms": 250.1459380000597}, {"seq": 281, "t": 102445.737939762, "age_ms": 260.4216850013472}, {"seq": 287, "t": 102445.798649531, "age_ms": 209.08144999702927}, {"seq": 291, "t": 102445.855915578, "age_ms": 201.97058899793774}, {"seq": 296, "t": 102445.972795595, "age_ms": 235.7944199902704}, {"seq": 300, "t": 102446.064952103, "age_ms": 259.3057539925212}], "fresh_video_updates_per_second": 11.6, "motion_to_decoded_marker_ms": {"p50": 211.1673344988958, "p95": 259.3057539925212, "maximum": 261.4585800038185}, "frame_gap_ms": {"p50": 83.62990950263338, "p95": 126.65964200277813, "maximum": 199.5532830042066}, "last_motion_seen": 300, "release_visible": true, "method": "60Hz XTest held drag to first observed unique decoded marker; no USB/scanout"}
|
||||
@@ -0,0 +1,30 @@
|
||||
Reading package lists...
|
||||
Building dependency tree...
|
||||
Reading state information...
|
||||
The following additional packages will be installed:
|
||||
libegl-mesa0 libglvnd0 libglx-mesa0 libglx0 libwayland-client0 libxcb-glx0
|
||||
libxxf86vm1
|
||||
The following NEW packages will be installed:
|
||||
libegl-mesa0 libegl1 libgl1 libgl1-mesa-dri libglvnd0 libglx-mesa0 libglx0
|
||||
libwayland-client0 libxcb-glx0 libxxf86vm1
|
||||
0 upgraded, 10 newly installed, 0 to remove and 49 not upgraded.
|
||||
Inst libwayland-client0 (1.23.1-3 Debian:13.7/stable [amd64])
|
||||
Inst libegl-mesa0 (25.0.7-2+deb13u1 Debian:13.7/stable [amd64])
|
||||
Inst libglvnd0 (1.7.0-1+b2 Debian:13.7/stable [amd64])
|
||||
Inst libxcb-glx0 (1.17.0-2+b1 Debian:13.7/stable [amd64])
|
||||
Inst libxxf86vm1 (1:1.1.4-1+b4 Debian:13.7/stable [amd64])
|
||||
Inst libgl1-mesa-dri (25.0.7-2+deb13u1 Debian:13.7/stable [amd64])
|
||||
Inst libglx-mesa0 (25.0.7-2+deb13u1 Debian:13.7/stable [amd64])
|
||||
Inst libglx0 (1.7.0-1+b2 Debian:13.7/stable [amd64])
|
||||
Inst libgl1 (1.7.0-1+b2 Debian:13.7/stable [amd64])
|
||||
Inst libegl1 (1.7.0-1+b2 Debian:13.7/stable [amd64])
|
||||
Conf libwayland-client0 (1.23.1-3 Debian:13.7/stable [amd64])
|
||||
Conf libegl-mesa0 (25.0.7-2+deb13u1 Debian:13.7/stable [amd64])
|
||||
Conf libglvnd0 (1.7.0-1+b2 Debian:13.7/stable [amd64])
|
||||
Conf libxcb-glx0 (1.17.0-2+b1 Debian:13.7/stable [amd64])
|
||||
Conf libxxf86vm1 (1:1.1.4-1+b4 Debian:13.7/stable [amd64])
|
||||
Conf libgl1-mesa-dri (25.0.7-2+deb13u1 Debian:13.7/stable [amd64])
|
||||
Conf libglx-mesa0 (25.0.7-2+deb13u1 Debian:13.7/stable [amd64])
|
||||
Conf libglx0 (1.7.0-1+b2 Debian:13.7/stable [amd64])
|
||||
Conf libgl1 (1.7.0-1+b2 Debian:13.7/stable [amd64])
|
||||
Conf libegl1 (1.7.0-1+b2 Debian:13.7/stable [amd64])
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"scsi0": "local:102/vm-102-disk-0.qcow2,iothread=1,size=50G",
|
||||
"balloon": 0,
|
||||
"machine": "q35",
|
||||
"ide2": "none,media=cdrom",
|
||||
"cpu": "x86-64-v2-AES",
|
||||
"scsihw": "virtio-scsi-single",
|
||||
"net0": "virtio=BC:24:11:36:06:DD,bridge=vmbr0,firewall=1",
|
||||
"smbios1": "uuid=5a3c4a49-7354-407c-a152-d734e5db27b5",
|
||||
"bios": "seabios",
|
||||
"meta": "creation-qemu=11.0.0,ctime=1792747553",
|
||||
"digest": "cca4513d17be8a42e85820cd3028ec0d9ca75bb9",
|
||||
"cores": 4,
|
||||
"onboot": 1,
|
||||
"ostype": "l26",
|
||||
"sockets": 1,
|
||||
"vmgenid": "5eba3fcd-a19d-4ba6-82a5-e125824cb9cd",
|
||||
"numa": 0,
|
||||
"boot": "order=scsi0",
|
||||
"name": "ubuntu-test",
|
||||
"agent": "1",
|
||||
"memory": "6144"
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
agent: 1
|
||||
balloon: 0
|
||||
bios: seabios
|
||||
boot: order=scsi0
|
||||
cores: 4
|
||||
cpu: host
|
||||
ide2: none,media=cdrom
|
||||
machine: q35
|
||||
memory: 6144
|
||||
meta: creation-qemu=11.0.0,ctime=1792747553
|
||||
name: ubuntu-test
|
||||
net0: virtio=BC:24:11:36:06:DD,bridge=vmbr0,firewall=1
|
||||
numa: 0
|
||||
onboot: 1
|
||||
ostype: l26
|
||||
scsi0: local:102/vm-102-disk-0.qcow2,iothread=1,size=50G
|
||||
scsihw: virtio-scsi-single
|
||||
smbios1: uuid=5a3c4a49-7354-407c-a152-d734e5db27b5
|
||||
sockets: 1
|
||||
vga: virtio-gl
|
||||
vmgenid: 5eba3fcd-a19d-4ba6-82a5-e125824cb9cd
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"start": {
|
||||
"ticks": 851,
|
||||
"uptime": 160635.04,
|
||||
"hz": 100
|
||||
},
|
||||
"end": {
|
||||
"ticks": 6159,
|
||||
"uptime": 160669.07,
|
||||
"hz": 100
|
||||
},
|
||||
"cpu_percent": 155.98001763150694
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
{"method": "synthetic F9 injection to decoded marker; includes xdotool startup/polling; excludes physical USB and panel scanout", "samples_ms": [348.530856, 284.711552, 418.432631, 517.631971, 350.308551, 359.716136, 371.757019, 336.86728, 339.483497, 331.731979, 325.803183, 299.861117, 404.714758, 315.932907, 363.985806, 285.394734, 269.009911, 267.130731, 267.48306, 300.083667, 315.059179, 254.669442, 307.362411, 261.459355], "timeouts": [], "p50_ms": 320.868045, "p95_ms": 418.432631}
|
||||
|
After Width: | Height: | Size: 407 KiB |
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"start": {
|
||||
"ticks": 43677,
|
||||
"uptime": 160314.18,
|
||||
"hz": 100
|
||||
},
|
||||
"end": {
|
||||
"ticks": 49358,
|
||||
"uptime": 160349.02,
|
||||
"hz": 100
|
||||
},
|
||||
"cpu_percent": 163.05970149255367
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
{"method": "synthetic F9 injection to decoded marker; includes xdotool startup/polling; excludes physical USB and panel scanout", "samples_ms": [344.644424, 337.765688, 309.224611, 288.914507, 300.623824, 413.339591, 276.156092, 455.880288, 397.683984, 319.561692, 441.597948, 316.018893, 380.965697, 391.304301, 316.802011, 308.706964, 423.892107, 392.97808, 311.62779, 372.379229, 374.062989, 463.189393, 400.992325, 380.511343], "timeouts": [], "p50_ms": 373.221109, "p95_ms": 455.880288}
|
||||
|
After Width: | Height: | Size: 419 KiB |
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"start": {
|
||||
"ticks": 54663,
|
||||
"uptime": 160421.94,
|
||||
"hz": 100
|
||||
},
|
||||
"end": {
|
||||
"ticks": 60508,
|
||||
"uptime": 160458.13,
|
||||
"hz": 100
|
||||
},
|
||||
"cpu_percent": 161.50870406188517
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
{"method": "synthetic F9 injection to decoded marker; includes xdotool startup/polling; excludes physical USB and panel scanout", "samples_ms": [416.662734, 438.190541, 358.204977, 362.162827, 367.07121, 438.488762, 307.76588, 390.107248, 375.053717, 488.630023, 341.718531, 378.578458, 475.09635, 444.449367, 304.375626, 378.384812, 458.503145, 335.47612, 373.547319, 386.23024, 322.255097, 906.012442, 318.026013, 304.228075], "timeouts": [], "p50_ms": 376.7192645, "p95_ms": 488.630023}
|
||||
|
After Width: | Height: | Size: 409 KiB |
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"start": {
|
||||
"ticks": 1159,
|
||||
"uptime": 160532.79,
|
||||
"hz": 100
|
||||
},
|
||||
"end": {
|
||||
"ticks": 5792,
|
||||
"uptime": 160569.31,
|
||||
"hz": 100
|
||||
},
|
||||
"cpu_percent": 126.86199342829488
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
{"method": "synthetic F9 injection to decoded marker; includes xdotool startup/polling; excludes physical USB and panel scanout", "samples_ms": [450.981038, 407.094691, 376.074366, 355.646045, 403.058306, 400.754549, 402.787732, 448.532349, 444.135376, 507.893521, 370.823885, 440.630941, 388.25405, 403.328791, 527.302213, 462.71738, 353.718619, 431.830633, 320.072327, 366.009151, 392.344769, 373.577212, 368.107089, 404.337391], "timeouts": [], "p50_ms": 402.923019, "p95_ms": 507.893521}
|
||||
|
After Width: | Height: | Size: 408 KiB |
@@ -0,0 +1,67 @@
|
||||
"""Temporary GTK desktop workload; F9 toggles a decoded-video echo marker."""
|
||||
import gi, time, json
|
||||
gi.require_version('Gtk', '3.0')
|
||||
from gi.repository import Gtk, Gdk, GLib
|
||||
|
||||
started = time.monotonic()
|
||||
draws = 0
|
||||
white = False
|
||||
win = Gtk.Window(title='VDI Ubuntu quality benchmark')
|
||||
area = Gtk.DrawingArea()
|
||||
win.add(area)
|
||||
area.set_can_focus(True)
|
||||
area.set_events(Gdk.EventMask.BUTTON_PRESS_MASK)
|
||||
|
||||
def event(w, e):
|
||||
global white
|
||||
if getattr(e, 'keyval', None) == Gdk.KEY_F9:
|
||||
white = not white
|
||||
area.queue_draw_area(2100, 80, 300, 100)
|
||||
print(json.dumps({'event': e.type.value_nick, 'keyval': getattr(e, 'keyval', None),
|
||||
'button': getattr(e, 'button', None), 'x': getattr(e, 'x', None),
|
||||
'y': getattr(e, 'y', None), 't': time.monotonic()}), flush=True)
|
||||
return False
|
||||
|
||||
def draw(w, cr):
|
||||
global draws
|
||||
draws += 1
|
||||
width, height = w.get_allocated_width(), w.get_allocated_height()
|
||||
elapsed = time.monotonic() - started
|
||||
cr.set_source_rgb(.96, .97, .99); cr.paint()
|
||||
cr.select_font_face('sans'); cr.set_font_size(28); cr.set_source_rgb(.08, .12, .18)
|
||||
cr.move_to(60, 60); cr.show_text('Ubuntu: native resolution / text / motion / input')
|
||||
cr.set_font_size(20); cr.move_to(60, 100); cr.show_text(f'Native desktop: {width} x {height}')
|
||||
for row, size in enumerate([12, 14, 16, 18, 20, 24]):
|
||||
cr.set_font_size(size); cr.move_to(60, 155 + row * 45)
|
||||
cr.show_text(f'{size}px Cloud desktop 0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz')
|
||||
for i in range(600):
|
||||
cr.set_source_rgb(*( (0,0,0) if i % 2 else (1,1,1) ))
|
||||
cr.rectangle(60+i, 445, 1, 80); cr.fill()
|
||||
for i, color in enumerate([(1,0,0),(0,.65,0),(0,.2,1),(.6,0,.6)]):
|
||||
cr.set_source_rgb(*color); cr.set_font_size(18); cr.move_to(60, 565+i*28)
|
||||
cr.show_text('Color text 0123456789 - desktop quality test')
|
||||
for i, level in enumerate([0, 8, 16, 24, 32, 64, 128, 192, 223, 235, 247, 255]):
|
||||
cr.set_source_rgb(*([level/255]*3)); cr.rectangle(900+i*70, 450, 70, 80); cr.fill()
|
||||
cr.set_source_rgb(*([1 if white else 0]*3)); cr.rectangle(2100,80,300,100);cr.fill()
|
||||
for i in range(5):
|
||||
x=70+((elapsed*220+i*173) % max(200,width-400))
|
||||
cr.set_source_rgb(.1+i*.14,.35,.8-i*.1);cr.rectangle(x,height-280+i*35,120,28);cr.fill()
|
||||
return False
|
||||
|
||||
def tick():
|
||||
area.queue_draw_area(0,max(0,area.get_allocated_height()-300),area.get_allocated_width(),300)
|
||||
return True
|
||||
|
||||
def report():
|
||||
elapsed=time.monotonic()-started
|
||||
print(json.dumps({'event':'source-stats','draws':draws,'seconds':elapsed,'draw_fps':draws/elapsed}),flush=True)
|
||||
return True
|
||||
|
||||
win.connect('destroy',Gtk.main_quit)
|
||||
win.connect('key-press-event',event)
|
||||
area.connect('button-press-event',event)
|
||||
area.connect('draw',draw)
|
||||
win.fullscreen();win.show_all();area.grab_focus()
|
||||
GLib.timeout_add(16,tick);GLib.timeout_add_seconds(5,report)
|
||||
print('READY',flush=True)
|
||||
Gtk.main()
|
||||
@@ -0,0 +1,40 @@
|
||||
"""Synthetic X11 input to decoded video; excludes physical USB and scanout."""
|
||||
import ctypes, ctypes.util, subprocess, os, time, json, statistics
|
||||
os.environ.update(DISPLAY=':0',XAUTHORITY='/home/armbian/.Xauthority')
|
||||
x=ctypes.CDLL(ctypes.util.find_library('X11'))
|
||||
x.XOpenDisplay.argtypes=[ctypes.c_char_p];x.XOpenDisplay.restype=ctypes.c_void_p
|
||||
x.XDefaultRootWindow.argtypes=[ctypes.c_void_p];x.XDefaultRootWindow.restype=ctypes.c_ulong
|
||||
x.XGetImage.argtypes=[ctypes.c_void_p,ctypes.c_ulong,ctypes.c_int,ctypes.c_int,ctypes.c_uint,ctypes.c_uint,ctypes.c_ulong,ctypes.c_int];x.XGetImage.restype=ctypes.c_void_p
|
||||
x.XGetPixel.argtypes=[ctypes.c_void_p,ctypes.c_int,ctypes.c_int];x.XGetPixel.restype=ctypes.c_ulong
|
||||
x.XDestroyImage.argtypes=[ctypes.c_void_p];x.XCloseDisplay.argtypes=[ctypes.c_void_p]
|
||||
prefix='/home/armbian/vdi-build/rkmpp-experiment/build/moonlight/app/moonlight stream 192.168.1.72 '
|
||||
items=[l.split(None,1) for l in subprocess.check_output(['ps','-eo','pid,args'],text=True).splitlines()[1:] if len(l.split(None,1))==2 and l.split(None,1)[1].startswith(prefix)]
|
||||
assert len(items)==1,items
|
||||
pid=items[0][0]
|
||||
ids=subprocess.check_output(['xdotool','search','--onlyvisible','--pid',pid,'--class','Moonlight'],text=True).split();assert ids
|
||||
subprocess.run(['xdotool','windowactivate','--sync',ids[-1]],check=True)
|
||||
assert subprocess.check_output(['xdotool','getwindowfocus','getwindowpid'],text=True).strip()==pid
|
||||
subprocess.run(['xdotool','key','F8'],check=True)
|
||||
for i in range(24):
|
||||
px,py=((300,850) if i%2==0 else (1800,950))
|
||||
subprocess.run(['xdotool','mousemove','--sync',str(px),str(py),'click','1'],check=True)
|
||||
time.sleep(.06)
|
||||
d=x.XOpenDisplay(b':0');assert d;root=x.XDefaultRootWindow(d)
|
||||
def pixel():
|
||||
im=x.XGetImage(d,root,2250,130,1,1,0xffffffff,2);assert im
|
||||
v=x.XGetPixel(im,0,0);x.XDestroyImage(im);return v&0xffffff
|
||||
samples=[];errors=[]
|
||||
for i in range(24):
|
||||
v=pixel();assert v<0x202020 or v>0xe0e0e0,hex(v)
|
||||
assert subprocess.check_output(['xdotool','getwindowfocus','getwindowpid'],text=True).strip()==pid
|
||||
start=time.monotonic_ns()
|
||||
subprocess.run(['xdotool','key','--clearmodifiers','--delay','0','F9'],check=True,stdout=subprocess.DEVNULL)
|
||||
while time.monotonic_ns()-start<2000000000:
|
||||
cur=pixel()
|
||||
if (v<0x202020 and cur>0xe0e0e0) or (v>0xe0e0e0 and cur<0x202020):
|
||||
samples.append((time.monotonic_ns()-start)/1e6);break
|
||||
time.sleep(.002)
|
||||
else:errors.append(i)
|
||||
time.sleep(.12)
|
||||
x.XCloseDisplay(d);vals=sorted(samples)
|
||||
print(json.dumps({'method':'synthetic F9 injection to decoded marker; includes xdotool startup/polling; excludes physical USB and panel scanout','samples_ms':samples,'timeouts':errors,'p50_ms':statistics.median(vals) if vals else None,'p95_ms':vals[min(len(vals)-1,int(len(vals)*.95))] if vals else None}))
|
||||
@@ -0,0 +1,50 @@
|
||||
[
|
||||
{
|
||||
"label": "2k30-limited-noanim",
|
||||
"p50_ms": 320.868045,
|
||||
"p95_ms": 418.432631,
|
||||
"timeouts": [],
|
||||
"cpu_percent": 155.98001763150694,
|
||||
"render_fps": 21.4,
|
||||
"decode_ms": 6.84,
|
||||
"queue_ms": 0.26,
|
||||
"render_ms": 2.01,
|
||||
"net_ms": 3.0
|
||||
},
|
||||
{
|
||||
"label": "2k45-full-normal",
|
||||
"p50_ms": 373.221109,
|
||||
"p95_ms": 455.880288,
|
||||
"timeouts": [],
|
||||
"cpu_percent": 163.05970149255367,
|
||||
"render_fps": 21.49,
|
||||
"decode_ms": 10.48,
|
||||
"queue_ms": 0.53,
|
||||
"render_ms": 1.92,
|
||||
"net_ms": 10.0
|
||||
},
|
||||
{
|
||||
"label": "2k45-limited-normal",
|
||||
"p50_ms": 376.7192645,
|
||||
"p95_ms": 488.630023,
|
||||
"timeouts": [],
|
||||
"cpu_percent": 161.50870406188517,
|
||||
"render_fps": 22.83,
|
||||
"decode_ms": 6.82,
|
||||
"queue_ms": 0.19,
|
||||
"render_ms": 1.89,
|
||||
"net_ms": 2.0
|
||||
},
|
||||
{
|
||||
"label": "2k45-limited-thread1-noanim",
|
||||
"p50_ms": 402.923019,
|
||||
"p95_ms": 507.893521,
|
||||
"timeouts": [],
|
||||
"cpu_percent": 126.86199342829488,
|
||||
"render_fps": 17.98,
|
||||
"decode_ms": 8.24,
|
||||
"queue_ms": 0.14,
|
||||
"render_ms": 2.11,
|
||||
"net_ms": 9.0
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"other_desktop_cards_unchanged": true,
|
||||
"ubuntu_before": {
|
||||
"app": "Desktop",
|
||||
"endpoint": "192.168.1.72",
|
||||
"fps": 30,
|
||||
"height": 1080,
|
||||
"id": "desk-ubuntu-01",
|
||||
"name": "Ubuntu",
|
||||
"os": "Ubuntu 桌面",
|
||||
"width": 1920
|
||||
},
|
||||
"ubuntu_after": {
|
||||
"app": "Desktop",
|
||||
"endpoint": "192.168.1.72",
|
||||
"fps": 30,
|
||||
"height": 1440,
|
||||
"id": "desk-ubuntu-01",
|
||||
"name": "Ubuntu",
|
||||
"os": "Ubuntu 桌面",
|
||||
"width": 2560
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 2.0 MiB |
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"warmup_clicks": 1,
|
||||
"measured_clicks": 24,
|
||||
"received_clicks": 24,
|
||||
"alternating_coordinates_correct": true,
|
||||
"max_error_px": 0.97900390625,
|
||||
"F8_received": true,
|
||||
"physical_latency_measured": false
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
<monitors version="2">
|
||||
<configuration>
|
||||
<layoutmode>physical</layoutmode>
|
||||
<logicalmonitor>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<scale>1</scale>
|
||||
<primary>yes</primary>
|
||||
<monitor>
|
||||
<monitorspec>
|
||||
<connector>Virtual-1</connector>
|
||||
<vendor>RHT</vendor>
|
||||
<product>QEMU Monitor</product>
|
||||
<serial>0x00000000</serial>
|
||||
</monitorspec>
|
||||
<mode>
|
||||
<width>2560</width>
|
||||
<height>1440</height>
|
||||
<rate>59.950550079345703</rate>
|
||||
</mode>
|
||||
</monitor>
|
||||
</logicalmonitor>
|
||||
</configuration>
|
||||
</monitors>
|
||||
@@ -0,0 +1,11 @@
|
||||
[
|
||||
{
|
||||
"pid": 240476,
|
||||
"ppid": 235482,
|
||||
"parent": "kiosk-shell",
|
||||
"args": "/home/armbian/vdi-build/rkmpp-experiment/build/moonlight/app/moonlight stream 192.168.1.72 Desktop --resolution 2560x1440 --fps 30 --bitrate 30000 --display-mode fullscreen --video-codec H.264 --video-decoder hardware --absolute-mouse --capture-system-keys always --keep-awake --no-vsync --no-frame-pacing --audio-on-host",
|
||||
"range": [
|
||||
"0"
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,10 @@
|
||||
sunshine_name = VDI-Ubuntu
|
||||
capture = x11
|
||||
encoder = software
|
||||
sw_preset = ultrafast
|
||||
sw_tune = zerolatency
|
||||
upnp = disabled
|
||||
origin_web_ui_allowed = pc
|
||||
hevc_mode = 1
|
||||
audio_sink = vdi_audio
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# /home/test2/.config/systemd/user/vdi-sunshine.service
|
||||
[Unit]
|
||||
Description=VDI Linux desktop Sunshine host
|
||||
PartOf=graphical-session.target
|
||||
After=graphical-session.target
|
||||
|
||||
[Service]
|
||||
ExecStartPre=-/usr/bin/xrandr --newmode 2560x1440_60.00 241.50 2560 2608 2640 2720 1440 1443 1448 1481 +hsync -vsync
|
||||
ExecStartPre=-/usr/bin/xrandr --addmode Virtual-1 2560x1440_60.00
|
||||
ExecStartPre=/usr/bin/xrandr --output Virtual-1 --mode 2560x1440_60.00
|
||||
ExecStartPre=/bin/sh -c 'pactl list short sinks | grep -qw vdi_audio || pactl load-module module-null-sink sink_name=vdi_audio sink_properties=device.description=VDI-Audio'
|
||||
ExecStartPre=/usr/bin/pactl set-default-sink vdi_audio
|
||||
ExecStart=/usr/bin/sunshine /home/test2/.config/sunshine/sunshine.conf
|
||||
Restart=on-failure
|
||||
RestartSec=5
|
||||
|
||||
[Install]
|
||||
WantedBy=graphical-session.target
|
||||
@@ -0,0 +1,33 @@
|
||||
Screen 0: minimum 320 x 200, current 2560 x 1440, maximum 8192 x 8192
|
||||
Virtual-1 connected primary 2560x1440+0+0 (normal left inverted right x axis y axis) 325mm x 203mm
|
||||
1280x800 74.99 +
|
||||
1920x1440 60.00
|
||||
2560x1080 50.00
|
||||
1856x1392 60.00
|
||||
1792x1344 60.00
|
||||
2048x1152 60.00
|
||||
1920x1200 59.88
|
||||
1920x1080 60.00 50.00
|
||||
1600x1200 60.00
|
||||
1680x1050 59.95
|
||||
1400x1050 59.98
|
||||
1280x1024 60.02
|
||||
1440x900 59.89
|
||||
1280x960 60.00
|
||||
1360x768 60.02
|
||||
1280x768 59.87
|
||||
1024x768 60.00
|
||||
800x600 60.32
|
||||
640x480 60.00 59.94
|
||||
2560x1440_60.00 59.95*
|
||||
Type=x11
|
||||
LockedHint=no
|
||||
'DMZ-White'
|
||||
24
|
||||
false
|
||||
'flat'
|
||||
active
|
||||
inactive
|
||||
总计 0
|
||||
drwxr-xr-x 2 root root 60 11月 3 13:41 by-path
|
||||
crw-rw----+ 1 root video 226, 0 11月 3 13:41 card0
|
||||
@@ -0,0 +1,188 @@
|
||||
{
|
||||
"source-before": [
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
8,
|
||||
8,
|
||||
8
|
||||
],
|
||||
[
|
||||
16,
|
||||
16,
|
||||
16
|
||||
],
|
||||
[
|
||||
24,
|
||||
24,
|
||||
24
|
||||
],
|
||||
[
|
||||
32,
|
||||
32,
|
||||
32
|
||||
],
|
||||
[
|
||||
64,
|
||||
64,
|
||||
64
|
||||
],
|
||||
[
|
||||
128,
|
||||
128,
|
||||
128
|
||||
],
|
||||
[
|
||||
192,
|
||||
192,
|
||||
192
|
||||
],
|
||||
[
|
||||
223,
|
||||
223,
|
||||
223
|
||||
],
|
||||
[
|
||||
235,
|
||||
235,
|
||||
235
|
||||
],
|
||||
[
|
||||
247,
|
||||
247,
|
||||
247
|
||||
],
|
||||
[
|
||||
255,
|
||||
255,
|
||||
255
|
||||
]
|
||||
],
|
||||
"2k45-full-normal": [
|
||||
[
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
[
|
||||
8,
|
||||
7,
|
||||
8
|
||||
],
|
||||
[
|
||||
16,
|
||||
15,
|
||||
17
|
||||
],
|
||||
[
|
||||
24,
|
||||
23,
|
||||
24
|
||||
],
|
||||
[
|
||||
32,
|
||||
31,
|
||||
33
|
||||
],
|
||||
[
|
||||
64,
|
||||
63,
|
||||
64
|
||||
],
|
||||
[
|
||||
128,
|
||||
127,
|
||||
129
|
||||
],
|
||||
[
|
||||
192,
|
||||
191,
|
||||
192
|
||||
],
|
||||
[
|
||||
223,
|
||||
222,
|
||||
224
|
||||
],
|
||||
[
|
||||
235,
|
||||
234,
|
||||
235
|
||||
],
|
||||
[
|
||||
248,
|
||||
246,
|
||||
248
|
||||
],
|
||||
[
|
||||
255,
|
||||
254,
|
||||
255
|
||||
]
|
||||
],
|
||||
"2k45-limited-normal": [
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
8,
|
||||
8,
|
||||
8
|
||||
],
|
||||
[
|
||||
16,
|
||||
16,
|
||||
16
|
||||
],
|
||||
[
|
||||
24,
|
||||
24,
|
||||
24
|
||||
],
|
||||
[
|
||||
31,
|
||||
31,
|
||||
31
|
||||
],
|
||||
[
|
||||
64,
|
||||
64,
|
||||
64
|
||||
],
|
||||
[
|
||||
128,
|
||||
128,
|
||||
128
|
||||
],
|
||||
[
|
||||
192,
|
||||
192,
|
||||
192
|
||||
],
|
||||
[
|
||||
223,
|
||||
223,
|
||||
223
|
||||
],
|
||||
[
|
||||
235,
|
||||
235,
|
||||
235
|
||||
],
|
||||
[
|
||||
247,
|
||||
247,
|
||||
247
|
||||
],
|
||||
[
|
||||
254,
|
||||
254,
|
||||
254
|
||||
]
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 170 KiB |