profile-tv

Diagnose live PlxNative processes on rooted LG TVs using stack sampling and Mali GPU profiling.

39|7|Updated Jul 3, 2026
One-click install
npx skills add https://github.com/GLinnik21/plx-native --skill profile-tv-glinnik21
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: profile-tv
Source: https://github.com/GLinnik21/plx-native/tree/main/.agents/skills/profile-tv
Command: npx skills add https://github.com/GLinnik21/plx-native --skill profile-tv-glinnik21

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? When a PlxNative app on a rooted LG webOS television becomes slow, janky, frozen, or consumes unexpected CPU/GPU, developers need a structured way to find the cause on the actual hardware rather than guessing from the simulator. ## Core Features & Use Cases - Live stack sampling: Capture one-shot or statistical stack samples of all threads with plxnative-sample, including a watchdog mode that snapshots heartbeat-stall episodes without killing the process. - Three-layer graphics profiling: Measure production present pacing, passive Mali IRQ rates, and phase-attributable Mali HWCNT counters through the FPS harness, with clear rules about which leg may be quoted as real FPS. - Dead-or-alive triage: Distinguish a crashed process (route to crash-triage) from a stalled or misrendering live one, resolving the correct install via make print-appdir and fuser. - Use Case: A developer notices frame drops in the library scene on their webOS 4.5 set. They take tv-lock, run the FPS harness with --graphics-profile on that scene, compare the baseline and active Mali IRQ legs, then use the framedrop and cpuprof triggers to localize render-thread wall time. ## Quick Start Ask the assistant to profile the running PlxNative app on the TV to find why the UI is stuttering, starting with a stack snapshot and a 30-second graphics profile.

Frequently Asked Questions about profile-tv

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I profile a frozen PlxNative app on an LG TV?

First confirm the process is alive with fuser on the app directory, never pidof. If the PID exists but the heartbeat stopped, use plxnative-sample snapshot or watch mode to capture all-thread stacks during the stall without killing the process.

How do I measure real FPS of a PlxNative scene on webOS?

Run the FPS harness with --graphics-profile on the target scene and quote FPS only from the unarmed production pacing leg. The Mali HWCNT leg serializes the pipeline with glFinish, so its FPS numbers are never valid.

What is the difference between crash-triage and profile-tv?

profile-tv handles live processes that are stalled, janky, or misrendering. If fuser finds no matching PID, the process has died and you should use the crash-triage skill instead.

Can I verify frame rate fixes in the PlxNative simulator?

No. The simulator cannot verify frame rate, Mali driver behavior, compositor behavior, or live Linux stacks. Run host selftests first, then verify the performance claim on the actual television.

Why does the Mali IRQ rate not show per-process GPU usage?

The passive Mali IRQ counter is global to the whole GPU, not attributable to one process. Compare the selected-install-closed baseline against the active leg, and use HWCNT counters for phase-level attribution instead.