Open Bug 1255805 Opened 8 years ago Updated 1 month ago

Expose the EXT_disjoint_timer_query extension to WebGL2 and enable it by default

Categories

(Core :: Graphics: CanvasWebGL, defect, P3)

defect

Tracking

()

People

(Reporter: fs, Unassigned)

References

(Depends on 1 open bug)

Details

(Keywords: parity-chrome, parity-safari, Whiteboard: gfx-noted)

The EXT_disjoint_timer_query extension should be exposed to the WebGL 2.0 context as well as to the 1.0 context.

See this PR https://github.com/KhronosGroup/WebGL/pull/1327
Spec: https://www.khronos.org/registry/webgl/extensions/EXT_disjoint_timer_query/

We are currently only exposing it only to WebGL 1.0: 
https://dxr.mozilla.org/mozilla-central/source/dom/canvas/WebGLContextExtensions.cpp#201
Also, Chrome seems to expose this without a flag now: https://bugs.chromium.org/p/chromium/issues/detail?id=560620
I just tried to use this extension with WebGL 1.0 and it does not seem
to be available. I am using that extension for profiling my WebGL page 
on Chrome Canary and plan to use it for graceful degradation on slow GPUs, 
therefore  it would be very useful to have this extension available 
also without the flag.

https://news.ycombinator.com/item?id=8529250 says this extension 
is only for internal Mozilla profiling, while 
https://developer.mozilla.org/en-US/docs/Web/API/EXT_disjoint_timer_query
says it is available behind a flag.

I used 
  ...  .getExtension('EXT_disjoint_timer_query')
and it returns returns null. 
I did enable webgl.enable-draft-extensions before.
The same script works in Chrome Canary without a flag. Using FF 45.0.1.
(In reply to Helmut Emmelmann from comment #2)
> 
> I used 
>   ...  .getExtension('EXT_disjoint_timer_query')
> and it returns returns null. 
> I did enable webgl.enable-draft-extensions before.
> The same script works in Chrome Canary without a flag. Using FF 45.0.1.

What OS are you on?
Flags: needinfo?(emmel)
I am using Windows 8.1. As I now found out, FF 45.0.1 does not find the extension,
when ANGLE is used but it works well when ANGLE is disabled (webgl.disable-angle false and
webgl.force-enabled true). The nightly built 48.0a1 16-03-23 also works well without angle
but crashes when using angle (a crash report was automatically sent). When 
webgl.enable-draft-extensions is disabled it works on nightly with angle.
I tested with my own page, however the crash also occurs on the WebGL test
suite http://www.khronos.org/registry/webgl/sdk/tests/conformance/extensions/ext-disjoint-timer-query.html with angle and webgl.enable-draft-extensions enabled on the nightly build.
Flags: needinfo?(emmel)
I've filed bug 1259449 on the issue.
(In reply to Jeff Muizelaar [:jrmuizel] from comment #5)
> I've filed bug 1259449 on the issue.

FWIW, I believe you can avoid the crash by using queryCounterEXT instead of getParameter.
- I removed the getParameter and now it does not crash any more.
- the getParameter is supposed to deliver some other information as queryCounterEXT, however
- as far as I know this functionality is not working in ANGLE anyway and going to be removed, see chromium Issue 595172 and Issue 657
Issue 657 should read Angle Issue 657
Depends on: 1260599, 1259449
Summary: Expose the EXT_disjoint_timer_query extension to WebGL2 → Expose the EXT_disjoint_timer_query extension to WebGL2 and enable it by default
Depends on: 1290030
I also can't make it work in FF stable v50.0 beta 51, dev 52 and nightly 53.0 with draft extensions enabled and angle on/off

Intel Mac OS X 10.12
NVIDIA GeForce GT 750M
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.