1. 18 Mar, 2020 1 commit
  2. 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>
  3. 16 Mar, 2020 1 commit
  4. 14 Mar, 2020 1 commit
  5. 13 Mar, 2020 13 commits
  6. 12 Mar, 2020 9 commits
  7. 11 Mar, 2020 8 commits
  8. 10 Mar, 2020 1 commit
  9. 09 Mar, 2020 1 commit
  10. 06 Mar, 2020 2 commits
  11. 05 Mar, 2020 1 commit
  12. 04 Mar, 2020 1 commit