-
Vulkan: Implement Android pre-rotation · e488d8b8Ian Elliott authored
As an Android GLES driver on top of Vulkan, ANGLE must pre-rotate rendering on behalf of the application. This involves modifying the vertex shader to multiply gl_Position with a mat2 "rotation matrix". Not doing so means that SurfaceFlinger (SF) will perform a costly rotation blit before presenting every image. Setting WindowSurfaceVk::mPreTransform to mCurrentTransform tells SF to not do the blit. When the surface is rotated 90 or 270 degrees, the width and height must be swapped for: - The swapchain images, and for any depth, stencil, and/or multisample attachments used with the swapchain image. - The viewport, scissor, and render area. Because the Metal back-end shares the TranslatorVulkan, it will define the same preRotation (mat2) DriverUniform that is used for Vulkan. Bug: angleproject:3502 Change-Id: I968dbe8869ba0f50de18dd41f1195e847c06b545 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2038272 Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
e488d8b8
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| Feature.h | Loading commit data... | |
| FeaturesD3D.h | Loading commit data... | |
| FeaturesGL.h | Loading commit data... | |
| FeaturesMtl.h | Loading commit data... | |
| FeaturesVk.h | Loading commit data... | |
| FrontendFeatures.h | Loading commit data... | |
| Platform.h | Loading commit data... |