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:Jamie Madill <jmadill@chromium.org> Commit-Queue: Markus Tavenrath <matavenrath@nvidia.com>
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| cgl | Loading commit data... | |
| egl | Loading commit data... | |
| glx | Loading commit data... | |
| wgl | Loading commit data... | |
| BlitGL.cpp | Loading commit data... | |
| BlitGL.h | Loading commit data... | |
| BufferGL.cpp | Loading commit data... | |
| BufferGL.h | Loading commit data... | |
| ClearMultiviewGL.cpp | Loading commit data... | |
| ClearMultiviewGL.h | Loading commit data... | |
| CompilerGL.cpp | Loading commit data... | |
| CompilerGL.h | Loading commit data... | |
| ContextGL.cpp | Loading commit data... | |
| ContextGL.h | Loading commit data... | |
| DispatchTableGL_autogen.cpp | Loading commit data... | |
| DispatchTableGL_autogen.h | Loading commit data... | |
| DisplayGL.cpp | Loading commit data... | |
| DisplayGL.h | Loading commit data... | |
| FeatureSupportGL.md | Loading commit data... | |
| FenceNVGL.cpp | Loading commit data... | |
| FenceNVGL.h | Loading commit data... | |
| FramebufferGL.cpp | Loading commit data... | |
| FramebufferGL.h | Loading commit data... | |
| FunctionsGL.cpp | Loading commit data... | |
| FunctionsGL.h | Loading commit data... | |
| ImageGL.cpp | Loading commit data... | |
| ImageGL.h | Loading commit data... | |
| PathGL.cpp | Loading commit data... | |
| PathGL.h | Loading commit data... | |
| ProgramGL.cpp | Loading commit data... | |
| ProgramGL.h | Loading commit data... | |
| ProgramPipelineGL.cpp | Loading commit data... | |
| ProgramPipelineGL.h | Loading commit data... | |
| QueryGL.cpp | Loading commit data... | |
| QueryGL.h | Loading commit data... | |
| RenderbufferGL.cpp | Loading commit data... | |
| RenderbufferGL.h | Loading commit data... | |
| RendererGL.cpp | Loading commit data... | |
| RendererGL.h | Loading commit data... | |
| SamplerGL.cpp | Loading commit data... | |
| SamplerGL.h | Loading commit data... | |
| ShaderGL.cpp | Loading commit data... | |
| ShaderGL.h | Loading commit data... | |
| StateManagerGL.cpp | Loading commit data... | |
| StateManagerGL.h | Loading commit data... | |
| SurfaceGL.cpp | Loading commit data... | |
| SurfaceGL.h | Loading commit data... | |
| SyncGL.cpp | Loading commit data... | |
| SyncGL.h | Loading commit data... | |
| TextureGL.cpp | Loading commit data... | |
| TextureGL.h | Loading commit data... | |
| TransformFeedbackGL.cpp | Loading commit data... | |
| TransformFeedbackGL.h | Loading commit data... | |
| VertexArrayGL.cpp | Loading commit data... | |
| VertexArrayGL.h | Loading commit data... | |
| WorkaroundsGL.h | Loading commit data... | |
| formatutilsgl.cpp | Loading commit data... | |
| formatutilsgl.h | Loading commit data... | |
| functionsgl_enums.h | Loading commit data... | |
| functionsgl_typedefs.h | Loading commit data... | |
| generate_gl_dispatch_table.py | Loading commit data... | |
| gl_bindings_data.json | Loading commit data... | |
| null_functions.cpp | Loading commit data... | |
| null_functions.h | Loading commit data... | |
| renderergl_utils.cpp | Loading commit data... | |
| renderergl_utils.h | Loading commit data... |