- Re-land with clang fix. This allows ANGLE to render directly onto a D3D swapchain in the correct orientation when using the D3D11 renderer. The trick is to add an extra uniform to each shader which takes either the value +1.0 or -1.0. When rendering to a texture, ANGLE sets this value to -1.0. When rendering to the default framebuffer, ANGLE sets this value to +1.0. ANGLE multiplies vertex positions by this value in the VS to invert rendering when appropriate. It also corrects other state (e.g. viewport/scissor rect) and shader built-in values (e.g. gl_FragCoord). This saves a substantial amount of GPU time and lowers power consumption. For example, the old method (where ANGLE renders all content onto an offscreen texture, and then copies/inverts this onto the swapchain at eglSwapBuffers() time) uses about 20% of the GPU each frame on a Lumia 630. Verification: + dEQP GL ES2 tests pass when "present path fast" is enabled + all ANGLE_end2end_tests pass when "present path fast" is enabled BUG=angleproject:1219 Change-Id: I56b339897828753a616d7bae837a2f354dba9c63 Reviewed-on: https://chromium-review.googlesource.com/326730 Tryjob-Request: Austin Kinross <aukinros@microsoft.com> Reviewed-by:Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| d3d11 | Loading commit data... | |
| d3d9 | Loading commit data... | |
| BufferD3D.cpp | Loading commit data... | |
| BufferD3D.h | Loading commit data... | |
| CompilerD3D.cpp | Loading commit data... | |
| CompilerD3D.h | Loading commit data... | |
| DeviceD3D.cpp | Loading commit data... | |
| DeviceD3D.h | Loading commit data... | |
| DisplayD3D.cpp | Loading commit data... | |
| DisplayD3D.h | Loading commit data... | |
| DynamicHLSL.cpp | Loading commit data... | |
| DynamicHLSL.h | Loading commit data... | |
| EGLImageD3D.cpp | Loading commit data... | |
| EGLImageD3D.h | Loading commit data... | |
| FramebufferD3D.cpp | Loading commit data... | |
| FramebufferD3D.h | Loading commit data... | |
| HLSLCompiler.cpp | Loading commit data... | |
| HLSLCompiler.h | Loading commit data... | |
| ImageD3D.cpp | Loading commit data... | |
| ImageD3D.h | Loading commit data... | |
| IndexBuffer.cpp | Loading commit data... | |
| IndexBuffer.h | Loading commit data... | |
| IndexDataManager.cpp | Loading commit data... | |
| IndexDataManager.h | Loading commit data... | |
| ProgramD3D.cpp | Loading commit data... | |
| ProgramD3D.h | Loading commit data... | |
| RenderTargetD3D.cpp | Loading commit data... | |
| RenderTargetD3D.h | Loading commit data... | |
| RenderbufferD3D.cpp | Loading commit data... | |
| RenderbufferD3D.h | Loading commit data... | |
| RendererD3D.cpp | Loading commit data... | |
| RendererD3D.h | Loading commit data... | |
| SamplerD3D.h | Loading commit data... | |
| ShaderD3D.cpp | Loading commit data... | |
| ShaderD3D.h | Loading commit data... | |
| ShaderExecutableD3D.cpp | Loading commit data... | |
| ShaderExecutableD3D.h | Loading commit data... | |
| SurfaceD3D.cpp | Loading commit data... | |
| SurfaceD3D.h | Loading commit data... | |
| SwapChainD3D.h | Loading commit data... | |
| TextureD3D.cpp | Loading commit data... | |
| TextureD3D.h | Loading commit data... | |
| TextureStorage.h | Loading commit data... | |
| TransformFeedbackD3D.cpp | Loading commit data... | |
| TransformFeedbackD3D.h | Loading commit data... | |
| VaryingPacking.cpp | Loading commit data... | |
| VaryingPacking.h | Loading commit data... | |
| VertexBuffer.cpp | Loading commit data... | |
| VertexBuffer.h | Loading commit data... | |
| VertexDataManager.cpp | Loading commit data... | |
| VertexDataManager.h | Loading commit data... | |
| WorkaroundsD3D.h | Loading commit data... | |
| copyimage.cpp | Loading commit data... | |
| copyimage.h | Loading commit data... | |
| copyimage.inl | Loading commit data... | |
| formatutilsD3D.cpp | Loading commit data... | |
| formatutilsD3D.h | Loading commit data... | |
| generatemip.h | Loading commit data... | |
| generatemip.inl | Loading commit data... | |
| imageformats.h | Loading commit data... | |
| loadimage.cpp | Loading commit data... | |
| loadimage.h | Loading commit data... | |
| loadimage.inl | Loading commit data... | |
| loadimageSSE2.cpp | Loading commit data... | |
| loadimage_etc.cpp | Loading commit data... | |
| loadimage_etc.h | Loading commit data... |