<div dir="ltr"><div dir="ltr"><div dir="ltr">just a nit: I tried the examples on the slides and I got the following on the console: "Disabling use_ubos. webgl_version is not 2."<div>I guess both urls should include the "&webgl_version=2" isn't it?<br></div><div><br></div><div>Excited to give it a try!</div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Feb 22, 2019 at 7:36 PM Ken Russell (<a href="mailto:kbr@google.com">kbr@google.com</a>) <<a href="mailto:public_webgl@khronos.org">public_webgl@khronos.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Fantastic!<div><br></div><div>For scenes which are well sorted by state/material, the available speedups from these extensions are tremendous. We look forward to what's possible in Babylon and other 3D engines on the web!</div><div><br></div><div>Great work Austin and Kai! Looking forward to other browsers implementing these, too, and moving them to community approved quickly!</div><div><br></div><div>-Ken</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Feb 22, 2019 at 10:30 AM David Catuhe (<a href="mailto:David.Catuhe@microsoft.com" target="_blank">David.Catuhe@microsoft.com</a>) <<a href="mailto:public_webgl@khronos.org" target="_blank">public_webgl@khronos.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">





<div lang="EN-US">
<div class="gmail-m_2202447108471686102gmail-m_-5031283526725886227WordSection1">
<p class="MsoNormal">Just created an issue to support them <span style="font-family:"Segoe UI Emoji",sans-serif">
☺</span><u></u><u></u></p>
<p class="MsoNormal"><a href="https://github.com/BabylonJS/Babylon.js/issues/5962" target="_blank">https://github.com/BabylonJS/Babylon.js/issues/5962</a><u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><b>From:</b> <a href="mailto:owners-public_webgl@khronos.org" target="_blank">owners-public_webgl@khronos.org</a> <<a href="mailto:owners-public_webgl@khronos.org" target="_blank">owners-public_webgl@khronos.org</a>>
<b>On Behalf Of </b>Austin Eng (<a href="mailto:enga@google.com" target="_blank">enga@google.com</a>)<br>
<b>Sent:</b> Friday, February 22, 2019 10:22 AM<br>
<b>To:</b> <a href="mailto:public_webgl@khronos.org" target="_blank">public_webgl@khronos.org</a><br>
<b>Subject:</b> [Public WebGL] New multi_draw extensions<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<div>
<p class="MsoNormal"><span style="font-family:Arial,sans-serif;color:black">Resending this because the previous email was likely marked as spam.</span><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p style="margin:0in 0in 0.0001pt"><span style="font-family:Arial,sans-serif;color:black">WebGL community,</span><u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p style="margin:0in 0in 0.0001pt"><span style="font-family:Arial,sans-serif;color:black">Two new extensions are in development which provide better batching for draw calls:</span><u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p style="margin:0in 0in 0.0001pt"><a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.khronos.org%2Fregistry%2Fwebgl%2Fextensions%2FWEBGL_multi_draw%2F&data=02%7C01%7CDavid.Catuhe%40microsoft.com%7C4c54708001614a10ee7008d698f2c671%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C1%7C636864565827877052&sdata=oYroh5487exlCENjZut9gykdUB5lnAW5XisTlKfrCKQ%3D&reserved=0" target="_blank"><span style="font-family:Arial,sans-serif">WEBGL_multi_draw</span></a><u></u><u></u></p>
<p style="margin:0in 0in 0.0001pt"><a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.khronos.org%2Fregistry%2Fwebgl%2Fextensions%2FWEBGL_multi_draw_instanced%2F&data=02%7C01%7CDavid.Catuhe%40microsoft.com%7C4c54708001614a10ee7008d698f2c671%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C1%7C636864565827887075&sdata=GFhC79S%2BQffghxQPAzORD%2FqbU8v7%2BIjR%2FsZs10nwKLA%3D&reserved=0" target="_blank"><span style="font-family:Arial,sans-serif">WEBGL_multi_draw_instanced</span></a><u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p style="margin:0in 0in 0.0001pt"><span style="font-family:Arial,sans-serif;color:black">Compared to instancing, which is available as an extension in WebGL 1.0 and is core in WebGL 2.0, multi_draw provides more flexibility. It essentially allows
 the parameters to multiple calls to drawArrays and drawElements to be assembled in arrays, and sent down to the WebGL implementation with one call. This eliminates a large amount of overhead when repeatedly calling from the JavaScript application down into
 the WebGL implementation.</span><u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p style="margin:0in 0in 0.0001pt"><span style="font-family:Arial,sans-serif;color:black">Per-draw-call data can be sent down in multiple ways, including in uniform buffers (WebGL 2.0) indexed by a new gl_DrawID variable available in shaders.</span><u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p style="margin:0in 0in 0.0001pt"><span style="font-family:Arial,sans-serif;color:black">A few examples of how these APIs can be used are in this repository:</span><u></u><u></u></p>
<p style="margin:0in 0in 0.0001pt"><a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fkenrussell%2Fwebgl-animometer&data=02%7C01%7CDavid.Catuhe%40microsoft.com%7C4c54708001614a10ee7008d698f2c671%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C1%7C636864565827887075&sdata=PGDYjqGg8csrwGJb31ReaHd90ETLn%2Bde39PfbzJTK5w%3D&reserved=0" target="_blank"><span style="font-family:Arial,sans-serif">https://github.com/kenrussell/webgl-animometer</span></a><u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p style="margin:0in 0in 0.0001pt"><span style="font-family:Arial,sans-serif;color:black">The potential speedups are dramatic.
</span><a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.google.com%2Fpresentation%2Fd%2F1iznxalgXLLSWVNHQ6le9Gzv_TYzsD5R_gg8yT5ckf2A%2Fedit%3Fusp%3Dsharing&data=02%7C01%7CDavid.Catuhe%40microsoft.com%7C4c54708001614a10ee7008d698f2c671%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C1%7C636864565827897079&sdata=RPVG5I2J7JplW49LiCYwj2q2EtVCGSSZ6xlXYOYSNMI%3D&reserved=0" target="_blank"><span style="font-family:Arial,sans-serif">Microbenchmarks</span></a><span style="font-family:Arial,sans-serif;color:black">
 show anywhere from a 2-3x speedup to a 70x (!) speedup in Chrome, compared to making tiny individual draw calls from JavaScript. Prototypes in other browsers show ~4x speedups too; the benefits are universal.</span><u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p style="margin:0in 0in 0.0001pt"><span style="font-family:Arial,sans-serif;color:black">Please give these extensions a try. They’re currently available in Chrome Canary on all platforms by enabling WebGL draft extensions in about:flags, and are
 coming to more browsers soon. A BaseVertex variant of the extensions is also planned.</span><u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p style="margin:0in 0in 0.0001pt"><span style="font-family:Arial,sans-serif;color:black">We would appreciate your feedback on how well the multi_draw extensions work for your applications, and any suggestions for continued enhancement.</span><u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p style="margin:0in 0in 0.0001pt"><span style="font-family:Arial,sans-serif;color:black">Thanks to Kai Ninomiya from Google for support in developing these extensions!</span><u></u><u></u></p>
<p style="margin:0in 0in 0.0001pt"><u></u> <u></u></p>
<p style="margin:0in 0in 0.0001pt"><span style="font-family:Arial,sans-serif;color:black">- Austin Eng</span><u></u><u></u></p>
</div>
</div>
</div>
</div>

</blockquote></div>
</blockquote></div>