• Show log

    Commit

  • Hash : cb9609fe
    Author : Markus Tavenrath
    Date : 2018-12-26T00:52:44

    Optimize glDrawElements performance
    
    A call to glDrawElements results in a calling depth of up to 4
    * glDrawElements
    * gl::Context::DrawElements
    * rx::ContextGL::DrawElements
    * VertexArrayGL::syncDrawState.
    
    Each function call has to save/restore a lot of registers which
    results in a stall in the prologue of rx::ContextGL::DrawElements
    due to memory bandwidth limitations.
    
    The main change is the function gl::Context::DrawElements being
    inlined to reduce the calling depth by one. In addition the call
    to ContextGL::syncDrawElementsState is now protected so that it
    gets called only if it's required. Finally a few small getter
    functions have been inlined where the calling code was bigger
    than the actual function.
    
    In total this change improves performance of the
    DrawElementsPerfBenchmark.Run/gl benchmark by 16%.
    
    Bug: angleproject:2966
    
    Change-Id: I423d18452f2f5b520ab52850fda2054e1da86991
    Reviewed-on: https://chromium-review.googlesource.com/c/1389988
    Reviewed-by: Jamie Madill <jmadill@chromium.org>
    Commit-Queue: Markus Tavenrath <matavenrath@nvidia.com>
    

  • Properties

  • Git HTTP https://git.kmx.io/kc3-lang/angle.git
    Git SSH git@git.kmx.io:kc3-lang/angle.git
    Public access ? public
    Description

    A conformant OpenGL ES implementation for Windows, Mac, Linux, iOS and Android.

    Homepage

    Github

    Users
    thodg_m kc3_lang_org thodg_w www_kmx_io thodg_l thodg
    Tags