1. 05 Mar, 2018 5 commits
    • Use packed enums for the texture types and targets, part 1 · f0e89be6
      Corentin Wallez authored
      In OpenGL there are two enum "sets" used by the API that are very
      similar: texture types (or bind point) and texture targets. They only
      differ in that texture types have GL_TEXTURE_CUBEMAP and target have
      GL_TEXTURE_CUBEMAP_[POSITIVE|NEGATIVE]_[X|Y|Z].
      
      This is a problem because in ANGLE we use GLenum to pass around both
      types of data, making it difficult to know which of type and target a
      variable is.
      
      In addition these enums are placed somewhat randomly in the space of
      OpenGL enums, making it slow to have a mapping from texture types to
      some data. Such a mapping is in hot-code with gl::State::mTextures.
      
      This commit stack makes the texture types and target enums be
      translated to internal packed enums right at the OpenGL entry point
      and used throughout ANGLE to have type safety and performance gains.
      
      This is the first of two commit which does the refactor for all of the
      validation and stops inside gl::Context. This was the best place to
      split patches without having many conversions from packed enums to GL
      enums.
      
      BUG=angleproject:2169
      
      Change-Id: Ib43da7e71c253bd9fe210fb0ec0de61bc286e6d3
      Reviewed-on: https://chromium-review.googlesource.com/758835
      Commit-Queue: Corentin Wallez <cwallez@chromium.org>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
    • Statically allocate built-in function symbols · 140152e7
      Olli Etuaho authored
      A script gen_builtin_symbols.py now generates code for initializing
      built-in function symbols. The TFunction objects are initialized at
      C++ compile time.
      
      The source file used for the functions is in a format that's similar
      to how functions are given out in the GLSL spec, so it is easy to
      maintain.
      
      The function symbols are still inserted to the symbol table levels
      same as before. Getting rid of inserting the symbols at runtime is
      intended to be done as follow-up.
      
      This speeds up angle_unittests on Linux in release mode by a bit less
      than half, and in debug mode by more than half.
      
      BUG=angleproject:2267
      TEST=angle_unittests
      
      Change-Id: I11c9de98c74d28e7e8cdf024516e2f6ee30ca33e
      Reviewed-on: https://chromium-review.googlesource.com/924155
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
    • Last case in switch statement can't be empty in ESSL 3.10 · d05f964b
      Olli Etuaho authored
      This is based on recent discussion in Khronos, though public specs
      have not yet been updated to reflect this.
      
      BUG=angleproject:2388
      TEST=angle_unittests
      
      Change-Id: I66a0d03b3c2bb9740772a813b543f8f6c6bb2a28
      Reviewed-on: https://chromium-review.googlesource.com/947977Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
    • Vulkan: Fix Texture attachment state changes. · dc0cdba8
      Jamie Madill authored
      This implements a notification to the Framebuffer that an attachment
      had a state change that might require recreating the VkFramebuffer.
      
      This implementation is much simpler than the prior method with
      signal notifications. Only currently implemented for TextureVk but
      will also be implemented for RenderbufferVk.
      
      Bug: angleproject:2347
      Change-Id: I05f7da4132f6ed2bda02671e8ba5ee9805252928
      Reviewed-on: https://chromium-review.googlesource.com/930024Reviewed-by: 's avatarLuc Ferron <lucferron@google.com>
      Reviewed-by: 's avatarYuly Novikov <ynovikov@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
    • Vulkan: Line loops for indexed draw calls · 78e39b3f
      Luc Ferron authored
      Bug: angleproject:2335
      
      Change-Id: Iabd6ae8181c6d3fb487f953a6fbf699db568a1c9
      Reviewed-on: https://chromium-review.googlesource.com/941261
      Commit-Queue: Luc Ferron <lucferron@chromium.org>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
  2. 02 Mar, 2018 11 commits
  3. 01 Mar, 2018 2 commits
  4. 28 Feb, 2018 5 commits
  5. 27 Feb, 2018 7 commits
  6. 26 Feb, 2018 6 commits
  7. 24 Feb, 2018 2 commits
  8. 23 Feb, 2018 2 commits