Optimize ANGLE on D3D11 to remove an extra blit
Support the extension EGL_ANGLE_surface_orientation, which allows ANGLE to skip an extra blit from an intermediate buffer to the D3D11 swap chain back buffer for inverting the Y axis due to the difference in coordinate systems. Instead we do our inverting in RasterizerGLES3.
When running with --rendering-driver opengl3_angle --verbose you should see these in the output:
EGL: EGL_ANGLE_surface_orientation is supported.
EGL: Using optimal surface orientation: Invert Y
I have verified with RenderDoc that this replaces two Draw calls (one for glBlitFramebuffer from the render target FBO to the "screen" which is ANGLE's intermediate buffer with inverted Y, another for drawing ANGLE's intermediate buffer to the swap chain's back buffer) with one CopySubresourceRegion call (glBlitFramebuffer from the render target FBO to the swap chain's back buffer).
@bruvzg Can you review this?
Thanks!