[Public WebGL] Interaction of WebGL 2 query objects and WebGL timer queries extension EXT_disjoint_timer_query

Kenneth Russell [email protected]
Mon Oct 3 13:44:19 PDT 2016


On Sat, Oct 1, 2016 at 2:00 AM, Florian Bösch <[email protected]> wrote:

> That'll work. I personally find it a bit clumsy to have to have two
> extensions to do it. On the other hand, it wouldn't be good if there was an
> extension that had different stuff on it depending if you got it from a
> webgl1 or webgl2 context.
>

Actually, the current intention was to fetch it via the same extension
name. Note the text in EXT_disjoint_timer_query_webgl2/extension.xml in
https://github.com/KhronosGroup/WebGL/pull/2076 . If this is undesirable,
and it would be better to actually fetch it via
'EXT_disjoint_timer_query_webgl2', please let me know -- or comment on the
pull request.


Are there other extensions that presently exist in WebGL1 which have a
> partial coverage in WebGL2 which would need a _webgl2 version?
>

This is the only problematic one. Most of the WebGL 1 extensions are folded
into the core and aren't exposed on the WebGL 2 context. Here's the full
list of extensions exposed in WebGL 2 in Chrome Canary on macOS:

EXT_color_buffer_float
EXT_disjoint_timer_query
EXT_texture_filter_anisotropic
OES_texture_float_linear
WEBGL_compressed_texture_s3tc
WEBGL_debug_renderer_info
WEBGL_debug_shaders
WEBGL_lose_context

The others are pretty trivial.

-Ken



>
> On Sat, Oct 1, 2016 at 5:21 AM, Kenneth Russell <[email protected]> wrote:
>
>> Thanks for your feedback. The working group discussed this and proposes
>> to expose a slimmed-down IDL for WebGL 2.0 under the same extension name
>> that reuses all of the core context's query functionality. Please review
>> and comment:
>>
>> https://github.com/KhronosGroup/WebGL/pull/2076
>>
>> Thanks,
>>
>> -Ken
>>
>>
>> On Thu, Sep 29, 2016 at 3:39 AM, Florian Bösch <[email protected]> wrote:
>>
>>> Yeah that's the thing I mean. It needs to get resolved and unambiguously
>>> (and preferably following GL semantics) or tool chains spring into
>>> existence doing the wrong things.
>>>
>>> On Thu, Sep 29, 2016 at 11:18 AM, Jukka Jylänki <[email protected]>
>>> wrote:
>>>
>>>> For reference, here is the feature added to Emscripten:
>>>> https://github.com/kripken/emscripten/pull/4575
>>>>
>>>> 2016-09-29 2:04 GMT+03:00 Kenneth Russell <[email protected]>:
>>>>
>>>>> On Mon, Sep 26, 2016 at 4:03 PM, Florian Bösch <[email protected]>
>>>>> wrote:
>>>>>
>>>>>> On Tue, Sep 27, 2016 at 12:41 AM, Kenneth Russell <[email protected]>
>>>>>> wrote:
>>>>>>
>>>>>>> On Sun, Sep 25, 2016 at 1:34 AM, Florian Bösch <[email protected]>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> On Sun, Sep 25, 2016 at 5:37 AM, Kenneth Russell <[email protected]>
>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>> Good question. Yes, they should be considered separate.
>>>>>>>>>
>>>>>>>>
>>>>>>>> I don't agree with that interpretation.
>>>>>>>>
>>>>>>>
>>>>>>> The IDL is clear. As I mentioned, it could be modified, but right
>>>>>>> now WebGLTimerQueryEXT and WebGLQuery are distinct types.
>>>>>>>
>>>>>>
>>>>>> I mean the interpretation that they should be considered separate,
>>>>>> not what the IDL says they should be.
>>>>>>
>>>>>>
>>>>>>>
>>>>>>>> On Fri, Sep 23, 2016 at 7:20 PM, Geoff Lang <[email protected]>
>>>>>>>>  wrote:
>>>>>>>>
>>>>>>>>> For OpenGL in general, glGenQueries and glGenQueriesEXT are
>>>>>>>>> allowed to be the same function pointer
>>>>>>>>>
>>>>>>>>
>>>>>>>> glBeginQuery, glBeginQueryEXT (disjoint timer) and glBeginQueryEXT
>>>>>>>> (occlusion) are clearly returning the same kind of object, and they're
>>>>>>>> identical.
>>>>>>>>
>>>>>>>> It would be quite unfortunate if you had to track which extension
>>>>>>>> object you operated with in order to know which interface to use with that
>>>>>>>> particular extension object. If we where to interprete it that way, then
>>>>>>>> the API interface to these functions should not reside on the extension
>>>>>>>> object, but be on the query object. As in:
>>>>>>>>
>>>>>>>> query = disjoint_ext.create();
>>>>>>>> query.begin();
>>>>>>>> query.end();
>>>>>>>>
>>>>>>>
>>>>>>> With occlusion queries being folded into the core WebGL 2.0 spec,
>>>>>>> the only outlier is EXT_disjoint_timer_query.
>>>>>>>
>>>>>>> We can revisit this after the first iteration of WebGL 2.0 ships.
>>>>>>>
>>>>>>
>>>>>> I think that's too late. It's my opinion that following the OpenGL
>>>>>> semantic on symbols that these two objects should be considered the same.
>>>>>> It wouldn't be good if code emerged that treated them as if they wheren't,
>>>>>> if we intend to make it so they aren't, and vice versa.
>>>>>>
>>>>>
>>>>> This is a good point. The working group will discuss this on
>>>>> tomorrow's conference call and I'll file an issue on the KhronosGroup/WebGL
>>>>> issue tracker assuming we decide to make a change to the
>>>>> EXT_disjoint_timer_query spec, IDL, and conformance test.
>>>>>
>>>>> -Ken
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://khronos.org/pipermail/public_webgl_khronos.org/attachments/20161003/4000cde4/attachment.html>


More information about the public_webgl mailing list