<div dir="ltr"><div>Build a performance picture of a frame where both deltas between two checkpoints, as well as the absolute time of each checkpoint is available (i.e. timestamps) is useful.</div><div><br></div><div>It is possible to emulate/shim timestamp queries purely in JS. This would not be desirable for the usual reasons.</div><div><br></div><div>I'm against removing the TIMESTAMP_EXT functionality for the following reasons:</div><div><ul><li>Precision bits are available to indicate not only precision but also support. Those bits are there for exactly that reason.</li><li>Timestamp functionality is useful</li><li>In the absence of platform native or browser emulated timestamp functionality, the precision bits can be used by those wishing to have timestamp functionality to plug in a pure JS shim.</li><li>In the absence of platform support, browsers may emulate timestamps with a non JS shim (that would probably be better than a JS shim) and they can communicate this via the precision bits.</li><li>Removing timestamp functionality removes the adapative upgrade/emulation as described above, and forces everybody in need of timestamps, to rely purely on shimming it in JS, forever, which is undesirable.</li></ul></div><div><br class="">On Wed, Jun 8, 2016 at 3:14 AM, Kenneth Russell <span dir="ltr"><<a href="mailto:kbr@google.com" target="_blank">kbr@google.com</a>></span> wrote:<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr">Developers have started using WebGL's wrapper for the EXT_disjoint_timer_query extension and have found that the TIMESTAMP_EXT queries aren't working well.</div></blockquote><div>That timestamp queries will be problematic has been known since before the extension was exposed. It is also what the precision bits are intended for.</div></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">Elapsed time queries are portable, and are the recommended way to gather timing information on the GPU.</blockquote><div>And they can be used by an UA, if so desired, to emulate timestamps and indicate that support with the precision bits. </div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><span style="font-size:12.8px">not widely used yet, so the risk of breaking content is low.</span></blockquote><div>I object to the removal not because of legacy breakage but because a useful feature will be doomed to be JS-shimmed forever for those who need it.</div><div> </div><div class="gmail_extra"><div class="gmail_quote">On Wed, Jun 8, 2016 at 9:40 AM, Kirill Dmitrenko <span dir="ltr"><<a href="mailto:dmikis@yandex-team.ru" target="_blank">dmikis@yandex-team.ru</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div>Well, as I've written on webgl-dev-list, the fact that Chromium won't support TIMESTAMP_EXT renders it pretty much useless.</div></blockquote><div>It is useful, where it works. And it can be shimmed in JS, if the precision indicates non support.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div>There is little to no sense to write one code for platforms that have timestamps and another one for ones that don't.</div></blockquote><div>Yes there is, it's called a "shim".</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div> Especially considering absence of a way to feature-detect noop timestamps.</div></blockquote><div>You can query the precision bits to figure out if timestamps are supported.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div>If implementers don't want to support TIMESTAMP_EXT due to technical difficulties we should drop it from the extension spec.</div></blockquote><div>The extension specification is intentionally extensible in its ability to indicate support in the precision bits, so in order that emulations (in drivers, UAs or JS) can be appropriately offered and the best implementation rules over the next best.</div></div></div></div>