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

refactor: use local loop variable in copyFromFrameBuffer #782

Merged
merged 3 commits into from
Aug 5, 2020

Commits on Jul 14, 2020

  1. refactor: use local loop variable in copyFromFrameBuffer

    This change allows the compiler to keep the loop variable (readPtr) in a
    register and therefore avoid cache miss in what is essentially a more general
    memcpy.
    
    By analysing the assembly generated by both gcc 6.3.1, gcc 4.8.5 and clang 5.0
    I found that these compilers interpret the mutable reference such that it
    has to be written back into memory in every iteration.
    
    The performance regression  was when upgrading the compilers for Foundry's
    Nuke. Our original build of OpenEXR 2.2.0 built with GCC 4.1.2 did not exhibit
    this behaviour. It yielded significant speed up in Nuke's writing speed.
    
    Signed-off-by: Gyula Gubacsi <[email protected]>
    FnGyula committed Jul 14, 2020
    Configuration menu
    Copy the full SHA
    2dc4965 View commit details
    Browse the repository at this point in the history

Commits on Aug 5, 2020

  1. Configuration menu
    Copy the full SHA
    db7a481 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    82d3d53 View commit details
    Browse the repository at this point in the history