We talked through this proposal with a lot of Mozilla people in a meeting
and collectively decided that we don't care about the case of workers that
commit multiple frames to a canvas without yielding --- at least for now.
So we want to remove commit() and copy the main-thread semantics that a
O'Callahan rob...@ocallahan.org
To: Justin Novosad ju...@google.com
Cc: WHAT Working Group wha...@whatwg.org, Glenn Maynard gl...@zewt.org,
Kenneth Russell k...@google.com, Kyle Huey m...@kylehuey.com
Sent: Thursday, October 24, 2013 2:24:27 AM
Subject: Re: [whatwg] Canvas in workers
We talked through
- Original Message -
From: Robert O'Callahan rob...@ocallahan.org
We talked through this proposal with a lot of Mozilla people in a meeting
and collectively decided that we don't care about the case of workers that
commit multiple frames to a canvas without yielding --- at least for
On Thu, Oct 24, 2013 at 6:59 AM, Glenn Maynard gl...@zewt.org wrote:
- Original Message -
From: Robert O'Callahan rob...@ocallahan.org
We talked through this proposal with a lot of Mozilla people in a meeting
and collectively decided that we don't care about the case of
On Tue, Oct 22, 2013 at 5:59 PM, Robert O'Callahan rob...@ocallahan.orgwrote:
On Tue, Oct 22, 2013 at 10:44 PM, Robert O'Callahan rob...@ocallahan.org
wrote:
No problem at all. Can you do it? I need to get a WHATWG account :-).
OK, I added the proposal here:
On Wed, Oct 23, 2013 at 11:46 AM, Justin Novosad ju...@google.com wrote:
Interface Transferable is not defined.
Never mind. :-)
On Mon, Oct 21, 2013 at 8:03 AM, Glenn Maynard gl...@zewt.org wrote:
On Sun, Oct 20, 2013 at 11:53 PM, Robert O'Callahan rob...@ocallahan.org
wrote:
Glenn, taking a step back for a bit, is there anything in
https://wiki.mozilla.org/User:Roc/WorkerCanvasProposal that you would
actually object
On Tue, Oct 22, 2013 at 7:31 PM, Kenneth Russell k...@google.com wrote:
Robert, please don't remove those APIs from your proposal. They're
needed in order to address known use cases, and splitting them off
will make it difficult to understand how they interact with
WorkerCanvas later.
Yes,
On Tue, Oct 22, 2013 at 1:44 PM, Robert O'Callahan rob...@ocallahan.org wrote:
On Tue, Oct 22, 2013 at 7:31 PM, Kenneth Russell k...@google.com wrote:
Robert, please don't remove those APIs from your proposal. They're
needed in order to address known use cases, and splitting them off
will
I got an account and I'm uploading the proposal now.
Rob
--
Jtehsauts tshaei dS,o n Wohfy Mdaon yhoaus eanuttehrotraiitny eovni
le atrhtohu gthot sf oirng iyvoeu rs ihnesa.rt sS?o Whhei csha iids teoa
stiheer :p atroa lsyazye,d 'mYaonu,r sGients uapr,e tfaokreg iyvoeunr,
'm aotr
Great.
On Tue, Oct 22, 2013 at 2:54 PM, Robert O'Callahan rob...@ocallahan.org wrote:
I got an account and I'm uploading the proposal now.
Rob
--
Jtehsauts tshaei dS,o n Wohfy Mdaon yhoaus eanuttehrotraiitny eovni le
atrhtohu gthot sf oirng iyvoeu rs ihnesa.rt sS?o Whhei csha iids
On Tue, Oct 22, 2013 at 10:44 PM, Robert O'Callahan rob...@ocallahan.orgwrote:
No problem at all. Can you do it? I need to get a WHATWG account :-).
OK, I added the proposal here:
http://wiki.whatwg.org/wiki/WorkerCanvas
A couple of changes from the previous version:
-- Added
On Sun, Oct 20, 2013 at 11:53 PM, Robert O'Callahan rob...@ocallahan.orgwrote:
Glenn, taking a step back for a bit, is there anything in
https://wiki.mozilla.org/User:Roc/WorkerCanvasProposal that you would
actually object to? IOW, is there anything there that you would think is
completely
On Sat, Oct 19, 2013 at 10:11 AM, Robert O'Callahan rob...@ocallahan.orgwrote:
It's not clear to me how attachToCanvas works. An application like Google
Maps wants to draw to multiple canvases from a worker and then render the
updated canvas contents all at once, in synchrony with changes to
On Sun, Oct 20, 2013 at 5:29 PM, Glenn Maynard gl...@zewt.org wrote:
That's not the problem attachToCanvas tries to solve. It tries to solve
rendering to multiple canvases, without requiring synchronization with the
UI thread. I have a proposal for handling synchronization with DOM
updates,
Glenn, taking a step back for a bit, is there anything in
https://wiki.mozilla.org/User:Roc/WorkerCanvasProposal that you would
actually object to? IOW, is there anything there that you would think is
completely superfluous to the platform if all your proposals were to be
adopted as well?
Rob
--
On Sat, Oct 19, 2013 at 1:28 AM, Glenn Maynard gl...@zewt.org wrote:
I'd like to hear thoughts on the context.attachToCanvas approach. I
think it has important advantages over ImageBitmap:
- ImageBitmap requires the user to call close(). If the user forgets, or
doesn't know, or misses it
On Tue, Oct 15, 2013 at 5:30 PM, Kenneth Russell k...@google.com wrote:
On Tue, Oct 15, 2013 at 4:41 PM, Robert O'Callahan rob...@ocallahan.org
wrote:
On Wed, Oct 16, 2013 at 11:55 AM, Kenneth Russell k...@google.com wrote:
On Mon, Oct 14, 2013 at 1:34 PM, Robert O'Callahan
On Fri, Oct 18, 2013 at 2:06 PM, Kenneth Russell k...@google.com wrote:
Capturing Glenn Maynard's feedback from the other thread started by
Rik Cabanier, Glenn made a good point that there needs to be a way to
explicitly deallocate the ImageBitmap. Otherwise, the JavaScript
objects will have
Le 16/10/2013 01:26, Robert O'Callahan a écrit :
On Wed, Oct 16, 2013 at 11:55 AM, David Bruant bruan...@gmail.com
mailto:bruan...@gmail.com wrote:
If the main thread is blocked, the app drops frames anyway, no?
Not necessarily. We can allow workers to present frames to the
compositor
On Tue, Oct 15, 2013 at 8:30 PM, Kenneth Russell k...@google.com wrote:
On Tue, Oct 15, 2013 at 4:41 PM, Robert O'Callahan rob...@ocallahan.org
wrote:
If you squint, WorkerCanvas.transferToImageBitmap is similar to
detaching a
DrawingBuffer. But I don't see a need to reattach a buffer to a
On Wed, Oct 16, 2013 at 8:01 AM, Justin Novosad ju...@google.com wrote:
... oh... so the UI could be updated even if JS is blocking... the future
is bright :-)
If the UI is all painted in a canvas, then yes.
Let's not get ahead of ourselves though. Browsers that have a compositor in
a
On Wed, Oct 16, 2013 at 5:39 AM, Justin Novosad ju...@google.com wrote:
On Tue, Oct 15, 2013 at 8:30 PM, Kenneth Russell k...@google.com wrote:
On Tue, Oct 15, 2013 at 4:41 PM, Robert O'Callahan rob...@ocallahan.org
wrote:
If you squint, WorkerCanvas.transferToImageBitmap is similar to
On Thu, Oct 17, 2013 at 6:35 AM, Kenneth Russell k...@google.com wrote:
Yes, right. That factory method is already spec'ed on the
WorkerGlobalScope [1]. It actually returns a Promise, so presumably
transferToImageBitmap would have to as well.
The whole point of transferToImageBitmap is that
On Wed, Oct 16, 2013 at 3:53 PM, Robert O'Callahan rob...@ocallahan.orgwrote:
On Thu, Oct 17, 2013 at 6:35 AM, Kenneth Russell k...@google.com wrote:
Yes, right. That factory method is already spec'ed on the
WorkerGlobalScope [1]. It actually returns a Promise, so presumably
On Wed, Oct 16, 2013 at 1:13 PM, Justin Novosad ju...@google.com wrote:
On Wed, Oct 16, 2013 at 3:53 PM, Robert O'Callahan rob...@ocallahan.org
wrote:
On Thu, Oct 17, 2013 at 6:35 AM, Kenneth Russell k...@google.com wrote:
Yes, right. That factory method is already spec'ed on the
On Wed, Oct 16, 2013 at 9:23 PM, Kenneth Russell k...@google.com wrote:
While the Promise returned from createImageBitmap(HTMLCanvasElement)
can be fulfilled immediately, is it worth introducing a special
overload with a different return type?
Well if you want a synchronous method a promise is
From: whatwg-boun...@lists.whatwg.org [whatwg-boun...@lists.whatwg.org] on
behalf of Anne van Kesteren [ann...@annevk.nl]
On Wed, Oct 16, 2013 at 9:23 PM, Kenneth Russell k...@google.com wrote:
While the Promise returned from createImageBitmap(HTMLCanvasElement) can be
fulfilled immediately,
On Wed, Oct 16, 2013 at 5:29 PM, Domenic Denicola
dome...@domenicdenicola.com wrote:
From: whatwg-boun...@lists.whatwg.org [whatwg-boun...@lists.whatwg.org]
on behalf of Anne van Kesteren [ann...@annevk.nl]
On Wed, Oct 16, 2013 at 9:23 PM, Kenneth Russell k...@google.com wrote:
While the
Robert, I think your argument makes sense. The DrawingBuffer mechanism
described in http://wiki.whatwg.org/wiki/CanvasInWorkers can be made
implicit and hidden under the hood in a way that is just as memory
efficient by using the right combination of read locks and copy-on-write.
However, I have
On Sun, Oct 13, 2013 at 7:55 PM, David Bruant bruan...@gmail.com wrote:
Not directly related, but I imagine requestAnimationFrame doesn't work in
a worker. How can a script know when to stop drawing on a given canvas?
rAF doesn't work in a worker, but that is easy to work around. You can
On Wed, Oct 16, 2013 at 10:06 AM, Justin Novosad ju...@google.com wrote:
If we put that idea into the WorkerCanvas proposal, here is an idea of how
commits could handle resizes asynchronously:
1) Main thread executes some JS that changes the size of the canvas, and
posts an event to the
On Wed, Oct 16, 2013 at 10:19 AM, Justin Novosad ju...@google.com wrote:
rAF doesn't work in a worker, but that is easy to work around. You can
have a rAF handler on the main thread that propagates the signal to your
workers by posting a rAF message to them.
That isn't a good solution since
On Mon, Oct 14, 2013 at 1:34 PM, Robert O'Callahan rob...@ocallahan.org wrote:
On Mon, Oct 14, 2013 at 2:20 PM, Kenneth Russell k...@google.com wrote:
Would you mind looking at the proposal
http://wiki.whatwg.org/wiki/CanvasInWorkers and commenting on it?
Sure. Kyle and I looked at it while
Le 16/10/2013 00:12, Robert O'Callahan a écrit :
On Wed, Oct 16, 2013 at 10:19 AM, Justin Novosad ju...@google.com
mailto:ju...@google.com wrote:
rAF doesn't work in a worker, but that is easy to work around. You can
have a rAF handler on the main thread that propagates the signal
On Mon, Oct 14, 2013 at 1:20 PM, Kenneth Russell k...@google.com wrote:
1) Rendering from a worker and displaying on the main thread with no
extra blits of the rendering results
2) Allows one context to render to multiple canvases
3) Supports resizing of the drawing buffer
The
On Wed, Oct 16, 2013 at 11:55 AM, David Bruant bruan...@gmail.com wrote:
If the main thread is blocked, the app drops frames anyway, no?
Not necessarily. We can allow workers to present frames to the compositor
without synchronizing with the main thread.
Rob
--
Jtehsauts tshaei dS,o n Wohfy
On Wed, Oct 16, 2013 at 11:55 AM, Kenneth Russell k...@google.com wrote:
On Mon, Oct 14, 2013 at 1:34 PM, Robert O'Callahan rob...@ocallahan.org
wrote:
On Mon, Oct 14, 2013 at 2:20 PM, Kenneth Russell k...@google.com wrote:
Would you mind looking at the proposal
On Tue, Oct 15, 2013 at 4:41 PM, Robert O'Callahan rob...@ocallahan.org wrote:
On Wed, Oct 16, 2013 at 11:55 AM, Kenneth Russell k...@google.com wrote:
On Mon, Oct 14, 2013 at 1:34 PM, Robert O'Callahan rob...@ocallahan.org
wrote:
On Mon, Oct 14, 2013 at 2:20 PM, Kenneth Russell
Would you mind looking at the proposal
http://wiki.whatwg.org/wiki/CanvasInWorkers and commenting on it? This
was arrived at after extensive discussions with the Google Maps team,
and addresses their key use cases. Compared to the one below, it
solves the following problems:
1) Rendering from a
On Mon, Oct 14, 2013 at 2:20 PM, Kenneth Russell k...@google.com wrote:
Would you mind looking at the proposal
http://wiki.whatwg.org/wiki/CanvasInWorkers and commenting on it?
Sure. Kyle and I looked at it while we were working on our proposal. The
main issues I have with it are that
Le 13/10/2013 06:12, Kyle Huey a écrit :
I talked at length with Robert O'Callahan about what the DOM API for
supporting canvas in web workers should look like and we came up with the
following modifications to the spec.
1. Rename CanvasProxy to WorkerCanvas and only allow it to be
On Sat, Oct 12, 2013 at 11:12 PM, Kyle Huey m...@kylehuey.com wrote:
1. Rename CanvasProxy to WorkerCanvas and only allow it to be
transferred to workers. I don't think we're interested in supporting
cross-origin canvas via CanvasProxy (I would be curious to hear more
about what
Le 13/10/2013 18:12, Glenn Maynard a écrit :
On Sun, Oct 13, 2013 at 11:01 AM, David Bruant bruan...@gmail.com
wrote:
bool commit();
Boolean as return value for success? :-s
A promise instead maybe? throw instead of false at least?
In any case, it looks like commit could be a long
On Sun, Oct 13, 2013 at 12:01 PM, David Bruant bruan...@gmail.com wrote:
Le 13/10/2013 06:12, Kyle Huey a écrit :
2. Add a worker-only WorkerCanvas constructor that takes the desired
width/height of the drawing surface.
What is the use case for this constructor? Draw something in
On Sun, Oct 13, 2013 at 12:12 PM, Glenn Maynard gl...@zewt.org wrote:
On Sat, Oct 12, 2013 at 11:12 PM, Kyle Huey m...@kylehuey.com wrote:
1. Rename CanvasProxy to WorkerCanvas and only allow it to be
transferred to workers. I don't think we're interested in supporting
Le 13/10/2013 23:33, Robert O'Callahan a écrit :
bool commit();
Boolean as return value for success? :-s
A promise instead maybe? throw instead of false at least?
In any case, it looks like commit could be a long operation (tell
me if I'm wrong here. Do you have
On Sun, Oct 13, 2013 at 6:07 PM, David Bruant bruan...@gmail.com wrote:
Le 13/10/2013 23:33, Robert O'Callahan a écrit :
bool commit();
Boolean as return value for success? :-s
A promise instead maybe? throw instead of false at least?
In any case, it looks like
Le 14/10/2013 01:27, Robert O'Callahan a écrit :
On Sun, Oct 13, 2013 at 6:07 PM, David Bruant bruan...@gmail.com
mailto:bruan...@gmail.com wrote:
Le 13/10/2013 23:33, Robert O'Callahan a écrit :
bool commit();
Boolean as return value for success? :-s
On Sun, Oct 13, 2013 at 11:22 AM, David Bruant bruan...@gmail.com wrote:
bool commit();
Boolean as return value for success? :-s
A promise instead maybe? throw instead of false at least?
In any case, it looks like commit could be a long operation (tell me if
I'm wrong here. Do you
I'm referring to Web Workers.
http://www.whatwg.org/specs/web-apps/current-work/multipage/workers.html
https://developer.mozilla.org/en-US/docs/Web/Guide/Performance/Using_web_workers
- Kyle
On Sun, Oct 13, 2013 at 12:20 PM, Michael Norton no...@me.com wrote:
Hi Kyle,
I have read the
On Sun, Oct 13, 2013 at 12:50 PM, Michael Norton no...@me.com wrote:
Thank you! Read over the 1st link you provided, interesting. A worker
then seems similar to a runtime process in an os environment - is it a
derivation of RPC?
In a manner of speaking. Workers are an abstraction
On Thu, Jan 3, 2013 at 7:46 PM, Gregg Tavares g...@google.com wrote:
On Tue, Dec 11, 2012 at 9:04 AM, Ian Hickson i...@hixie.ch wrote:
On Tue, 11 Dec 2012, Gregg Tavares (社ç~T¨) wrote:
discussion seems to have died down here but I'd like to bring up
another
issue
In WebGL land
On Wed, 9 Jan 2013, Stephen White wrote:
Right now by 2d canvases are effectively single buffered. At the
appropriate time a copy of the canvas is made and passed to the
compositor. This copy is slow, especially on mobile.
Currently, to lower the VRAM footprint and improve
On Wed, Jan 9, 2013 at 2:50 PM, Stephen White senorbla...@chromium.orgwrote:
Currently, to lower the VRAM footprint and improve performance, we don't do
a copy in 2d canvas. We temporarily transfer ownership of the texture to
the compositor at commit time, and block the renderer until the
On Wed, 9 Jan 2013, James Robinson wrote:
On Wed, Jan 9, 2013 at 11:59 AM, Ian Hickson i...@hixie.ch wrote:
On Wed, 9 Jan 2013, Stephen White wrote:
Right now by 2d canvases are effectively single buffered. At the
appropriate time a copy of the canvas is made and passed to the
On Thu, 3 Jan 2013, Gregg Tavares wrote:
On Tue, Dec 11, 2012 at 9:04 AM, Ian Hickson i...@hixie.ch wrote:
On Tue, 11 Dec 2012, Gregg Tavares (社ç~T¨) wrote:
discussion seems to have died down here but I'd like to bring up
another issue
In WebGL land we have creation attributes
On Tue, Jan 8, 2013 at 11:12 AM, Ian Hickson i...@hixie.ch wrote:
On Thu, 3 Jan 2013, Gregg Tavares wrote:
On Tue, Dec 11, 2012 at 9:04 AM, Ian Hickson i...@hixie.ch wrote:
On Tue, 11 Dec 2012, Gregg Tavares (社ç~T¨) wrote:
discussion seems to have died down here but I'd like to
On Tue, 8 Jan 2013, Gregg Tavares wrote:
Supporting page flipping in 2D canvas would be fine too, but I don't
see why it would need a change to the API... you would just make
commit() flip which page was active for the context API and clear
the newly active page in one operation.
On 2013/01/04 9:46, Gregg Tavares wrote:
On Tue, Dec 11, 2012 at 9:04 AM, Ian Hickson i...@hixie.ch wrote:
On Tue, 11 Dec 2012, Gregg Tavares (社ç~T¨) wrote:
In WebGL land we have creation attributes on the drawingbuffer made for a
canvas. Example
gl = canvas.getContext(webgl, {
On Wed, 9 Jan 2013, Mark Callow wrote:
I would expect these wins to be equally important when doing animation
in Canvas2D as I would double buffering to to avoid flicker.
Are implementors interested in a way to make 2D rendering contexts use
page flipping instead of double buffering?
--
On 2013/01/09 12:37, Ian Hickson wrote:
On Wed, 9 Jan 2013, Mark Callow wrote:
I would expect these wins to be equally important when doing animation
in Canvas2D as I would double buffering to to avoid flicker.
Are implementors interested in a way to make 2D rendering contexts use
page
On Tue, Dec 11, 2012 at 9:04 AM, Ian Hickson i...@hixie.ch wrote:
On Tue, 11 Dec 2012, Gregg Tavares (社ç~T¨) wrote:
discussion seems to have died down here but I'd like to bring up another
issue
In WebGL land we have creation attributes on the drawingbuffer made for a
canvas. Example
On Tue, 11 Dec 2012, Gregg Tavares (社�~T�) wrote:
discussion seems to have died down here but I'd like to bring up another
issue
In WebGL land we have creation attributes on the drawingbuffer made for a
canvas. Example
gl = canvas.getContext(webgl, { preserveDrawingBuffer: false });
discussion seems to have died down here but I'd like to bring up another
issue
In WebGL land we have creation attributes on the drawingbuffer made for a
canvas. Example
gl = canvas.getContext(webgl, { preserveDrawingBuffer: false });
We're working out the details on how to set those options
On Sat, Dec 1, 2012 at 2:44 AM, Ian Hickson i...@hixie.ch wrote:
On Fri, 30 Nov 2012, Gregg Tavares (社ç~T¨) wrote:
on ImageBitmap should zero size canvases just work (and create a 0 sized
ImageBitmap)?
My personal preference is for APIs that just work with zero sizes so I
don't have
On Fri, 30 Nov 2012, Gregg Tavares (社�~T�) wrote:
on ImageBitmap should zero size canvases just work (and create a 0 sized
ImageBitmap)?
My personal preference is for APIs that just work with zero sizes so I
don't have to write lots of special cases for handling zero.
For example
On Fri, Nov 16, 2012 at 3:25 PM, Ian Hickson i...@hixie.ch wrote:
var proxy = canvas.transferControlToProxy());
bikeshed
Proxy with a capital P is an API in ES6 for creating Proxy objects. While I
recognize that this is obviously just a conceptual sketch of your idea and
that you're
On Fri, Nov 16, 2012 at 1:03 PM, Oliver Hunt oli...@apple.com wrote:
postMessage already has an ownership transfer list, we could always extend
the set of transferable types to include a canvas like thing (the context or
some such).
Transferring contexts is tolerable for 2d, but a
On Fri, 16 Nov 2012, Rick Waldron wrote:
On Fri, Nov 16, 2012 at 3:25 PM, Ian Hickson i...@hixie.ch wrote:
var proxy = canvas.transferControlToProxy());
bikeshed
Proxy with a capital P is an API in ES6 for creating Proxy objects.
While I recognize that this is obviously just a
On Fri, 16 Nov 2012, Oliver Hunt wrote:
postMessage already has an ownership transfer list, we could always
extend the set of transferable types to include a canvas like thing (the
context or some such).
That's what CanvasProxy is.
IIRC the last time I suggested having canvas (or at
CanvasProxy is a fine disambiguation.
Rick
On Fri, Nov 16, 2012 at 4:11 PM, Ian Hickson i...@hixie.ch wrote:
On Fri, 16 Nov 2012, Rick Waldron wrote:
On Fri, Nov 16, 2012 at 3:25 PM, Ian Hickson i...@hixie.ch wrote:
var proxy = canvas.transferControlToProxy());
bikeshed
On Fri, 16 Nov 2012, Rick Waldron wrote:
On Fri, Nov 16, 2012 at 4:11 PM, Ian Hickson i...@hixie.ch wrote:
On Fri, 16 Nov 2012, Rick Waldron wrote:
On Fri, Nov 16, 2012 at 3:25 PM, Ian Hickson i...@hixie.ch wrote:
var proxy = canvas.transferControlToProxy());
bikeshed
On Fri, Nov 16, 2012 at 4:48 PM, Ian Hickson i...@hixie.ch wrote:
On Fri, 16 Nov 2012, Rick Waldron wrote:
On Fri, Nov 16, 2012 at 4:11 PM, Ian Hickson i...@hixie.ch wrote:
On Fri, 16 Nov 2012, Rick Waldron wrote:
On Fri, Nov 16, 2012 at 3:25 PM, Ian Hickson i...@hixie.ch wrote:
74 matches
Mail list logo