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

wr2 metabug #312

Closed
glennw opened this issue Jul 13, 2016 · 3 comments
Closed

wr2 metabug #312

glennw opened this issue Jul 13, 2016 · 3 comments

Comments

@glennw
Copy link
Member

@glennw glennw commented Jul 13, 2016

A list of things we need to handle for wr2. Some of these are blockers for merging, but many can be left until after that.

Blockers

  • Tidy up the shaders directory - remove unused shaders - 50% done
  • 3d transforms - 50% done
  • Image stretch size support - mchang working on.
  • Angle gradient support - WIP branch - nearly done.
  • Box shadow caching
  • Non-rectangular clip support - gw working on.
  • Tidy up size of UBO array lengths, based on GPU capabilities
  • Support other border styles
  • Support irregular border corner radii
  • Integrate the other mix-blend-mode / filter shaders.
  • Re-add webgl display item support.
  • transform issue with b.html sidebar.
  • pixel snapping.
  • accuracy bug with angle gradients.
  • square corners on GH bug (gradient clip?).
  • box shadow bug on GH (box shadow clip?).

Optimization ideas

  • Avoid packing primitives for multiple tiles
  • Run parts of tiling / packing / batching on worker threads
  • Optimize / improve the batching algorithm for the alpha batching strategy
  • Add support for partial tile allocations - optimization for transparent_rects
  • Add support for simple rectangle paths - minimize allocation size
  • Support narrowphase detection during tile assignment - optimization for moire demo
  • Support intra-layer occlusion tests - general optimization
  • Support splitting large rounded rectangles - potential general optimization
  • Consider storing all packed primitives in same structure - potential optimization / simpler code
  • Add support for > 8 blend layers per tile - automate the shader code gen?
  • Support narrow phase tile collision test for 3d transformed / perspective layers.

Others

  • Anti-aliasing - mrobinson is prototyping this.
  • PoC fast path rendering strategy (suggest background color + text tiles)
  • Re-enable rasterizing glyphs on worker threads
  • Add more fine grained GPU timer queries - to profile various parts of each frame.
@changm
Copy link
Contributor

@changm changm commented Jul 13, 2016

My list, not sure this should be a blocker for wr2 merging, or it might be categorized as "before we decide on wr for gecko".

  • An evaluation of WR on Windows.
  • A better story for non good GPUs
  • Standalone WR tests outside of Servo (I can permacrash today with a simple html page that has a background image).
@glennw
Copy link
Member Author

@glennw glennw commented Jul 13, 2016

@changm For the non-good GPUs, I'd like to try running WR on top of https://blog.chromium.org/2016/06/universal-rendering-with-swiftshader.html and see what the performance is like.

@glennw
Copy link
Member Author

@glennw glennw commented Aug 28, 2016

wr2 landed! We can open separate bugs for the remaining optimization work above.

@glennw glennw closed this Aug 28, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
2 participants
You can’t perform that action at this time.