diff --git a/src/renderers/webgl-fallback/WebGLBackend.js b/src/renderers/webgl-fallback/WebGLBackend.js index 21721dab56243b..6f126376e9d328 100644 --- a/src/renderers/webgl-fallback/WebGLBackend.js +++ b/src/renderers/webgl-fallback/WebGLBackend.js @@ -519,6 +519,12 @@ class WebGLBackend extends Backend { renderContextData.occlusionQueryObjects = new Array( occlusionQueryCount ); renderContextData.occlusionQueryIndex = 0; + } else if ( renderContextData.lastOcclusionObject !== undefined ) { + + // invalidate if there is a stale query + + renderContextData.lastOcclusionObject = undefined; + } } diff --git a/src/renderers/webgpu/WebGPUBackend.js b/src/renderers/webgpu/WebGPUBackend.js index 88133d6e591884..c64c31e4315733 100644 --- a/src/renderers/webgpu/WebGPUBackend.js +++ b/src/renderers/webgpu/WebGPUBackend.js @@ -822,6 +822,15 @@ class WebGPUBackend extends Backend { renderContextData.lastOcclusionObject = null; + } else if ( renderContextData.lastOcclusionObject !== undefined ) { + + // invalidate if there is a stale query + + renderContextData.lastOcclusionObject = undefined; + + renderContextData.occlusionQuerySet.destroy(); + renderContextData.occlusionQuerySet = undefined; + } let descriptor;