Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
  • This project
    • Loading...
  • Sign in / Register
A
angle
  • Project
    • Overview
    • Details
    • Activity
    • Cycle Analytics
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Charts
  • Issues 0
    • Issues 0
    • List
    • Board
    • Labels
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
    • Charts
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Chen Yisong
  • angle
  • Repository

Switch branch/tag
  • angle
  • src
  • libGLESv2
  • entry_points_gles_ext_autogen.cpp
Find file
BlameHistoryPermalink
  • Markus Tavenrath's avatar
    Optimize glDrawElements performance · cb9609fe
    Markus Tavenrath authored Dec 26, 2018
    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/1389988Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
    Commit-Queue: Markus Tavenrath <matavenrath@nvidia.com>
    cb9609fe
entry_points_gles_ext_autogen.cpp 673 KB
EditWeb IDE
×

Replace entry_points_gles_ext_autogen.cpp

Attach a file by drag & drop or click to upload


Cancel
A new branch will be created in your fork and a new merge request will be started.