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

Re: [Public WebGL] WebGL API request: asynchronous texture uploads



Agreed -- the best solution is to support real multithreading in
WebGL. We should push forward integrating sharing and Canvas in
workers, and not get distracted adding async APIs for every expensive
WebGL operation.

-Ken



On Thu, Apr 25, 2013 at 9:33 AM, Gregg Tavares <gman@google.com> wrote:
> Rather than making 50 async APIs the solution to asynchronous features in
> WebGL is allowing WebGL in web workers.
>
> http://www.khronos.org/webgl/wiki/SharedResouces
>
> http://wiki.whatwg.org/wiki/CanvasInWorkers
>
> Which are being actively worked on.
>
>
>
> On Thu, Apr 25, 2013 at 3:44 AM, Tom Payne <tom.payne@camptocamp.com> wrote:
>>
>> 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.texImage2DAsync(
>>     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,
>> Tom
>>
>>
>> [1] http://www.chromium.org/developers/design-documents/impl-side-painting
>> section "Texture Upload"
>>
>>
>>
>> --
>> Camptocamp SA
>> Tom PAYNE
>> PSE A
>> CH-1015 Lausanne
>>
>> +41 21 619 10 13 (direct)
>> +41 21 619 10 10 (centrale)
>> +41 21 619 10 00 (fax)
>
>

-----------------------------------------------------------
You are currently subscribed to public_webgl@khronos.org.
To unsubscribe, send an email to majordomo@khronos.org with
the following command in the body of your email:
unsubscribe public_webgl
-----------------------------------------------------------