Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unified time slicing tasks #2655

Open
pjcozzi opened this issue Apr 21, 2015 · 9 comments
Open

Unified time slicing tasks #2655

pjcozzi opened this issue Apr 21, 2015 · 9 comments

Comments

@pjcozzi
Copy link
Contributor

pjcozzi commented Apr 21, 2015

To throttle work on the main thread like:

  • Quadtree tile updates
  • Billboard/label terrain clamping
  • Model texture/buffer creation. WebGL resource creation in general.
  • Compute pass, Add compute render pass #751, since imagery reprojection uses it.

Right now, each has their own system, which does not provide real control over avoiding dropping frames.

@pjcozzi
Copy link
Contributor Author

pjcozzi commented Jun 11, 2015

@mramato
Copy link
Contributor

mramato commented Aug 26, 2015

For non-immediate tasks in Cesium, requestIdleCallback looks like it could be really useful. It just got added to Chrome Canary. Not sure how much traction it has for other browsers.

@mramato
Copy link
Contributor

mramato commented Aug 27, 2015

Here's a much better write up on requestIdleCallback.

@pjcozzi
Copy link
Contributor Author

pjcozzi commented Oct 27, 2015

There is some work-in-progress in the 3d-tiles branch: JobScheduler.

@pjcozzi
Copy link
Contributor Author

pjcozzi commented Oct 27, 2015

This will also expand into scheduling work across workers, e.g., for geometric decompression. Users may just schedule a task, and it might have to execute time sliced in the main thread or it may be scheduled on a worker.

CC #1487

@pjcozzi
Copy link
Contributor Author

pjcozzi commented Oct 27, 2015

There is not a ton of information on this web apps so we will need to look at desktop/console engines. Keep in mind that web workers are much more limited.

@mramato
Copy link
Contributor

mramato commented Oct 27, 2015

There are also time-sliced tasks that we don't currently do in core Cesium that we'll want to be able to take advantage of this, such as incremental CZML/KML parsing to avoid locking up the browser for large documents.

@lilleyse
Copy link
Contributor

lilleyse commented May 1, 2017

More notes, directly from the code:

Potential additional types:

  • CPU - e.g., for getting terrain heights for billboards/labels
  • GPUCompute - e.g., for reprojecting imagery using GPGPU
  • Content specific - e.g., favor terrain over buildings or vice versa

@lilleyse
Copy link
Contributor

lilleyse commented May 1, 2017

More thoughts about expanding the job scheduler to go beyond renderer resources: #5249 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants