You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Chrome中EXT_disjoint_timer_query_webgl2查询ID无效问题咨询

关于Chrome中EXT_disjoint_timer_query_webgl2扩展的查询失效问题

我在桌面版Chrome中尝试使用EXT_disjoint_timer_query_webgl2扩展(该扩展近期已恢复默认启用),调用getExtension成功,且ext.TIMESTAMP_EXT和ext.QUERY_COUNTER_BITS_EXT均返回非零值,代码完全按照官方文档实现。

正常运行的代码逻辑

每帧执行以下代码时,程序运行无异常:

globalData.startQuery = gl.createQuery();
ext.queryCounterEXT(globalData.startQuery, ext.TIMESTAMP_EXT);
let available = gl.getQueryParameter(globalData.startQuery, gl.QUERY_RESULT_AVAILABLE);
gl.deleteQuery(globalData.startQuery);
// <rest of the frame code here>

触发警告的代码逻辑

但如果调整为以下逻辑(启动查询后,在下一帧检查结果再创建新查询),控制台会持续输出GL错误警告:

// globalData.startQuery 初始为 null
if (globalData.startQuery) {
    let available = gl.getQueryParameter(globalData.startQuery, gl.QUERY_RESULT_AVAILABLE);
    gl.deleteQuery(globalData.startQuery);
}
globalData.startQuery = gl.createQuery();
ext.queryCounterEXT(globalData.startQuery, ext.TIMESTAMP_EXT);
// <rest of the frame code here>

警告内容:

GL_INVALID_OPERATION : glGetQueryObjectuivEXT: unknown query id

我排查后确认这是代码中唯一使用查询的地方,怀疑是否存在其他GL代码或requestAnimationFrame机制导致查询对象失效的情况?


编辑:最小复现示例

已编写最小代码片段复现该问题:

let canvas = document.getElementById("mycanvas");
let gl = canvas.getContext("webgl2");
let ext = gl.getExtension('EXT_disjoint_timer_query_webgl2');

let startQuery = null

function onFrame() {
    if (startQuery) {
        let available = gl.getQueryParameter(startQuery, gl.QUERY_RESULT_AVAILABLE);
        //console.log(available)
        gl.deleteQuery(startQuery);
    }
    startQuery = gl.createQuery();
    ext.queryCounterEXT(startQuery, ext.TIMESTAMP_EXT);
    window.requestAnimationFrame(onFrame)
}

window.requestAnimationFrame(onFrame)

测试发现:若改用for循环直接调用onFrame而非通过requestAnimationFrame调度,则无警告;另外,使用beginQuery/endQuery的类似逻辑也不会触发警告。这是否属于Chrome的实现bug?


编辑2:问题结论

基于上述测试结果,我判断这是Chrome的实现问题,已提交官方bug反馈。

内容的提问来源于stack exchange,提问作者Wojciech Danilo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 17:12:56