1. 04 Feb, 2019 3 commits
  2. 02 Feb, 2019 2 commits
  3. 01 Feb, 2019 9 commits
  4. 31 Jan, 2019 3 commits
  5. 30 Jan, 2019 4 commits
  6. 29 Jan, 2019 4 commits
    • Roll dEQP (January/February 2019). · 915d4068
      Jamie Madill authored
      Includes some new GLES tests added by kainino@.
      
      Bug: angleproject:3112
      Change-Id: I0d81c8263eab3473dec49bb0cf3bca73cd38c6fb
      Reviewed-on: https://chromium-review.googlesource.com/c/1441051
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
    • Vulkan: Implement GLsync and EGLSync fence syncs · 82fddcb1
      Shahbaz Youssefi authored
      That is required in GLES 3 for GLsync and EGL_KHR_fence_sync and
      EGL_KHR_wait_sync (or EGL 1.5) for EGLSync.
      
      The two constructs (GLsync and EGLSync) have similar semantics and share
      the implementation on the Vulkan backend.
      
      The implementation of a fence sync object is achieved through the
      combined use of a vkEvent and the implicit vkFence inserted at the end
      of every submission.  Imagine the following command buffer:
      
          glDraw      : Draw
          glCreateSync: Set Event  <-- insertion of fence sync
          glDraw      : Draw
                      : Signal Fence <-- implicit fence at the end of submission
          glFlush     : Submit
      
      Assume the serial S is associated to this submission.  The following
      hold:
      
      - If event is set, the fence sync is signaled
      - If S is already finished, the fence sync is signaled
      - If client is waiting on the sync and S is not yet flushed, there will
        be a deadlock (unless multi-threaded and another thread performs the
        flush).
      
      The event is used to implement server waits (glWaitSync), as vkEvent is
      the only entity the GPU can signal and wait on within the command
      buffer.  The wait is inserted in the command graph without incurring a
      flush, i.e. the wait can be within the same command buffer as event set.
      
      The event however does not support CPU waits (glClientWaitSync).
      vkFence is the only entity the CPU can wait on.  For client wait
      therefore, the following algorithm is used:
      
      - If the event is already set, there's no wait  ->  already signaled
      - If timeout is zero, there's no wait  ->  timeout expired
      - If S is not flushed, flush it to ensure forward progress.
      - Wait until S is finished  ->  condition satisfied / timeout expired.
      
      Bug: angleproject:2466
      Change-Id: I678995a6139dd9533fa8ad361a3d292b202c52a4
      Reviewed-on: https://chromium-review.googlesource.com/c/1422552
      Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
    • Suppress EmptyBuffer test on Android GLES. · 4b2e00f4
      Jamie Madill authored
      Seems to fail on the Pixel XL.
      
      Bug: angleproject:2861
      Change-Id: Ic1690abccd867251e83c0ae5e38c2bbd1c41615b
      Reviewed-on: https://chromium-review.googlesource.com/c/1441774Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
    • Vulkan: Use glslang's internal BUILD.gn. · 0cb3b0f1
      Jamie Madill authored
      This retires the ANGLE BUILD.gn file for glslang. Also makes a few more
      repos sync from Chromium's copy using build overrides. This should
      speed up Chrome checkouts slightly.
      
      Bug: angleproject:3088
      Change-Id: I530f28d9b13469bbe6471a4c61e7353d599d81ec
      Reviewed-on: https://chromium-review.googlesource.com/c/1422545Reviewed-by: 's avatarShahbaz Youssefi <syoussefi@chromium.org>
      Reviewed-by: 's avatarTobin Ehlis <tobine@google.com>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
  7. 28 Jan, 2019 4 commits
  8. 26 Jan, 2019 2 commits
  9. 25 Jan, 2019 2 commits
  10. 24 Jan, 2019 1 commit
  11. 23 Jan, 2019 4 commits
    • Revert "Vulkan: Adding custom pool allocator" · 47ca1b2f
      Tobin Ehlis authored
      This reverts commit 05459e06.
      
      Reason for revert: Clusterfuzz bugs flagged this commit
      
      Original change's description:
      > Vulkan: Adding custom pool allocator
      > 
      > Copied pool allocator used by compiler to common and hooking it up as
      > custom allocator for CommandPools. Modified it to support reallocation.
      > 
      > RendererVk now has a private poolAllocator and VkAllocationCallbacks
      > struct. The allocation callbacks are initialized to static functions
      > in RendererVk::initializeDevice() and then passed to CommandPool init()
      > and destroy() functions.
      > 
      > Using the pool allocator saves Command Pool/Buffer clean-up time which
      > was showing us as a bottleneck is some cases.
      > 
      > Bug: angleproject:2951
      > Change-Id: I81aa8a7ec60397676fa722d6435029db27947ef4
      > Reviewed-on: https://chromium-review.googlesource.com/c/1409867
      > Commit-Queue: Tobin Ehlis <tobine@google.com>
      > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
      > Reviewed-by: Jamie Madill <jmadill@chromium.org>
      
      TBR=jmadill@chromium.org,tobine@google.com,ianelliott@google.com,syoussefi@chromium.org
      
      Change-Id: I363a351667c4dddef79833061790da90de477e70
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: angleproject:2951
      Reviewed-on: https://chromium-review.googlesource.com/c/1430679Reviewed-by: 's avatarTobin Ehlis <tobine@google.com>
      Commit-Queue: Tobin Ehlis <tobine@google.com>
    • Documentation update · 2553690d
      Shahbaz Youssefi authored
      Mostly mentioning other platforms where older documentation mentioned
      only Windows.
      
      Bug: angleproject:1944
      Change-Id: Ib020892fbdee22d3dc60aa71ac6b3c5f504728c4
      Reviewed-on: https://chromium-review.googlesource.com/c/1430559Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
    • Implement EGL_KHR_fence_sync and EGL_KHR_wait_sync · 5313c8a8
      Shahbaz Youssefi authored
      EGL_KHR_fence_sync introduces the EGLSync object and associated
      create/destroy/clientWait functions.  EGL_KHR_wait_sync adds the
      serverWait function on top of that.
      
      Bug: angleproject:2466
      Change-Id: Iebb239a85c4471ea18b3c3a8a83b793af555e31d
      Reviewed-on: https://chromium-review.googlesource.com/c/1412261
      Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
      Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
    • Enable ParallelCompile for Mac · 828acb39
      jchen10 authored
      Linked in parallel, GLSLTest_ES3.LargeNumberOfFloat4Parameters
      fails on the Mac asan bots. It looks a driver bug caused by
      handling some long GLSL expressions. This works around it by
      breaking down the expression in the test from:
          return a0 + a1 + ... + alast;
      to:
          vec4 sum = vec4(0, 0, 0, 0);
          sum += a0;
          sum += a1;
          ...
          sum += alast;
          return sum;
      
      This also fixes a CGLPixelFormat leak, although it's irrelevant
      to the bot failures.
      
      BUG=922936
      BUG=angleproject:3087
      BUG=angleproject:3047
      
      Change-Id: I20249ada43e9dd226f582a568ed4ed50a0e4375d
      Reviewed-on: https://chromium-review.googlesource.com/c/1426430Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
      Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
  12. 22 Jan, 2019 2 commits
    • Vulkan: Don't allow creation of ES3 contexts. · 0c2c923e
      Geoff Lang authored
      Refactor RendererVk::getMaxSupportedESVersion to limit max supported versions
      similar to RendererGL.
      
      This allows dEQP-EGL.functional.robustness.reset_context.shaders.infinite_loop.*
      tests to pass but they are currently skipped due to TDR issues on some
      platforms.
      
      When we start to test on top of ES3 contexts, we will either have to supress
      some dEQP EGL tests or expose it some other mechanism.
      
      BUG=angleproject:3058
      
      Change-Id: I8d28fe75edd8346b46d197e0217afbee1c19b7e3
      Reviewed-on: https://chromium-review.googlesource.com/c/1409869Reviewed-by: 's avatarCody Northrop <cnorthrop@google.com>
      Commit-Queue: Geoff Lang <geofflang@chromium.org>
    • Vulkan: Adding custom pool allocator · 05459e06
      Tobin Ehlis authored
      Copied pool allocator used by compiler to common and hooking it up as
      custom allocator for CommandPools. Modified it to support reallocation.
      
      RendererVk now has a private poolAllocator and VkAllocationCallbacks
      struct. The allocation callbacks are initialized to static functions
      in RendererVk::initializeDevice() and then passed to CommandPool init()
      and destroy() functions.
      
      Using the pool allocator saves Command Pool/Buffer clean-up time which
      was showing us as a bottleneck is some cases.
      
      Bug: angleproject:2951
      Change-Id: I81aa8a7ec60397676fa722d6435029db27947ef4
      Reviewed-on: https://chromium-review.googlesource.com/c/1409867
      Commit-Queue: Tobin Ehlis <tobine@google.com>
      Reviewed-by: 's avatarShahbaz Youssefi <syoussefi@chromium.org>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>