[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Public WebGL] WebGL API request: asynchronous texture uploads

Texture uploads are slow on mobile devices [1], and have unpredictable performance, and it's hard to avoid jank. Applications that stream textures on demand, like map and virtual globe applications, are particularly sensitive to this.

Can the WebGL API be extended to allow asynchronous texture uploads?

Something like:

  var texture = gl.createTexture();
  gl.bindTexture(gl.TEXTURE_2D, texture);
    gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image,
    function() {
      // texture now uploaded, do something
  // gl.texImage2DAsync also implicitly unbinds the texture

This might lead to the second advantage of eventually allowing the browser to JPEG/PNG decode the image in a separate, low-priority, thread.

Does this make sense?

Many thanks,

[1] http://www.chromium.org/developers/design-documents/impl-side-painting section "Texture Upload"

Camptocamp SA
CH-1015 Lausanne

+41 21 619 10 13 (direct)
+41 21 619 10 10 (centrale)
+41 21 619 10 00 (fax)