1. 28 10月, 2021 4 次提交
    • M
      Rewrite asynchronous job/futures code to not be based on std::future. · fe3c61a7
      Matt Pharr 提交于
      The Future class is now gone, and its functionality ("is the result
      ready?", "give me the result value") is now folded into AsyncJob.  This
      allows retrieving the result from multiple threads, with synchronization
      handled in AsyncJob.  (This is more flexible than std::future allows, since
      we don't need either move semantics or the ability to pass along exceptions
      when the future is harvested.)
      
      This fixes a number of race conditions that helgrind was flagging during
      startup with complex scenes.  (Our prior use of std::future wasn't correct
      in that we had unprotected access attempts from multiple threads.)
      fe3c61a7
    • M
      Merge branch 'master' of github.com:mmp/pbrt-v4 · 1ab70a56
      Matt Pharr 提交于
      1ab70a56
    • M
      ThreadLocal::Get(): hold reader-writer mutex before calling the callback. · 7d063ff7
      Matt Pharr 提交于
      This allows users to not need to worry about thread safety in their
      callback implementations. In particular, this fixes a race in the
      BVHAggregate's use of ThreadLocal that rarely led to crashes or complaints
      about malloc heap corruption during BVH construction.
      7d063ff7
    • M
      Use mutex in ElapsedSeconds() to protect static variable. · ed4e0290
      Matt Pharr 提交于
      Given C++'s rules for initialization of statics, I don't think this is
      strictly necessary, but it makes helgrind happy and causes no harm.
      ed4e0290
  2. 27 10月, 2021 9 次提交
  3. 26 10月, 2021 6 次提交
  4. 25 10月, 2021 2 次提交
  5. 23 10月, 2021 1 次提交
  6. 22 10月, 2021 1 次提交
  7. 21 10月, 2021 3 次提交
  8. 17 10月, 2021 2 次提交
  9. 15 10月, 2021 1 次提交
  10. 12 10月, 2021 5 次提交
  11. 11 10月, 2021 1 次提交
    • M
      Cleanup Material::GetBSDF() interface · fa1047e9
      Matt Pharr 提交于
      Now Material implementations have a GetBxDF() method rather than GetBSDF()
      and they directly return their associated BxDF type, whatever it may be. This
      slightly cleans up all of the GetBxDF() method implementations with no real
      impact on the code that calls them.
      fa1047e9
  12. 10 10月, 2021 2 次提交
  13. 09 10月, 2021 1 次提交
  14. 08 10月, 2021 2 次提交