| name | shadalyze-csv-performance-review |
| description | Analyze Shadalyze exported shader-performance CSV reports from Frame Debugger or Android build analysis. Use when ranking shader variants by DrawCall count and Malioc cycle estimates, interpreting Position and Fragment paths, or preparing evidence-based shader optimization recommendations. |
Shadalyze CSV Performance Review
Read the selected CSV and produce a prioritised static shader-performance review. Treat Malioc results as estimates, never as measured device frame time.
Procedure
- Locate the
Shader and Call Count header row; read preceding API, stage, device, architecture, revision, and driver metadata when present.
- Preserve each row's
Shader, Pass, SubShader Index, Shader Pass Index, and Keywords as its identity. Do not merge rows merely because their shader names match.
- Analyze Position and Fragment columns separately. Use
Total path cycle values as the normal basis for comparing static shader cost. Use Longest and its Bound Pipelines only when present to identify a modeled bottleneck; variable loop counts, such as lights or reflection probes, can make Longest unavailable. Use Shortest only to describe path range. A - means unavailable, not zero.
- Rank candidates using high
Call Count together with the relevant Total path or Bound Cycles Total values. State the exact fields used; do not invent a universal score when a required cycle value is absent.
- Mark repeated variants with high call count as draw-call/material batching candidates. Mark high-cost variants as shader candidates only when the relevant stage and bottleneck pipeline support that conclusion.
- Interpret
ALU, L/S, Texture, and Varying only as the reported critical-path resource classes. Do not call a shader texture-bound unless the corresponding path lists Texture in Bound Pipelines.
- Keep static findings separate from runtime proof. Require device profiling, GPU counters, or RenderDoc before claiming a frame-time or frame-rate improvement.
Output
Produce these sections:
- Report scope and metadata.
- Top optimization candidates, each with CSV row identity,
Call Count, relevant stage/path metrics, and priority rationale.
- Repeated draw-call findings.
- Static-analysis limitations and missing evidence.
- Ordered recommendations, implementation risk, and a concrete runtime validation for each.