UNPKG

playcanvas

Version:

Open-source WebGL/WebGPU 3D engine for the web

123 lines (122 loc) 3.67 kB
/** * @import { ForwardRenderer } from '../scene/renderer/forward-renderer.js' * @import { GraphicsDevice } from '../platform/graphics/graphics-device.js' */ /** * Records performance-related statistics related to the application. */ export class ApplicationStats { /** * Create a new ApplicationStats instance. * * @param {GraphicsDevice} device - The graphics device. */ constructor(device: GraphicsDevice); frame: { fps: number; ms: number; dt: number; updateStart: number; updateTime: number; renderStart: number; renderTime: number; physicsStart: number; physicsTime: number; scriptUpdateStart: number; scriptUpdate: number; scriptPostUpdateStart: number; scriptPostUpdate: number; animUpdateStart: number; animUpdate: number; cullTime: number; sortTime: number; skinTime: number; morphTime: number; instancingTime: number; triangles: number; gsplats: number; gsplatSort: number; gsplatBufferCopy: number; otherPrimitives: number; shaders: number; materials: number; cameras: number; shadowMapUpdates: number; shadowMapTime: number; depthMapTime: number; forwardTime: number; lightClustersTime: number; lightClusters: number; _timeToCountFrames: number; _fpsAccum: number; }; drawCalls: { forward: number; depth: number; shadow: number; immediate: number; misc: number; total: number; skinned: number; instanced: number; removedByInstancing: number; }; misc: { renderTargetCreationTime: number; }; particles: { updatesPerFrame: number; _updatesPerFrame: number; frameTime: number; _frameTime: number; }; shaders: { vsCompiled: number; fsCompiled: number; linked: number; materialShaders: number; compileTime: number; }; vram: { texShadow: number; texAsset: number; texLightmap: number; tex: number; vb: number; ib: number; ub: number; sb: number; }; gpu: Map<any, any>; get scene(): any; get lightmapper(): any; get batcher(): any; /** * Update basic per-frame stats. Called every frame from `AppBase.tick`. * * @param {number} now - High-resolution timestamp for the current frame (ms). * @param {number} dt - Delta time in seconds (time-scaled, clamped). * @param {number} ms - Raw inter-frame time in ms. * @param {ForwardRenderer} renderer - The forward renderer. * @param {GraphicsDevice} device - The graphics device. * @ignore */ updateBasic(now: number, dt: number, ms: number, renderer: ForwardRenderer, device: GraphicsDevice): void; /** * Update detailed per-frame stats (profiler build only). Resets per-frame * counters on the renderer and graphics device. * * @param {ForwardRenderer} renderer - The forward renderer. * @param {GraphicsDevice} device - The graphics device. * @ignore */ updateDetailed(renderer: ForwardRenderer, device: GraphicsDevice): void; /** * Called at the end of each frame to reset per-frame statistics. * * @ignore */ frameEnd(): void; } import type { ForwardRenderer } from '../scene/renderer/forward-renderer.js'; import type { GraphicsDevice } from '../platform/graphics/graphics-device.js';