Analyze GPU performance from Windows. Adreno, Mali, Xclipse and D3D12.
From one Windows workstation, Ycode reads hardware counters from Adreno, Mali and Xclipse GPUs on connected Android devices, records FPS and device power beside them, and profiles D3D12 frames on the host with real per-draw GPU timing. Metal, Vulkan and RenderDoc captures and AI analysis stay in the same workspace.
- Adreno, Mali and Xclipse hardware counters
- 1 kHz sampling with FPS and power
- Per-draw D3D12 GPU timing on Windows
A shorter path to your next iteration.
Connect and pick a target
Attach a supported Android device, open Instruments and select the app to profile. Xclipse counters need a debuggable build of that app.
Choose the counters
Ycode lists the counters the connected GPU actually publishes. Select them by stable ID; sampling runs at 1 kHz by default.
Record and read
Start the session and read counters, render stages, FPS and power on one timeline. On Windows, profile a D3D12 capture for per-draw GPU timing.
More views from the same workspace.
Real projects. Recorded workflows.
Different targets. A familiar workspace.
Debug iOS, Android and Windows apps simultaneously from one Windows workspace.
Platforms & devices
Game engines
Native code
Graphics & captures
LSP highlighting & completion
Write application code, scripts and shaders in one editor, with language-server-backed highlighting and completion for these additional languages.
- Rust
- C#
- Java
- Kotlin
- Python
- MetalSL
- Unreal Shader
- Unity ShaderLab
Language support describes editing features. Build, run and debugging support depend on the project's toolchain and target.
Windows is both the desktop host and a debugging target; iOS and Android are connected device targets. Ycode supports simultaneous debugging across all three. Setup and available features depend on the project, toolchain and target version. Download buttons list only published installers.
A few things to know.
Practical answers before you get started.
Can Ycode read Adreno, Mali and Xclipse GPU counters from Windows?
Yes. With an Android device connected to the Windows host, the Instruments panel enumerates the hardware counters the GPU publishes and records them at 1 kHz by default. Adreno is read through the KGSL kernel interface and Mali through kinstr_prfcnt / HWCPipe, neither needing root. Xclipse counters come from the Samsung Vulkan driver through Perfetto and need a debuggable target app, which Ycode restarts with its telemetry layer installed. Tested on an Adreno 830, a Mali-G720 MC12 and an Xclipse 940; each GPU publishes its own counter list. iOS devices report Metal GPU counters through the same panel.
Does Ycode capture D3D12 frames with PIX?
No. Ycode opens RenderDoc captures of D3D12 applications and profiles the replayed frame itself: per-draw GPU timing comes from the Direct3D12 and DxgKrnl ETW events on the host, the same data PIX timing captures decode, and NVIDIA counters come from the Nsight Perf SDK. PIX is not required. Profiling currently needs administrator rights, a RenderDoc build with the Ycode timeline extension and, for NVIDIA metrics, a supported driver; the SDK runtime is installed separately.
Do I still need Snapdragon Profiler or Arm Streamline?
No. The Ycode device agent reads the vendor interfaces directly: KGSL for Adreno, kinstr_prfcnt / HWCPipe for Mali and the Perfetto counter producer for Xclipse. For Mali you can choose a Streamline-style chart catalog so charts match the Arm stock templates, or the native Perfetto counter list. The same session also records SurfaceFlinger FPS, battery-side device power, energy per frame and thermal readings on the device clock shared with the counters.
Bring your tools into one workspace.
Create a Mix Studio account or sign in to download Ycode. Compare plans for feature access and device or build-node limits.
Join Discord

