diff --git a/src/core/CoreTextureManager.ts b/src/core/CoreTextureManager.ts index 267f113e..96c323c3 100644 --- a/src/core/CoreTextureManager.ts +++ b/src/core/CoreTextureManager.ts @@ -505,7 +505,7 @@ export class CoreTextureManager extends EventEmitter { } public hasUpdates(): boolean { - return this.uploadTextureQueue.length > 0; + return this.uploadTextureQueue.length > 0 || this.priorityQueue.length > 0; } /** diff --git a/src/core/Stage.ts b/src/core/Stage.ts index 7df38473..ceb10deb 100644 --- a/src/core/Stage.ts +++ b/src/core/Stage.ts @@ -471,11 +471,13 @@ export class Stage { // Process some textures asynchronously but don't block the frame // Use a background task to prevent frame drops - this.txManager - .processSome(this.options.textureProcessingTimeLimit) - .catch((err) => { - console.error('Error processing textures:', err); - }); + if (this.txManager.hasUpdates() === true) { + this.txManager + .processSome(this.options.textureProcessingTimeLimit) + .catch((err) => { + console.error('Error processing textures:', err); + }); + } // Reset render operations and clear the canvas renderer.reset();