StateManager11: Defer RenderTarget invalidation to draw.
Although this adds a boolean check (and state flag maintenance) cost
to each draw call, it makes ANGLE's internal life a lot simpler
because it doesn't have to process a framebuffer change until the
draw call. It turns out there are a few dependent checks of the
Framebuffer that aren't always easy to do. In one test, Context
destruction was triggering RenderTarget invalidation, after the
Context had already freed the Framebuffer manager.
This also fixes the problem in feature level 9_3 with framebuffer
invalidation affecting the internal dirty bit set. (Note that it
still dirties the Framebuffer for the next frame).
BUG=chromium:767279
BUG=angleproject:2151
Change-Id: I74d61bddf9926004a04f712a9f9eb1205d5df0e1
Reviewed-on: https://chromium-review.googlesource.com/676657Reviewed-by:
Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Showing
Please
register
or
sign in
to comment