1. 26 Oct, 2017 1 commit
  2. 24 Oct, 2017 1 commit
  3. 19 Oct, 2017 1 commit
  4. 11 Oct, 2017 1 commit
  5. 10 Oct, 2017 1 commit
  6. 06 Oct, 2017 3 commits
  7. 03 Oct, 2017 8 commits
  8. 02 Oct, 2017 6 commits
  9. 29 Sep, 2017 5 commits
  10. 28 Sep, 2017 4 commits
  11. 27 Sep, 2017 6 commits
  12. 26 Sep, 2017 1 commit
  13. 25 Sep, 2017 1 commit
  14. 21 Sep, 2017 1 commit
    • Use atomic operations to specify shared memory access order · 6b164c33
      Alexis Hetu authored
      TSAN detected many data race errors in the SwiftShader Renderer
      class. x86 has a strong memory ordering model which guarantees
      that changes are observed in the same order by other threads.
      However, C++ does not provide such guarantees unless specified
      using atomic operations. In order to fix these, a new AtomicInt
      class was added which is a basically a wrapper class for
      std::atomic<int> and which only exposes the portion of the API
      required by SwiftShader.
      
      Since std::atomic isn't available on older versions of Android,
      a fallback class was implemented without using std::atomic, which
      is closer to the previous implementation. Both classes appear to
      work properly after performing a few dEQP tests. Both also perform
      similarly.
      
      A few minor changes were made in order to attempt to reduce the use
      of atomic integer operations when possible.
      
      Change-Id: Ife6d3a2b6113346f8f8163b692e79c2a0e03b22f
      Reviewed-on: https://swiftshader-review.googlesource.com/12308Reviewed-by: 's avatarNicolas Capens <nicolascapens@google.com>
      Tested-by: 's avatarNicolas Capens <nicolascapens@google.com>