This patch works using a notification scheme - whenever a Texture or Renderbuffer changes in such a way as to recreate its RenderTarget, we pass a signal to the Framebuffer to invalidate some internal state. Everything is entirely tracked in the Renderer11 layer, and the GL layer is left untouched. A RenderTarget11 now tracks points to which it is bound, and the Framebuffer11 is mostly responsible for managing those links. The three locations where we notify a Framebuffer when its bound RenderTargets might be dirty are: 1) RenderTarget11::~RenderTarget 2) EGLImageD3D::copyToLocalRendertarget 3) TextureStorage11_2D::useLevelZeroWorkaroundTexture This patch gives about a 10% score increase in the D3D11 draw call benchmark on my system. BUG=angleproject:1260 Change-Id: Ide38aeadff4a2681bf5bd685e8ca3c9e2612a380 Reviewed-on: https://chromium-review.googlesource.com/327255Reviewed-by:Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
| Name |
Last commit
|
Last update |
|---|---|---|
| build | Loading commit data... | |
| doc | Loading commit data... | |
| extensions | Loading commit data... | |
| include | Loading commit data... | |
| infra/config | Loading commit data... | |
| samples | Loading commit data... | |
| scripts | Loading commit data... | |
| src | Loading commit data... | |
| util | Loading commit data... | |
| .clang-format | Loading commit data... | |
| .gitattributes | Loading commit data... | |
| .gitignore | Loading commit data... | |
| AUTHORS | Loading commit data... | |
| BUILD.gn | Loading commit data... | |
| CONTRIBUTORS | Loading commit data... | |
| DEPS | Loading commit data... | |
| LICENSE | Loading commit data... | |
| README.chromium | Loading commit data... | |
| README.md | Loading commit data... | |
| angle.isolate | Loading commit data... | |
| angle_on_all_platforms.isolate | Loading commit data... | |
| codereview.settings | Loading commit data... |