1. 06 Apr, 2020 1 commit
  2. 04 Apr, 2020 1 commit
  3. 03 Apr, 2020 14 commits
  4. 02 Apr, 2020 7 commits
  5. 01 Apr, 2020 7 commits
  6. 30 Mar, 2020 6 commits
  7. 29 Mar, 2020 2 commits
  8. 28 Mar, 2020 2 commits
    • Regres: Generate coverage data on nightly runs · 536e2c80
      Ben Clayton authored
      Push this to https://github.com/swiftshader-regres/swiftshader-coverage so that it can be viewed at:
      https://swiftshader-regres.github.io/swiftshader-coverage/
      
      There's quite a lot of new code and fixes in this change. The most notable:
      * The regres daily run for the subzero backend now produces combined coverage information for all the test runs. The LLVM backend does not produce coverage information.
      * Regres now takes two additional command line arguments: `gh-user` and `gh-pass` for the swiftshader-regres account. If you omit these, then coverage will not be produced.
      * test.srcDir has been renamed to checkoutDir, as this was confusing with the `src` directory in the repo.
      * The coverage JSON now contains a root field to describe the git revision to which it relates. This prevents the coverage going out of sync with the source.
      * `git.CheckoutRemoteBranch()` drops back to a depth of 1 again. This was only increased to 99 to deal with issues checking out from gitlab, which we don't do any more.
      * Regres  now builds using `third_party/llvm-10.0`
      * Fixed the `--limit` regres command line flag which wasn't actually limiting, as it was using the len() on the number of groups, not the number of tests.
      
      Bug: b/152192800
      Bug: b/152339534
      Change-Id: I2d25735f485097d4efb080546d989056a3a8aab3
      Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/43168
      Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
      Reviewed-by: 's avatarNicolas Capens <nicolascapens@google.com>
      Tested-by: 's avatarBen Clayton <bclayton@google.com>
    • Subzero Coroutines: Use ultra-low-level marl APIs · c346653b
      Ben Clayton authored
      Instead of using the `marl::Event` synchronization primitives, drop all the way down to using `marl::Scheduler::Fiber` APIs directly, and use the new `marl::Scheduler::Fiber::wait()` function that does not take a lock.
      
      Provides around another 2x performance boost:
      
      ```
      go run ./third_party/marl/tools/cmd/benchdiff/main.go pre.json post.json
      Delta                | Test name                                | (A) pre.json | (B) post.json
      -2.08x -81.186µs     | Coroutines/Fibonacci/iterations:512      | 156.202µs    | 75.016µs
      -2.10x -668.201µs    | Coroutines/Fibonacci/iterations:4096     | 1.275069ms   | 606.868µs
      -2.11x -5.359326ms   | Coroutines/Fibonacci/iterations:32768    | 10.166126ms  | 4.8068ms
      -2.12x -10.342µs     | Coroutines/Fibonacci/iterations:64       | 19.585µs     | 9.243µs
      -2.13x -2.784542745s | Coroutines/Fibonacci/iterations:16777216 | 5.251299045s | 2.4667563s
      -2.13x -347.220746ms | Coroutines/Fibonacci/iterations:2097152  | 653.812928ms | 306.592182ms
      -2.14x -43.615678ms  | Coroutines/Fibonacci/iterations:262144   | 82.017312ms  | 38.401634ms
      ```
      
      Bug: b/145754674
      Change-Id: I5f6b0c8c92af645cc2a825c6f1e2769b2440638e
      Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/42850Tested-by: 's avatarBen Clayton <bclayton@google.com>
      Reviewed-by: 's avatarAntonio Maiorano <amaiorano@google.com>
      Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>