From 508ef5cbbba662a2fbf8aed38cbb7d5cecbc6b83 Mon Sep 17 00:00:00 2001 From: Tamius Han Date: Sun, 27 Apr 2025 17:52:04 +0200 Subject: [PATCH] Fix calculation of averages in AardTimers --- src/ext/lib/aard/Aard.ts | 8 ++++---- src/ext/lib/aard/AardTimers.ts | 4 +++- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/ext/lib/aard/Aard.ts b/src/ext/lib/aard/Aard.ts index 4ecc5e9..22603e0 100644 --- a/src/ext/lib/aard/Aard.ts +++ b/src/ext/lib/aard/Aard.ts @@ -349,13 +349,13 @@ export class Aard { this.startCheck(); } - private createCanvas(canvasId: string, canvasType?: 'webgl' | 'fallback') { + private createCanvas(canvasId: string, canvasType?: 'webgl' | 'legacy') { if (canvasType) { if (canvasType === this.settings.active.arDetect.aardType || this.settings.active.arDetect.aardType === 'auto') { if (canvasType === 'webgl') { return new GlCanvas({...this.settings.active.arDetect.canvasDimensions.sampleCanvas, id: 'main-gl'}); - } else if (canvasType === 'fallback') { - return new FallbackCanvas({...this.settings.active.arDetect.canvasDimensions.sampleCanvas, id: 'main-fallback'}); + } else if (canvasType === 'legacy') { + return new FallbackCanvas({...this.settings.active.arDetect.canvasDimensions.sampleCanvas, id: 'main-legacy'}); } else { // TODO: throw error } @@ -556,7 +556,7 @@ export class Aard { } else { if (this.settings.active.arDetect.aardType === 'auto') { this.canvasStore.main.destroy(); - this.canvasStore.main = this.createCanvas('main-gl', 'fallback'); + this.canvasStore.main = this.createCanvas('main-gl', 'legacy'); } this.inFallback = true; this.fallbackReason = {cors: true}; diff --git a/src/ext/lib/aard/AardTimers.ts b/src/ext/lib/aard/AardTimers.ts index b52b5cd..9bf2338 100644 --- a/src/ext/lib/aard/AardTimers.ts +++ b/src/ext/lib/aard/AardTimers.ts @@ -23,7 +23,9 @@ export class AardTimer { constructor() { - this.aardPerformanceDataBuffer = new Array(16).fill(this.getEmptyMeasurement()); + // we need to deep clone, otherwise all buffer objects will point to the same object + // (this makes calculating averages impossible) + this.aardPerformanceDataBuffer = JSON.parse(JSON.stringify(new Array(64).fill(this.getEmptyMeasurement()))); this.current = this.aardPerformanceDataBuffer[0]; this.previous = undefined; this.lastChange = this.getEmptyMeasurement();