arkavo-org / arkavo-org/VRMMetalKit

Expose detailed performance metrics for profiling

Open
#46 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Swift
Stars
6
Forks
2
Avg merge
18h 51m
Merged PRs (30d)
26

Description

## Description

While `PerformanceTracker` exists, it would be helpful to expose more granular metrics for advanced optimization scenarios.

## Proposed Addition

```swift
public struct DetailedPerformanceMetrics {
// Existing metrics
var frameTimeAvgMs: Double
var frameTimeP95Ms: Double
var gpuTimeP95Ms: Double
var drawCalls: Int
var triangleCount: Int

// New metrics
var vertexCount: Int
var shaderSwitches: Int
var textureBinds: Int
var memoryUsageMB: Float
var culledMeshCount: Int
}

public func getDetailedPerformanceMetrics() -> DetailedPerformanceMetrics?
```

## Use Case

- Identifying bottlenecks in production apps
- Optimizing for older devices
- AR mode performance tuning

## Benefits

- Better debugging tools for developers
- Data-driven optimization decisions
- No performance impact when not accessed

## Priority

**LOW** - Nice to have for optimization

Contributor guide

Open the contributing guide

Research direction

Start by locating PerformanceTracker and determine where its existing frame, GPU, draw-call, and triangle metrics are collected. Compare those metrics with the proposed DetailedPerformanceMetrics fields and assess how vertex, shader, texture, memory, and culling data could be exposed. Done means the detailed API is available for profiling without impact when unused, including AR-mode use cases.

Written by the indexing model from the issue text.

Assessment

Tech stack
swift
Domain
computer-graphics, performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.