pumpitupdev / pumptools

A collection of tools to run Pump It Up games.
The Unlicense
22 stars 7 forks source link

Pro/Pro2 cpu overhead when using IO emulation #24

Open voidderef opened 3 years ago

voidderef commented 3 years ago

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

  1. Install pumpos on mk9 or similar hardware
  2. Run PIU pro using the setting, 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

voidderef commented 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;
}
voidderef commented 3 years ago

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)

voidderef commented 3 years ago

In GitLab by @icex2 on Oct 7, 2020, 21:44

Further tests on same hardware as described in the OP:

voidderef commented 3 years ago

In 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.

voidderef commented 3 years ago

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).

voidderef commented 3 years ago

In GitLab by @Cube on Feb 16, 2021, 24:09

pumptools.log.zip

Sorry this took so long, here is the log from pro.

voidderef commented 3 years ago

In GitLab by @Cube on Feb 16, 2021, 24:12

01_1st pumptools.log.zip

voidderef commented 3 years ago

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.

voidderef commented 3 years ago

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.

voidderef commented 3 years ago

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.

voidderef commented 3 years ago

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
voidderef commented 3 years ago

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
voidderef commented 3 years ago

In GitLab by @icex2 on Apr 12, 2021, 21:01

Though, gameplay is still super laggy.

voidderef commented 3 years ago

In GitLab by @icex2 on Apr 12, 2021, 21:14

Note: MK9 with real piuio and piubtn keyboard emulation is also having performance issues.

voidderef commented 3 years ago

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
super-triangle commented 2 years ago

+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.

voidderef commented 2 years ago

+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.

super-triangle commented 2 years ago

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.