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

Dynamically grow the texture cache #3282

Merged
merged 5 commits into from Nov 7, 2018
Merged

Commits on Nov 6, 2018

  1. Use one layer per region in the texture cache.

    This simplifies code, and gives us more flexibility around sizing the
    shared texture caches (since we can effectively grow/shrink it by units
    of 1MB rather than 16MB).
    
    Differential Revision: https://phabricator.services.mozilla.com/D10852
    bholley committed Nov 6, 2018
  2. Overhaul texture cache command pipeline to prepare for reallocations.

    A big part of this is handling coalescing, so that if we end up creating
    several new regions in a given frame, we won't allocate/blit/free
    textures unnecessarily.
    
    Differential Revision: https://phabricator.services.mozilla.com/D10853
    bholley committed Nov 6, 2018
  3. Refactor the shared caches into a helper struct.

    Aside from general cleanliness, this allows us to factor the selection
    logic into a helper without a widely-scoped mutable borrow on the entire
    TextureCache.
    
    Differential Revision: https://phabricator.services.mozilla.com/D10854
    bholley committed Nov 6, 2018
  4. Dynamically grow cache textures.

    This is a strict improvement over the status quo, though we'll still
    eventually consume as much memory as before, since we don't try to
    evict at all until we hit the max size. We'll fix that soon, but it's
    worth landing this separately because:
    * It's useful to separate out regressions in the growing logic from in
      any new complex eviction logic.
    * This patch alone is a very large (~100MB) win on AWSY.
    
    Differential Revision: https://phabricator.services.mozilla.com/D10855
    bholley committed Nov 6, 2018

Commits on Nov 7, 2018

  1. Add fuzzy annotations for reftests.

    bholley committed Nov 7, 2018
You can’t perform that action at this time.