1. 25 Mar, 2020 1 commit
  2. 24 Mar, 2020 6 commits
  3. 23 Mar, 2020 3 commits
  4. 20 Mar, 2020 1 commit
    • Subzero: fix CoroutineBegin generation · 22d73d15
      Antonio Maiorano authored
      Rework how instructions are injected at the top of the CoroutineBegin
      function by getting rid of replaceEntryNode, which attempted to replace
      the entry node with a non-entry one. This seemed to work on all targets,
      except for Windows x86-32 (Win32) when passing enough arguments to
      Coroutines. In this case, it would crash in the code generated right
      after this injected code. It looks like the code in replaceEntryNode is
      not quite right, resulting in Subzero creating needless stack allocs per
      argument, and ultimately generating invalid offsets from the stack
      pointer.
      
      Instead of fixing replaceEntryNode, I now simply remember the entryNode
      for CoroutineBegin to use, adding the rest to a separate node for
      basicBlock, and when finalizing the function, I connect entryNode to the
      initial basicBlock node via a branch. This way, there is not messing
      around with function's node list.
      
      This not only fixes the crash, but gets rid of the needless stack
      allocs per arg.
      
      Bug: angleproject:4482
      Change-Id: I13f9c8c43ee07f35302208d9876e6fbdf0b1ad26
      Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/42608
      Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
      Tested-by: 's avatarAntonio Maiorano <amaiorano@google.com>
      Reviewed-by: 's avatarNicolas Capens <nicolascapens@google.com>
  5. 19 Mar, 2020 2 commits
  6. 18 Mar, 2020 2 commits
  7. 17 Mar, 2020 1 commit
    • [vulkan]: Support multiple external semaphore implementations. · 2aa80df1
      David 'Digit' Turner authored
      This CL refactors the implementation of VkSemaphore objects
      in the following way:
      
      - Add the ability to support several external handle types
        concurrently. Before this CL, each platform could support
        a single handle type (e.g. on Linux,
        VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT only).
      
        The changes here will allow future CLs to support more than
        one type per platform (e.g. the Linux implementation may
        support OPAQUE_FD_BIT as well as SYNC_FD_BIT at the same
        time).
      
      - Better implementation of temporary imports. In particular,
        the following sequence now works properly:
      
          1) Create exportable semaphore A.
          2) Export A to an external handle/descriptor.
          3) Signal A.
          4) Temporarily import _another_ handle into A.
          5) A.wait()   // waits on the temporary payload, then discard it.
      
        Before the CL, A would end up, incorrectly, unsignalled. Because
        the export operation created an External instance that held
        the payload modified in 3), which was then discarded after
        the wait() in 5).
      
      - Improved and consistent handling of errors during import/export
        operations, through the use of templates.
      
      + Add a technical note in VkSemaphore.h explaining how everything
        works, since there are several subtle points in the spec.
      
      Bug: b/140421736
      
      Change-Id: I9b6935db3238fec7af8e0c81666e2f5c72075756
      Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/39880Tested-by: 's avatarDavid Turner <digit@google.com>
      Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
      Kokoro-Presubmit: David Turner <digit@google.com>
      Reviewed-by: 's avatarChris Forbes <chrisforbes@google.com>
  8. 16 Mar, 2020 3 commits
    • Update Marl to ca8408f68 · 8656bcb0
      Ben Clayton authored
      Contains a number of optimizations that improve the Subzero coroutine performance up to 10x.
      
      Changes:
          ca8408f68 Scheduler: Reduce the number of mutex locks / unlock.
          575b61e76 Fix compilation of marl::Ticket::onCall()
          e9f312688 waitForWork(): Early out if there work.num > 0
          3196a0539 Scheduler: Use std::deque instead of std::queue
          08a820171 Add flags to marl::Task
          cb3c481d0 Scheduler: Use a separate flag to indicate whether to call notify()
          598c993ec marl::ConditionVariable - use containers::list
          d0c501a9c Add marl::containers::list
          aa1de9091 Benchmarks: Add EventBaton
      
      Commands:
          git subtree pull --prefix third_party/marl https://github.com/google/marl master --squash
      
      Bug: b/140546382
      Change-Id: I2b7adc3c624a1f3aef686de7e0e88c52a5666e3a
    • Squashed 'third_party/marl/' changes from 64d123947..ca8408f68 · 36835bcf
      Ben Clayton authored
      ca8408f68 Scheduler: Reduce the number of mutex locks / unlock.
      575b61e76 Fix compilation of marl::Ticket::onCall()
      e9f312688 waitForWork(): Early out if there work.num > 0
      3196a0539 Scheduler: Use std::deque instead of std::queue
      08a820171 Add flags to marl::Task
      cb3c481d0 Scheduler: Use a separate flag to indicate whether to call notify()
      598c993ec marl::ConditionVariable - use containers::list
      d0c501a9c Add marl::containers::list
      aa1de9091 Benchmarks: Add EventBaton
      
      git-subtree-dir: third_party/marl
      git-subtree-split: ca8408f6890ff447eb5f90d663149f3327b1607e
    • Regres: Update test lists @ 3a50a43d · 440fc995
      SwiftShader Regression Bot authored
      Change-Id: I2833d77b233998725288f4df3ddee5138805981d
      Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/42349Reviewed-by: 's avatarBen Clayton <bclayton@google.com>
      Tested-by: 's avatarBen Clayton <bclayton@google.com>
      Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
  9. 14 Mar, 2020 1 commit
  10. 13 Mar, 2020 13 commits
  11. 12 Mar, 2020 7 commits