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

Next set of ClipScrollTree optimizations #2156

Merged
merged 4 commits into from Dec 4, 2017

Commits on Dec 4, 2017

  1. Refactor ClipScrollTree::update

    Rework ClipScrollTree::update, eliminated members which are now
    duplicated in ClipScrollNodeData and reducing the amount of unnecessary
    work. There are a few main thrusts here:
    
    1. Don't do matrix operations if it's not necessary.
    Transform3D::pre_mul was showing up in CPU profiles, and this makes it
    much less significant.
    2. Don't spend time setting up state if we are not going to recurse.
    3. When we encounter an empty node (including those clipped out), do as
    little as possible. This includes setting update state or calculating
    things for ClipScrollNodeData.
    mrobinson committed Dec 4, 2017
  2. Use transform_rect in prim_store.rs

    Instead of duplicating the functionality of transform_rect in
    get_local_bounding_rect, just use the function from utils.rs.
    mrobinson committed Dec 4, 2017
  3. Extract bounding rect calculation from TransformedRect

    Instead of calculating some things that we no longer need for
    TransformedRect, we simply calculate the screen bounding rect. We can
    then completely remove TransformedRect. This significantly the presence
    of getting the screen bounding rect on the CPU profile.
    mrobinson committed Dec 4, 2017
  4. Remove some unused code from util.rs

    Some of the remaining methods in util.rs are duplicated in euclid
    itself and others are now just simply unused.
    mrobinson committed Dec 4, 2017
You can’t perform that action at this time.