This patch moves the robust resource init logic to the GL front-end. Instead of initializing texture resources immediately on creation in D3D11, it defers the clear until before a draw call in some cases, or skips the update if we can determine if a texture (or other resource) has been fully initialized. Currently lazy init is only implemented for Textures, Renderbuffers, and Surfaces. Various places where lazy resource init is triggered: * Framebuffer operations (Draw, Blit, CopyTexImage, Clear, ReadPixels) * Texture operations (SubImage, GenerateMipmap, CopyTexImage) Some efficiency gains remain to be implemented, such as when a SubImage call fills the entire object. Similarly for Blit, and a few other operations. In these cases we can skip lazy init as an optimization. Edge cases with EGLImage are mostly untested. BUG=angleproject:2107 Change-Id: I2bf3a69b1eae0d4feeb5b17daca23451f1037be8 Reviewed-on: https://chromium-review.googlesource.com/576058 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:Corentin Wallez <cwallez@chromium.org>
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| ANGLETest.cpp | Loading commit data... | |
| ANGLETest.h | Loading commit data... | |
| ConstantFoldingTest.cpp | Loading commit data... | |
| ConstantFoldingTest.h | Loading commit data... | |
| ShaderCompileTreeTest.cpp | Loading commit data... | |
| ShaderCompileTreeTest.h | Loading commit data... | |
| angle_test_configs.cpp | Loading commit data... | |
| angle_test_configs.h | Loading commit data... | |
| angle_test_instantiate.cpp | Loading commit data... | |
| angle_test_instantiate.h | Loading commit data... | |
| compiler_test.cpp | Loading commit data... | |
| compiler_test.h | Loading commit data... | |
| draw_call_perf_utils.cpp | Loading commit data... | |
| draw_call_perf_utils.h | Loading commit data... | |
| gl_raii.h | Loading commit data... |