Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
  • This project
    • Loading...
  • Sign in / Register
A
angle
  • Project
    • Overview
    • Details
    • Activity
    • Cycle Analytics
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Charts
  • Issues 0
    • Issues 0
    • List
    • Board
    • Labels
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
    • Charts
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Chen Yisong
  • angle
  • Repository

Switch branch/tag
  • angle
  • src
  • libANGLE
  • renderer
  • d3d
  • DynamicHLSL.cpp
Find file
BlameHistoryPermalink
  • Austin Kinross's avatar
    Re-land "Implement EGL_experimental_present_path_angle" · 2a63b3f8
    Austin Kinross authored Feb 08, 2016
    - 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: 's avatarCorentin Wallez <cwallez@chromium.org>
    Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
    2a63b3f8
DynamicHLSL.cpp 39.4 KB
EditWeb IDE
×

Replace DynamicHLSL.cpp

Attach a file by drag & drop or click to upload


Cancel
A new branch will be created in your fork and a new merge request will be started.