1. 21 Apr, 2021 6 commits
  2. 20 Apr, 2021 10 commits
  3. 19 Apr, 2021 8 commits
  4. 17 Apr, 2021 5 commits
  5. 16 Apr, 2021 9 commits
  6. 15 Apr, 2021 2 commits
    • Vulkan: Implement shader buffers descriptor cache. · 0c77f3ad
      Jamie Madill authored
      Implements a descriptor set cache for UBOs, SSBOs, and atomic counter
      buffers. Storage Images and framebuffer fetch input attachments are
      not yet included. Requires moving the buffer barrier handling into
      ContextVk, similarly to how we handle the barriers for Textures.
      
      The packed description key for the descriptors uses a "fast" vector
      with a basic minimum size. For most cases of a few buffers this will
      fit easily in stack memory, but for larger programs with many buffers
      we fit this into heap memory. The key has a large upper bound due to
      the high ES 3.2 requirements and the need to index several values such
      as the offset and binding size.
      
      We use dynamic offsets for uniform buffers when possible. This ensures
      applications like Manhattan 3.1 that use sets of common buffers with
      changing offsets hit the cache most of the time.
      
      Because of resource limits we pick at compilation time whether to use
      dynamic or static descriptor sets. Mostly this applies to tests that
      use a large number of uniform buffers. A future implementation could
      be smart and would recompile the program with heuristics to use a
      minimal number of dynamic indices.
      
      Reduces the number of descriptor set updates from ~300 -> ~30 per frame
      in Manhattan 3.1 and in Asphalt 9 from 900+ to as low as 0 per frame.
      
      Bug: angleproject:5736
      Change-Id: I5c2a3881bec90d301dab15cc86c8a70e60674ad7
      Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2757515
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarTim Van Patten <timvp@google.com>
      Reviewed-by: 's avatarShahbaz Youssefi <syoussefi@chromium.org>
    • Generate CL enums in libGLESv2 · 8226dc23
      John Plate authored
      Bug: angleproject:5869
      Change-Id: Ie547d415bed37accef6cb62d28bc6b088a1eb810
      Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2829370Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarCody Northrop <cnorthrop@google.com>
      Commit-Queue: John Plate <jplate@google.com>