Answers, and the code changed accordingly (15b18a8 instead of the placement commit; still three commits).
Corrected — this PR is Modules only. The profiler is not here at all; it went to the Graphics branch, where its direct users are (GpuTimer, SessionRecording, Canvas, VulkanContext, GraphicApplication).
Agreed — "frame" is the giveaway: beginFrame/endFrame, FrameProfile with per-frame wall and CPU time, frame indices. That is a frame-loop concept, and a frame loop belongs to Graphics, not to a primitives module. Amended again, still two commits (no new ones).
Good catch — the GPU binding was a context leak. Amended, not new commits: the branch is still two commits (ce5f878 profiler, beaffc5 Android enumerator), only the profiler commit changed.