1. 24 Mar, 2021 1 commit
  2. 17 Mar, 2021 1 commit
  3. 16 Mar, 2021 1 commit
    • Fix multiview renderpass queries · a0aeb64e
      Nicolas Capens authored
      The spec states that "If queries are used while executing a render pass
      instance that has multiview enabled, the query uses N consecutive query
      indices in the query pool (starting at query) where N is the number of
      bits set in the view mask in the subpass the query is used in. How the
      numerical results of the query are distributed among the queries is
      implementation-dependent. For example, some implementations may write
      each view’s results to a distinct query, while other implementations
      may write the total result to the first query and write zero to the
      other queries."
      
      This wasn't working properly for occlusion queries, but we missed it
      because dEQP doesn't provide coverage for this case if timestamp queries
      are not supported. This change fixes it for both query types.
      
      Note that for occlusion queries we write the total result to the first
      query, and set the remaining query results to 0, as explicitly allowed
      by the spec.
      
      For timestamp queries each query result is a valid timestamp (note that
      the spec also allows for only the first query to be a timestamp, while
      the remaining ones are zero).
      
      Bug: b/142643809
      Change-Id: I531248c2822c5f68d8636d4a3d153082c48cac1d
      Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/53668
      Presubmit-Ready: Nicolas Capens <nicolascapens@google.com>
      Tested-by: 's avatarNicolas Capens <nicolascapens@google.com>
      Reviewed-by: 's avatarAlexis Hétu <sugoi@google.com>
  4. 15 Mar, 2021 1 commit
  5. 13 Mar, 2021 1 commit
  6. 12 Mar, 2021 5 commits
  7. 11 Mar, 2021 2 commits
  8. 10 Mar, 2021 1 commit
  9. 08 Mar, 2021 2 commits
  10. 05 Mar, 2021 1 commit
  11. 04 Mar, 2021 1 commit
    • Implement VK_KHR_timeline_semaphore · 6846389f
      Sean Risser authored
      Timeline semaphores track a monotonically increasing uint64_t that
      serves as a signal to any number of threads on the device or the host.
      Threads and the host wait on the value of the payload to become a
      specific value, then unblock. Or they can signal the semaphore and
      update its value, unblocking all threads waiting on that value in the
      process.
      
      Clang's Thread Safety Analysis is not used for TimelineSemaphore as
      it has a bug that prevents it from properly analyzing lambdas that access
      guarded resources.
      
      Change-Id: Iafd95b8eac11beea21c00df87ca7ca1e51c77c64
      Bug: b/147738281
      Test: dEQP-VK.api.info.vulkan1p2_limits_validation.timeline_semaphore
      Test: dEQP-VK.synchronization.basic.timeline_semaphore.*
      Test: dEQP-VK.synchronization.timeline_semaphore.*
      Test: dEQP-VK.synchronization.op.single_queue.timeline_semaphore.*
      Test: dEQP-VK.synchronization.cross_instance.*
      Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/52148
      Kokoro-Result: kokoro <noreply+kokoro@google.com>
      Tested-by: 's avatarSean Risser <srisser@google.com>
      Reviewed-by: 's avatarNicolas Capens <nicolascapens@google.com>
      Reviewed-by: 's avatarAntonio Maiorano <amaiorano@google.com>
      Commit-Queue: Sean Risser <srisser@google.com>
  12. 03 Mar, 2021 1 commit
  13. 26 Feb, 2021 2 commits
  14. 24 Feb, 2021 6 commits
  15. 22 Feb, 2021 4 commits
  16. 20 Feb, 2021 4 commits
  17. 19 Feb, 2021 6 commits