1. 30 Nov, 2017 2 commits
  2. 29 Nov, 2017 7 commits
  3. 28 Nov, 2017 3 commits
  4. 27 Nov, 2017 4 commits
  5. 25 Nov, 2017 1 commit
  6. 24 Nov, 2017 7 commits
  7. 23 Nov, 2017 4 commits
  8. 22 Nov, 2017 10 commits
    • D3D11: Remove "fast path" check in DrawElements. · c7b0cf2a
      Jamie Madill authored
      This was a bit of an anti-pattern. Many draw calls were being handled
      in the "slow" path, so the repeated checks were slowing the draw calls
      down more than the fast path was speeding things up.
      
      The new code tries to do all the checking for index ranges and restart
      index once only, and lazily when possible. The 'start' vertex is a bit
      of a special case - we known when the primitive restart index is
      not enabled, this will be always the same as the 'base' vertex (zero
      if the base vertex is not enabled - only currently available through
      draw indirect commands).
      
      In future work we can look at implementing a lazy evaluation for draw
      indirect commands so we don't need to do a check there either.
      
      Reduces overhead in the D3D11 indexed rendering perf test such that it
      leads to an increased score of about 5%.
      
      BUG=angleproject:2229
      
      Change-Id: I6330f30b66d1810624d03f4e7a012bf2391a3bf3
      Reviewed-on: https://chromium-review.googlesource.com/764677
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
    • Fix reinterpret_cast size missmatch warning on 64-bit Windows. · 5a654f5f
      Geoff Lang authored
      Change-Id: I9c4b102c60abb90281f778833be9b1d5bfdcb8f1
      Reviewed-on: https://chromium-review.googlesource.com/786110Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
      Commit-Queue: Geoff Lang <geofflang@chromium.org>
    • Optimize Texture initialization tracking with extra caching. · e51ba63b
      Geoff Lang authored
      In both Texture and State, track when all images/textures are
      initailized so that State::clearUnclearedActiveTextures can early-exit.
      
      Improves performance on the WebGL Aquarium by 26% (23->29 FPS) with 30000
      fish.
      
      BUG=angleproject:2188
      
      Change-Id: Ie2860a81d7be19ee87262325d8cf27bde43f80b8
      Reviewed-on: https://chromium-review.googlesource.com/782339
      Commit-Queue: Geoff Lang <geofflang@chromium.org>
      Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
    • Support arrays of arrays in the API · 465835d6
      Olli Etuaho authored
      The ShaderVariable class that is used as an interface between the
      compiler and the rest of the code gets arrays of arrays support.
      
      Array of array variables are passed from the compiler just like any
      other variables. However, when stored in Program state each innermost
      array constitutes a separate variable. This is done to make the
      implementation match the GLES specification for program interface
      query APIs.
      
      This will be tested more fully once support for parsing arrays of
      arrays lands in the compiler.
      
      TEST=angle_end2end_tests, angle_unittests
      BUG=angleproject:2125
      
      Change-Id: I0f7159000f039be92a87a52b3b68cd9a215a21cb
      Reviewed-on: https://chromium-review.googlesource.com/684742
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
    • Apply Chromium style fixes. · acf2f3ad
      Jamie Madill authored
      This addresses several minor code quality issues that are validated
      in Chromium, but not yet applied to ANGLE:
      
      * constructors and destructors must be defined out-of-line
      * auto is not allowed for simple pointer types
      * use override everywhere instead of virtual
      * virtual functions must also be defined out-of-line
      
      Slightly reduces binary size for me (~2k on Win, 150k on Linux).
      
      Bug: angleproject:1569
      Change-Id: I073ca3365188caf5f29fb28d9eb207903c1843e6
      Reviewed-on: https://chromium-review.googlesource.com/779959
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
    • Fix ComputeGenericHash. · f1b47e89
      Jamie Madill authored
      ANGLE's internal hash maps would run MurmurHash on c++ structs to
      come up with hash values. Since the hash ran on 4 byte words only,
      it would have no understanding that sometimes our structs would only
      have meaninful data in the first N bytes, and would include the
      garbage at the end in the hash calculation. This fixes the problem by
      forcing our structs to be aligned at compile-time.
      
      It also adds custom copy operators for a few classes to ensure that
      all bits are copied when the struct is initialized, including the
      padding.
      
      Bug: angleproject:1569
      Bug: chromium:721648
      Change-Id: I4d11f6e12d9a067b36e1416c7ed15586eff99aab
      Reviewed-on: https://chromium-review.googlesource.com/783990
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
    • ES31: Implement creation and attaching geometry shader on OpenGL · 89be29a5
      Jiawei Shao authored
      This patch intends to implement the creation of a geometry shader
      and attaching a geometry shader to a program on OpenGL back-ends.
      
      This patch also adds all geometry shader related dEQP-GLES31 test
      failures to deqp_gles31_test_expectations.txt.
      
      BUG=angleproject:1941
      TEST=angle_end2end_tests
      
      Change-Id: Ib0b497030255b15dacd967e48bc59eef0009af46
      Reviewed-on: https://chromium-review.googlesource.com/757979
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
    • Reland "Update cq.cfg for new compile-only builders." · 6e94c455
      Jamie Madill authored
      This is a reland of cc93cebf
      
      Re-landing after mb_config.pyl fix.
      
      Original change's description:
      > Update cq.cfg for new compile-only builders.
      >
      > This removes the x64 versions of the Windows tests from the ANGLE CQ.
      > They are still available to run as optional try jobs, if we suspect
      > a failure. This should reduce the amount of test duplication while
      > still keeping complete coverage.
      >
      > It also updates the Clang builder to the MSVC builder, since Chrome
      > has switched to Clang by default on Windows, and the clang builder
      > was a deprecated version of the MSVC builder anyway.
      >
      > Bug: chromium:786044
      > Change-Id: I786fe85dcdaa57b55b0b44244797c9285c577ea2
      > Reviewed-on: https://chromium-review.googlesource.com/782402
      > Reviewed-by: Geoff Lang <geofflang@chromium.org>
      > Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
      > Commit-Queue: Jamie Madill <jmadill@chromium.org>
      
      Bug: chromium:786044
      Change-Id: I85d1fe95d12a29e91755303423dd151450bb6a3b
      Reviewed-on: https://chromium-review.googlesource.com/784232Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
    • Revert "Update cq.cfg for new compile-only builders." · cce013c9
      Jamie Madill authored
      This reverts commit cc93cebf.
      
      Reason for revert: There was a typo in mb_config.py.
      
      https://build.chromium.org/deprecated/tryserver.chromium.angle/builders/win_angle_compile_x64_dbg_ng/builds/0/steps/analyze/logs/stdio
      
      MBErr: Builder name "win_angle_compile_x64_dbg_ng"  not found under masters[tryserver.chromium.angle] in "E:\b\c\b\win\src\tools\mb\mb_config.pyl"
      
      Original change's description:
      > Update cq.cfg for new compile-only builders.
      > 
      > This removes the x64 versions of the Windows tests from the ANGLE CQ.
      > They are still available to run as optional try jobs, if we suspect
      > a failure. This should reduce the amount of test duplication while
      > still keeping complete coverage.
      > 
      > It also updates the Clang builder to the MSVC builder, since Chrome
      > has switched to Clang by default on Windows, and the clang builder
      > was a deprecated version of the MSVC builder anyway.
      > 
      > Bug: chromium:786044
      > Change-Id: I786fe85dcdaa57b55b0b44244797c9285c577ea2
      > Reviewed-on: https://chromium-review.googlesource.com/782402
      > Reviewed-by: Geoff Lang <geofflang@chromium.org>
      > Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
      > Commit-Queue: Jamie Madill <jmadill@chromium.org>
      
      TBR=geofflang@chromium.org,jmadill@chromium.org,tandrii@chromium.org
      
      Change-Id: If13d3d69f0a1facd3876858afdaf0577f6ab1cb7
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: chromium:786044
      Reviewed-on: https://chromium-review.googlesource.com/784070Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
    • Update cq.cfg for new compile-only builders. · cc93cebf
      Jamie Madill authored
      This removes the x64 versions of the Windows tests from the ANGLE CQ.
      They are still available to run as optional try jobs, if we suspect
      a failure. This should reduce the amount of test duplication while
      still keeping complete coverage.
      
      It also updates the Clang builder to the MSVC builder, since Chrome
      has switched to Clang by default on Windows, and the clang builder
      was a deprecated version of the MSVC builder anyway.
      
      Bug: chromium:786044
      Change-Id: I786fe85dcdaa57b55b0b44244797c9285c577ea2
      Reviewed-on: https://chromium-review.googlesource.com/782402Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
      Reviewed-by: 's avatarAndrii Shyshkalov <tandrii@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
  9. 21 Nov, 2017 2 commits