1. 14 Oct, 2020 17 commits
  2. 13 Oct, 2020 11 commits
  3. 12 Oct, 2020 8 commits
  4. 10 Oct, 2020 4 commits
    • Sync extended dirty bit on texture copies. · 3345e5fd
      Jamie Madill authored
      This works around an issue in the GL back-end where the
      extended dirty bit wasn't synced in internal blit draw calls.
      
      This bug is preventing progress with the standalone test runner.
      This temporarily solution can be put in place until we have
      a more complete solution for internal draw state sync.
      
      Bug: angleproject:5160
      Change-Id: Id8ae5efa66b249b008a1535b60493c880f5a06a8
      Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2464824
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
    • Revert 4 Vulkan content defined CLs. · d6b1c17b
      Jamie Madill authored
      Revert "Vulkan: Avoid content restore by detecting no-op stencil"
      This reverts commit 243d0f89.
      
      Revert "Vulkan: Restore at the end of RP if write-after-invalidate"
      This reverts commit e5d52ac3.
      
      Revert "Vulkan: Invalidate/restore depth/stencil separately."
      This reverts commit 61fa0878.
      
      Revert "Vulkan: Move content-defined tracking to ImageHelper"
      This reverts commit 2392e6b3.
      
      Causes crashes in Fuchsia x64 and on ARM.
      
      Original CL message:
      
      Content-defined tracking was done in render targets prior to this
      change.  This had multiple drawbacks:
      
      - When a framebuffer attachment is changed (including the first time
        it's set), it's unknown whether the contents of the attachment is
        defined.
      - Invalidate takes effect at the end of render pass, at which point the
        render target objects may be gone.  Attachment ImageHelpers are
        however correctly tracked.
      
      This change moves content-defined tracking to the ImageHelper itself,
      and tracks it per subresource.  ImageHelper::onWrite() now receives the
      subresource that is being written, and marks it as having defined
      content.
      
      A future optimization can make use of this change to
      ImageHelper::onWrite to track "dirty" subresources.  This can lead to
      the removal of unnecessary barriers when same-kind writes are done on
      different subresources of the image.  See http://anglebug.com/3347#c15
      
      Bug: b/167275320
      Bug: angleproject:4836
      Bug: angleproject:5159
      Change-Id: I93d9dfe973caa7ce70aefa46b5b7d04a8637efb3
      Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2464822Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
    • Suppress more tests on Intel/GL/Mac. · f3f80036
      Jamie Madill authored
      These tests crash/fail when reusing EGL Displays.
      
      Bug: angleproject:4992
      Change-Id: I72dd61543cb055130836428751167e7528cf55af
      Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2464722Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
    • Vulkan: Avoid content restore by detecting no-op stencil · 243d0f89
      Shahbaz Youssefi authored
      Previously, as long as stencil was enabled, it was considered that it is
      also being modified. This caused stencil invalidate to be undone in a
      number of situations, such as:
      
      - glEnable(GL_STENCIL_TEST); // with func/ops default
      - glDrawArrays();
      - glInvalidateFramebuffer([GL_STENCIL_ATTACHMENT]);
      - glClear(GL_DEPTH_BUFFER_BIT);
      - Close render pass
      
      In the above scenario, invalidation of stencil was undone at the end of
      render pass.
      
      In this change, the following cases are considered read-only stencil:
      
      - Func = GL_NEVER, stencilFail = GL_KEEP
      - Func = GL_ALWAYS, stencilPassDepth* = GL_KEEP
      - stencilFail = GL_KEEP, stencilPassDepth* = GL_KEEP
      
      Note that while the above scenario is fixed for no-op stencil, a similar
      issue persists if stencil was not no-op.  The reason stencil invalidate
      is undone in that case is due to the fact that it's assumed any command
      after the invalidate call will be a draw call that outputs to stencil,
      but that is not the case with the glClear call in this example.
      
      Bug: angleproject:4836
      Change-Id: Ie2ea2d52b7c8ee2394f5456773a7ef434e2b2b16
      Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2461465
      Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarIan Elliott <ianelliott@google.com>