Skip to content

Cordial 0.3.0 — keys work in an experience

Choose a tag to compare

@luohoa97 luohoa97 released this 05 Aug 09:07
· 481 commits to main since this release

Keys work in an experience, and this project's frame-rate metric is retracted.

  • Keys work in an experience. nativePassKeyEvent wants evdev codes, not
    Android keycodes — which is why every keystroke had been arriving as the wrong
    key, or as nothing.
  • Present mode MAILBOX instead of FIFO: a flat 60 where FIFO gave a variable
    35–50.
  • pthread_once and thread-specific data are implemented in the shim. The
    stub that returned success for pthread_once could not be survived — a stub
    that lies is worse than one that fails.
  • The extracted engine cache never invalidated, so a new APK ran the old
    engine. Warm start now invalidates when the build changes.
  • The build is stamped with git describe, so a binary says which tree it
    came from, including -dirty.

Retracted here, and it matters: vkQueuePresentKHR counts were this
project's fps metric and they measure the wrong thing. Presents run at about 60 a
second for thirteen seconds and then drop to exactly 1.0 a second, identically on
X11 and Wayland — an idle throttle, not a frame rate. Synthetic pointer motion
holds 50–60 for a whole 240-second run and toggling it flips the rate both ways.
Every count recorded before 2026-08-02 is that curve integrated, and several were
quoted as evidence.

Also corrected: pthread_cond_t is 48 bytes in bionic, not 32. A recorded
finding was wrong.