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 |
|---|---|---|
| .. | ||
| BufferNULL.cpp | Loading commit data... | |
| BufferNULL.h | Loading commit data... | |
| CompilerNULL.cpp | Loading commit data... | |
| CompilerNULL.h | Loading commit data... | |
| ContextNULL.cpp | Loading commit data... | |
| ContextNULL.h | Loading commit data... | |
| DeviceNULL.cpp | Loading commit data... | |
| DeviceNULL.h | Loading commit data... | |
| DisplayNULL.cpp | Loading commit data... | |
| DisplayNULL.h | Loading commit data... | |
| FenceNVNULL.cpp | Loading commit data... | |
| FenceNVNULL.h | Loading commit data... | |
| FramebufferNULL.cpp | Loading commit data... | |
| FramebufferNULL.h | Loading commit data... | |
| ImageNULL.cpp | Loading commit data... | |
| ImageNULL.h | Loading commit data... | |
| PathNULL.cpp | Loading commit data... | |
| PathNULL.h | Loading commit data... | |
| ProgramNULL.cpp | Loading commit data... | |
| ProgramNULL.h | Loading commit data... | |
| ProgramPipelineNULL.cpp | Loading commit data... | |
| ProgramPipelineNULL.h | Loading commit data... | |
| QueryNULL.cpp | Loading commit data... | |
| QueryNULL.h | Loading commit data... | |
| RenderbufferNULL.cpp | Loading commit data... | |
| RenderbufferNULL.h | Loading commit data... | |
| SamplerNULL.cpp | Loading commit data... | |
| SamplerNULL.h | Loading commit data... | |
| ShaderNULL.cpp | Loading commit data... | |
| ShaderNULL.h | Loading commit data... | |
| SurfaceNULL.cpp | Loading commit data... | |
| SurfaceNULL.h | Loading commit data... | |
| SyncNULL.cpp | Loading commit data... | |
| SyncNULL.h | Loading commit data... | |
| TextureNULL.cpp | Loading commit data... | |
| TextureNULL.h | Loading commit data... | |
| TransformFeedbackNULL.cpp | Loading commit data... | |
| TransformFeedbackNULL.h | Loading commit data... | |
| VertexArrayNULL.cpp | Loading commit data... | |
| VertexArrayNULL.h | Loading commit data... |