Open voidderef opened 3 years ago
In GitLab by @icex2 on Oct 7, 2020, 20:55
Just a rough guess, but it might be that the game is polling IO not just every frame but, due to pumptool's piuio API layer, 4 times each frame. See the implementation of ptapi-io-piu-real.so in this line.
A quick hack to confirm that would be to just poll once, i.e. for a single sensor only, remember the current sensor cycle state and proceed with polling the next sensor on the next poll. Naturally, this reduces IO acuracy significantly but should re-create more accurate polling behavior regarding the CPU load.
Can you replace this entire function with the following, recompile, test and report back?
bool ptapi_io_piuio_recv(void)
{
static uint8_t i = 0;
/* cycle all four sensor groups */
//for (uint8_t i = 0; i < PTAPI_IO_PIUIO_SENSOR_GROUP_NUM; i++) {
piuio_drv_piuio_copy_outputs(i);
if (!piuio_drv_device_write(piuio_drv_piuio_out_buffer,
sizeof(piuio_drv_piuio_out_buffer))) {
return false;
}
if (!piuio_drv_device_read(piuio_drv_piuio_in_buffer,
sizeof(piuio_drv_piuio_in_buffer))) {
return false;
}
/* Invert pull ups */
for (uint8_t j = 0; j < 4; j++) {
piuio_drv_piuio_in_buffer[j] ^= 0xFF;
}
piuio_drv_piuio_copy_inputs(i);
//}
i++;
if (i >= PTAPI_IO_PIUIO_SENSOR_GROUP_NUM) {
i = 0;
}
return true;
}
In GitLab by @icex2 on Oct 7, 2020, 21:13
Documenting what has been tested:
Therefore, the root cause for the issue is likely part of the piuio hook emulation layer. Again, just a guess, might be related to the puser space implementation of the piuio kernel hack](https://dev.s-ul.eu/hackitup/pumptools/-/blob/master/src/main/hook/patch/piuio.c#L424)
In GitLab by @icex2 on Oct 7, 2020, 21:44
Further tests on same hardware as described in the OP:
patch.piuio.emu_lib=./ptapi-io-piuio-real.so
(though not required with mk6 piuio): apparently, that's fineIn GitLab by @icex2 on Oct 7, 2020, 21:51
Some preliminary conclusions: Even with NX2 being fine using the piuio emulation layer of pumptools, MK3 and pro/pro2 have severe issues that point at the piuio emulation layer causing performance issues on rather low spec, e.g. stock pump hardware mk6/mk9, hardware.
This seems to be related to https://dev.s-ul.eu/hackitup/pumptools/-/issues/14 which also points out using MK9 hardware. However, it reports that using the piuio keyboard API implementation makes the issue go away. This might be related to polling for all sensor inputs in a single piuio API call.
In GitLab by @icex2 on Oct 13, 2020, 22:49
Here is a prohook.so and mk3hook.so which has a bunch of debug output regarding IO processing time.
Please run the games using these hooks on the target hardware you have experienced issues on, play a song, verify you are still having any kind of game lagging issues, quit the game at the end of the song and upload the log files of each session (any mk3 based game and pro1).
In GitLab by @Cube on Feb 16, 2021, 24:09
Sorry this took so long, here is the log from pro.
In GitLab by @Cube on Feb 16, 2021, 24:12
01_1st pumptools.log.zip
In GitLab by @icex2 on Feb 16, 2021, 18:14
Thanks for the logs. Can you also test pro with the same prohook.so
but a keyboard piuio library? Again, please run it and provide the log afterwards.
In GitLab by @icex2 on Apr 12, 2021, 16:18
Some analysis notes: So it seems like I can somewhat reproduce the issue though it is apparently highly hardware/CPU bound. Therefore, if your hardware is beefy, you won't notice it. I ran two tests and did a very crude CPU load capture using top -p $(pgrep piu) -d 1 -b | grep "piu"
. Used the most recent release 1.11.
CPU: Intel(R) Core(TM) i3-2100 CPU @ 3.10GHz
Measurements are from startup (see second to last column for uptime of process) to end of how to play screen (when first demo song starts playing)
Game with real piuio and real piubtn, no hook libraries configured (baseline):
1351 root 20 0 187476 91504 30636 S 20.0 4.6 0:04.16 piu
1351 root 20 0 187348 93424 32556 S 23.0 4.7 0:04.39 piu
1351 root 20 0 187348 93424 32556 S 20.8 4.7 0:04.60 piu
1351 root 20 0 187348 93424 32556 R 22.0 4.7 0:04.82 piu
1351 root 20 0 187348 93424 32556 S 21.0 4.7 0:05.03 piu
1351 root 20 0 187348 93424 32556 S 20.0 4.7 0:05.23 piu
1351 root 20 0 187348 93424 32556 S 22.0 4.7 0:05.45 piu
1351 root 20 0 187348 93424 32556 S 21.0 4.7 0:05.66 piu
1351 root 20 0 187348 93424 32556 S 21.0 4.7 0:05.87 piu
1351 root 20 0 203572 102388 33928 S 31.0 5.1 0:06.18 piu
1351 root 20 0 203572 102388 33928 S 40.0 5.1 0:06.58 piu
1351 root 20 0 203572 102388 33928 S 39.6 5.1 0:06.98 piu
1351 root 20 0 203572 102388 33928 S 40.0 5.1 0:07.38 piu
1351 root 20 0 203572 102388 33928 S 39.0 5.1 0:07.77 piu
1351 root 20 0 203572 102388 33928 S 39.0 5.1 0:08.16 piu
1351 root 20 0 203572 102388 33928 S 39.0 5.1 0:08.55 piu
1351 root 20 0 236736 143160 38024 S 93.0 7.2 0:09.48 piu
1351 root 20 0 246984 143952 38024 S 36.0 7.2 0:09.84 piu
1351 root 20 0 246984 143952 38024 S 31.0 7.2 0:10.15 piu
1351 root 20 0 246984 143952 38024 S 30.0 7.2 0:10.45 piu
1351 root 20 0 246984 143952 38024 S 31.0 7.2 0:10.76 piu
1351 root 20 0 246984 143952 38024 S 30.0 7.2 0:11.06 piu
1351 root 20 0 246984 143952 38024 S 29.7 7.2 0:11.36 piu
1351 root 20 0 246984 143952 38024 S 29.0 7.2 0:11.65 piu
1351 root 20 0 246984 143952 38024 S 31.0 7.2 0:11.96 piu
1351 root 20 0 246984 143952 38024 S 30.0 7.2 0:12.26 piu
1351 root 20 0 246984 143952 38024 S 30.0 7.2 0:12.56 piu
1351 root 20 0 246984 143952 38024 R 30.0 7.2 0:12.86 piu
1351 root 20 0 246984 143952 38024 S 29.0 7.2 0:13.15 piu
1351 root 20 0 246984 143952 38024 S 30.0 7.2 0:13.45 piu
1351 root 20 0 246984 143952 38024 S 29.7 7.2 0:13.75 piu
1351 root 20 0 246984 143952 38024 S 30.0 7.2 0:14.05 piu
1351 root 20 0 246984 143952 38024 S 30.0 7.2 0:14.35 piu
1351 root 20 0 246984 143952 38024 S 30.0 7.2 0:14.65 piu
1351 root 20 0 246984 143952 38024 S 29.0 7.2 0:14.94 piu
1351 root 20 0 246984 143952 38024 S 31.0 7.2 0:15.25 piu
1351 root 20 0 246984 143952 38024 S 30.0 7.2 0:15.55 piu
1351 root 20 0 246984 143952 38024 S 29.0 7.2 0:15.84 piu
1351 root 20 0 246984 143952 38024 S 30.7 7.2 0:16.15 piu
1351 root 20 0 246984 143952 38024 S 28.0 7.2 0:16.43 piu
1351 root 20 0 246984 143952 38024 S 31.0 7.2 0:16.74 piu
1351 root 20 0 246984 143952 38024 R 29.0 7.2 0:17.03 piu
1351 root 20 0 246984 143952 38024 S 31.0 7.2 0:17.34 piu
1351 root 20 0 246984 143952 38024 S 30.0 7.2 0:17.64 piu
With:
patch.piuio.emu_lib=./ptapi-io-piuio-keyboard.so
patch_x11_event_loop.input_handler_lib=./ptapi-io-piuio-keyboard.so
1470 root 20 0 87008 46972 16216 R 100.0 2.4 0:00.46 piu
1470 root 20 0 90684 50668 16216 R 102.0 2.5 0:01.48 piu
1470 root 20 0 94056 54100 16216 R 100.0 2.7 0:02.48 piu
1470 root 20 0 98380 58060 16216 R 101.0 2.9 0:03.49 piu
1470 root 20 0 186448 82368 21464 S 70.0 4.1 0:04.19 piu
1470 root 20 0 187344 93552 32632 S 63.0 4.7 0:04.82 piu
1470 root 20 0 187344 93552 32632 S 61.0 4.7 0:05.43 piu
1470 root 20 0 187344 93552 32632 S 61.0 4.7 0:06.04 piu
1470 root 20 0 187344 93552 32632 S 63.0 4.7 0:06.67 piu
1470 root 20 0 187344 93552 32632 S 60.0 4.7 0:07.27 piu
1470 root 20 0 187344 93552 32632 S 61.4 4.7 0:07.89 piu
1470 root 20 0 187344 93552 32632 S 61.0 4.7 0:08.50 piu
1470 root 20 0 187344 93552 32632 S 63.0 4.7 0:09.13 piu
1470 root 20 0 187344 93552 32632 S 61.0 4.7 0:09.74 piu
1470 root 20 0 203568 102520 34012 S 83.0 5.2 0:10.57 piu
1470 root 20 0 203568 102520 34012 S 84.0 5.2 0:11.41 piu
1470 root 20 0 203568 102520 34012 S 82.0 5.2 0:12.23 piu
1470 root 20 0 203568 102520 34012 S 81.0 5.2 0:13.04 piu
1470 root 20 0 203568 102520 34012 S 84.0 5.2 0:13.88 piu
1470 root 20 0 203568 102520 34012 S 82.0 5.2 0:14.70 piu
1470 root 20 0 214180 119224 38124 R 100.0 6.0 0:15.70 piu
1470 root 20 0 246984 143576 38124 R 106.0 7.2 0:16.76 piu
1470 root 20 0 246984 144104 38124 S 71.3 7.2 0:17.48 piu
1470 root 20 0 246984 144104 38124 S 71.0 7.2 0:18.19 piu
1470 root 20 0 246984 144104 38124 S 70.0 7.2 0:18.89 piu
1470 root 20 0 246984 144104 38124 S 72.0 7.2 0:19.61 piu
1470 root 20 0 246984 144104 38124 S 70.0 7.2 0:20.31 piu
1470 root 20 0 246984 144104 38124 S 71.0 7.2 0:21.02 piu
1470 root 20 0 246984 144104 38124 S 70.0 7.2 0:21.72 piu
1470 root 20 0 246984 144104 38124 S 71.0 7.2 0:22.43 piu
1470 root 20 0 246984 144104 38124 S 71.0 7.2 0:23.14 piu
1470 root 20 0 246984 144104 38124 S 70.0 7.2 0:23.84 piu
1470 root 20 0 246984 144104 38124 S 70.3 7.2 0:24.55 piu
1470 root 20 0 246984 144104 38124 S 72.0 7.2 0:25.27 piu
1470 root 20 0 246984 144104 38124 S 71.0 7.2 0:25.98 piu
1470 root 20 0 246984 144104 38124 R 71.0 7.2 0:26.69 piu
1470 root 20 0 246984 144104 38124 S 71.0 7.2 0:27.40 piu
1470 root 20 0 246984 144104 38124 S 70.0 7.2 0:28.10 piu
1470 root 20 0 246984 144104 38124 S 71.0 7.2 0:28.81 piu
1470 root 20 0 246984 144104 38124 S 70.0 7.2 0:29.51 piu
1470 root 20 0 246984 144104 38124 S 71.0 7.2 0:30.22 piu
1470 root 20 0 246984 144104 38124 S 70.3 7.2 0:30.93 piu
1470 root 20 0 246984 144104 38124 S 71.0 7.2 0:31.64 piu
1470 root 20 0 246984 144104 38124 S 71.0 7.2 0:32.35 piu
1470 root 20 0 246984 144104 38124 S 72.0 7.2 0:33.07 piu
1470 root 20 0 246984 144104 38124 S 71.0 7.2 0:33.78 piu
1470 root 20 0 246984 144104 38124 S 71.0 7.2 0:34.49 piu
1470 root 20 0 246984 144104 38124 S 71.0 7.2 0:35.20 piu
1470 root 20 0 250412 146956 38184 R 84.0 7.4 0:36.04 piu
Just picking a samples:
1351 root 20 0 187348 93424 32556 R 22.0 4.7 0:04.82 piu
vs.
1470 root 20 0 187344 93552 32632 S 63.0 4.7 0:04.82 piu
1351 root 20 0 246984 143952 38024 S 29.7 7.2 0:13.75 piu
vs.
1470 root 20 0 203568 102520 34012 S 84.0 5.2 0:13.88 piu
Apparently, the hardware has to deal with an approx. 65% higher load when using the keyboard hooks compared to using no hooks on real hardware.
My CPU seems to be fine dealing with it, but it might not be too far away from running into actual FPS issues. However, no wonder that weaker hardware such as stock MK9 boards are struggling.
In GitLab by @icex2 on Apr 12, 2021, 16:24
Using patch.piuio.emu_lib=./ptapi-io-piuio-null.so
:
1623 root 20 0 87664 47652 16128 R 93.3 2.4 0:00.65 piu
1623 root 20 0 91276 51084 16128 R 102.0 2.6 0:01.67 piu
1623 root 20 0 94648 54516 16128 R 100.0 2.7 0:02.67 piu
1623 root 20 0 125916 60072 16148 R 102.0 3.0 0:03.70 piu
1623 root 20 0 187380 91420 30604 S 61.0 4.6 0:04.31 piu
1623 root 20 0 187252 93340 32524 S 62.0 4.7 0:04.93 piu
1623 root 20 0 187252 93340 32524 S 62.0 4.7 0:05.55 piu
1623 root 20 0 187252 93340 32524 S 60.0 4.7 0:06.15 piu
1623 root 20 0 187252 93340 32524 R 61.0 4.7 0:06.76 piu
1623 root 20 0 187252 93340 32524 S 63.0 4.7 0:07.39 piu
1623 root 20 0 187252 93340 32524 S 61.0 4.7 0:08.00 piu
1623 root 20 0 187252 93340 32524 S 61.0 4.7 0:08.61 piu
1623 root 20 0 187252 93340 32524 S 61.4 4.7 0:09.23 piu
1623 root 20 0 187252 93340 32524 S 60.0 4.7 0:09.83 piu
1623 root 20 0 203512 102304 33892 S 88.0 5.1 0:10.71 piu
1623 root 20 0 203512 102304 33892 S 82.0 5.1 0:11.53 piu
1623 root 20 0 203512 102304 33892 S 80.0 5.1 0:12.33 piu
1623 root 20 0 203512 102304 33892 S 81.0 5.1 0:13.14 piu
1623 root 20 0 203512 102304 33892 S 80.0 5.1 0:13.94 piu
1623 root 20 0 203512 102304 33892 S 82.0 5.1 0:14.76 piu
1623 root 20 0 228456 132052 37988 R 109.9 6.6 0:15.87 piu
1623 root 20 0 246908 143600 37988 S 89.0 7.2 0:16.76 piu
1623 root 20 0 246908 143864 37988 S 72.0 7.2 0:17.48 piu
1623 root 20 0 246908 143864 37988 S 72.0 7.2 0:18.20 piu
1623 root 20 0 246908 143864 37988 S 71.0 7.2 0:18.91 piu
1623 root 20 0 246908 143864 37988 S 69.0 7.2 0:19.60 piu
Sampes for camparison to previous samples:
1623 root 20 0 187380 91420 30604 S 61.0 4.6 0:04.31 piu
1623 root 20 0 203512 102304 33892 S 80.0 5.1 0:13.94 piu
Pretty much identical to using the keyboard hook. That potentially points to issues in the usb emulation layer(s) as the high load seems to be independent of piuio api implementation used.
In GitLab by @icex2 on Apr 12, 2021, 20:48
Pro runs dedicated IO threads for piuio and piubtn. Both threads are relying on the hardware actually slowing them down (because calling the hardware = load). However, the emulation layer is rather thing and doesn't add any load depending on which API implementation you use. This resulted in threshing by the IO thread due to excessive polling. Adding a sleep of 1 ms on libusb ctrl calls yields the following load:
4202 root 20 0 87508 47448 16184 R 100.0 2.4 0:00.59 piu
4202 root 20 0 91144 50880 16184 R 101.0 2.6 0:01.60 piu
4202 root 20 0 94484 54576 16184 R 102.0 2.7 0:02.62 piu
4202 root 20 0 109220 59852 16184 R 101.0 3.0 0:03.64 piu
4202 root 20 0 186368 91480 30632 S 46.0 4.6 0:04.10 piu
4202 root 20 0 186240 93400 32552 S 16.0 4.7 0:04.26 piu
4202 root 20 0 186240 93400 32552 S 15.0 4.7 0:04.41 piu
4202 root 20 0 186240 93400 32552 S 15.0 4.7 0:04.56 piu
4202 root 20 0 186240 93400 32552 S 14.0 4.7 0:04.70 piu
4202 root 20 0 186240 93400 32552 S 14.0 4.7 0:04.84 piu
4202 root 20 0 186240 93400 32552 S 15.0 4.7 0:04.99 piu
4202 root 20 0 186240 93400 32552 S 16.0 4.7 0:05.15 piu
4202 root 20 0 187264 93404 32552 S 14.9 4.7 0:05.30 piu
4202 root 20 0 187264 93404 32552 S 16.0 4.7 0:05.46 piu
4202 root 20 0 203484 102364 33924 R 40.0 5.1 0:05.86 piu
4202 root 20 0 203484 102364 33924 S 32.0 5.1 0:06.18 piu
4202 root 20 0 203484 102364 33924 S 31.0 5.1 0:06.49 piu
4202 root 20 0 203484 102364 33924 S 31.0 5.1 0:06.80 piu
4202 root 20 0 203484 102364 33924 S 32.0 5.1 0:07.12 piu
4202 root 20 0 203484 102364 33924 S 33.0 5.1 0:07.45 piu
4202 root 20 0 224344 130800 38020 R 70.3 6.6 0:08.16 piu
4202 root 20 0 246896 143660 38020 S 47.0 7.2 0:08.63 piu
4202 root 20 0 246896 143924 38020 S 24.0 7.2 0:08.87 piu
4202 root 20 0 246896 143924 38020 R 23.0 7.2 0:09.10 piu
4202 root 20 0 246896 143924 38020 S 22.0 7.2 0:09.32 piu
4202 root 20 0 246896 143924 38020 S 23.0 7.2 0:09.55 piu
4202 root 20 0 246896 143924 38020 S 23.0 7.2 0:09.78 piu
4202 root 20 0 246896 143924 38020 S 21.8 7.2 0:10.00 piu
4202 root 20 0 246896 143924 38020 S 23.0 7.2 0:10.23 piu
4202 root 20 0 246896 144188 38020 S 24.0 7.3 0:10.47 piu
4202 root 20 0 246896 144188 38020 S 23.0 7.3 0:10.70 piu
4202 root 20 0 246896 144188 38020 S 22.0 7.3 0:10.92 piu
4202 root 20 0 246896 144188 38020 S 23.0 7.3 0:11.15 piu
4202 root 20 0 246896 144188 38020 R 23.0 7.3 0:11.38 piu
4202 root 20 0 246896 144188 38020 S 22.0 7.3 0:11.60 piu
4202 root 20 0 246896 144188 38020 S 23.8 7.3 0:11.84 piu
4202 root 20 0 246896 144188 38020 S 22.0 7.3 0:12.06 piu
4202 root 20 0 246896 144188 38020 S 24.0 7.3 0:12.30 piu
4202 root 20 0 246896 144188 38020 S 22.0 7.3 0:12.52 piu
4202 root 20 0 246896 144188 38020 S 23.0 7.3 0:12.75 piu
4202 root 20 0 246896 144188 38020 S 24.0 7.3 0:12.99 piu
4202 root 20 0 246896 144188 38020 S 23.0 7.3 0:13.22 piu
4202 root 20 0 246896 144188 38020 S 23.0 7.3 0:13.45 piu
4202 root 20 0 246896 144188 38020 S 22.0 7.3 0:13.67 piu
4202 root 20 0 246896 144188 38020 S 21.8 7.3 0:13.89 piu
4202 root 20 0 246896 144188 38020 S 22.0 7.3 0:14.11 piu
4202 root 20 0 246896 144188 38020 S 23.0 7.3 0:14.34 piu
4202 root 20 0 246896 144188 38020 R 21.0 7.3 0:14.55 piu
4202 root 20 0 255860 148948 39220 S 44.0 7.5 0:14.99 piu
4202 root 20 0 255860 149736 39220 S 41.0 7.5 0:15.40 piu
In GitLab by @icex2 on Apr 12, 2021, 20:56
Test with 1 ms sleeps in ctrl calls on MK9 hardware:
2278 root 20 0 93732 53524 16196 R 99.9 5.3 0:06.20 piu
2278 root 20 0 95156 55108 16196 R 99.0 5.5 0:07.19 piu
2278 root 20 0 96376 56164 16196 R 99.0 5.6 0:08.18 piu
2278 root 20 0 98732 58540 16196 R 99.9 5.8 0:09.18 piu
2278 root 20 0 145340 72020 20940 R 82.0 7.1 0:10.00 piu
2278 root 20 0 161732 72020 20940 S 10.0 7.1 0:10.10 piu
2278 root 20 0 161732 72020 20940 R 15.8 7.1 0:10.26 piu
2278 root 20 0 182972 93128 32256 S 56.0 9.2 0:10.82 piu
2278 root 20 0 182972 93128 32256 S 20.0 9.2 0:11.02 piu
2278 root 20 0 182972 93128 32256 S 20.0 9.2 0:11.22 piu
2278 root 20 0 182972 93128 32256 S 19.0 9.2 0:11.41 piu
2278 root 20 0 182972 93128 32256 S 20.0 9.2 0:11.61 piu
2278 root 20 0 182972 93128 32256 S 19.0 9.2 0:11.80 piu
2278 root 20 0 182972 93128 32256 S 21.0 9.2 0:12.01 piu
2278 root 20 0 182972 93128 32256 S 20.0 9.2 0:12.21 piu
2278 root 20 0 182972 93128 32256 S 20.8 9.2 0:12.42 piu
2278 root 20 0 193152 102668 33460 R 41.0 10.2 0:12.83 piu
2278 root 20 0 198464 106984 37556 R 94.0 10.6 0:13.77 piu
2278 root 20 0 198464 106984 37556 R 96.0 10.6 0:14.73 piu
2278 root 20 0 198464 106984 37556 R 82.0 10.6 0:15.55 piu
2278 root 20 0 197436 106984 37556 R 84.0 10.6 0:16.39 piu
2278 root 20 0 198464 106984 37556 R 82.0 10.6 0:17.21 piu
2278 root 20 0 198464 107508 37556 R 85.0 10.7 0:18.06 piu
2278 root 20 0 202160 112424 37556 R 91.1 11.2 0:18.98 piu
2278 root 20 0 223416 129948 37556 R 99.0 12.9 0:19.97 piu
2278 root 20 0 239952 141772 37556 R 82.0 14.1 0:20.79 piu
2278 root 20 0 239952 142300 37556 R 39.0 14.1 0:21.18 piu
2278 root 20 0 239952 142300 37556 R 39.0 14.1 0:21.57 piu
2278 root 20 0 239952 142300 37556 R 37.0 14.1 0:21.94 piu
2278 root 20 0 239952 142300 37556 R 39.0 14.1 0:22.33 piu
2278 root 20 0 239952 142300 37556 R 37.0 14.1 0:22.70 piu
2278 root 20 0 239952 142300 37556 S 36.6 14.1 0:23.07 piu
2278 root 20 0 239952 142300 37556 R 40.0 14.1 0:23.47 piu
2278 root 20 0 239952 142300 37556 R 38.0 14.1 0:23.85 piu
2278 root 20 0 239952 142560 37556 S 39.0 14.1 0:24.24 piu
2278 root 20 0 239952 142560 37556 S 39.0 14.1 0:24.63 piu
2278 root 20 0 239952 142560 37556 R 40.0 14.1 0:25.03 piu
2278 root 20 0 239952 142560 37556 S 42.0 14.1 0:25.45 piu
2278 root 20 0 239952 142560 37556 S 40.0 14.1 0:25.85 piu
2278 root 20 0 240084 142560 37556 S 40.0 14.1 0:26.25 piu
2278 root 20 0 240084 142560 37556 S 40.6 14.1 0:26.66 piu
2278 root 20 0 240084 142560 37556 S 40.0 14.1 0:27.06 piu
2278 root 20 0 240084 142560 37556 R 41.0 14.1 0:27.47 piu
2278 root 20 0 240084 142560 37556 R 44.0 14.1 0:27.91 piu
2278 root 20 0 240084 142560 37556 S 41.0 14.1 0:28.32 piu
2278 root 20 0 240084 142560 37556 S 41.0 14.1 0:28.73 piu
2278 root 20 0 240084 142560 37556 S 43.0 14.1 0:29.16 piu
In GitLab by @icex2 on Apr 12, 2021, 21:01
Though, gameplay is still super laggy.
In GitLab by @icex2 on Apr 12, 2021, 21:14
Note: MK9 with real piuio and piubtn keyboard emulation is also having performance issues.
In GitLab by @icex2 on Apr 12, 2021, 21:42
MK9 specs by Littletiger:
Motherboard: Asrock G41M-S3
Graphics: 9300GS(B)
Memory: Samsung 1gb 10600U-09-11-A1 M378B2873GB0-CH9
CPU: intel Celeron 430
+1 to perf issues. I’m using a MK9 with a G41MT-D3 board with an E8600 processor and I see stutter in both NXA and the MK3
ports using patch.piuio.emu_lib=./ptapi-io-piuio-real.so
.
+1 to perf issues. I’m using a MK9 with a G41MT-D3 board with an E8600 processor and I see stutter in both NXA and the MK3 ports using
patch.piuio.emu_lib=./ptapi-io-piuio-real.so
.
Can you be more specific regarding which version of pumptools you are using? A few different changes like this one were introduced a while ago but should have impact on CPU load.
Apologies, this was on 1.12, which I believe includes the change you’ve linked if I’m reading the commit history right.
I’ve also tried Exceed 2 and seen similar stutter. The mk3 ports actually seem to do it the least, compared to NXA and Exceed 2.
Edit: Looking at the hook.conf values that PumpOS set by default, I now see that Exceed 2 and NXA aren't even using IO emulation. Both are set to patch.piuio.emu_lib=
so sounds like the stutter is unrelated.
In GitLab by @Cube on Oct 7, 2020, 20:39
Summary
When using the piuio hooks with pro and pro2, there is a significant bump in cpu usage. On mk9 hardware this is noticed by lag introduced during gameplay.
Expected behavior
Ideally, gameplay should not be affected on and no stuttering should be observed.
Current behavior
During gameplay, there is significant stuttering and dropped frames
Steps to reproduce
patch.piuio.emu_lib=./ptapi-io-piuio-real.so
Further things tested
Tested by disabling
patch.piuio.emu_lib
which lead to smooth gameplay (no input working of course)Context (Environment)
Pumptools version(s) affected
Master Branch
Game(s) and version(s) affected
Pro, and Pro2
OS version
pumpos
Hardware specs