1. 23 Oct, 2017 2 commits
    • Generate performance warnings in HLSL translation · 89a69a03
      Olli Etuaho authored
      Generate performance warnings for some code that undergoes heavy
      emulation when translated to HLSL:
      1. Dynamic indexing of vectors and matrices.
      2. Non-empty fall-through cases in switch/case.
      
      The warnings are generated only when code is translated to HLSL.
      Generating them in the parsing stage would add too much maintenance
      burden.
      
      Improves switch statement fall-through handling in cases where an
      empty fall-through case follows a non-empty one so that extra
      performance warnings are not generated.
      
      BUG=angleproject:1116
      
      Change-Id: I7c85d78fe7c4f8e6042bda72ceaaf6e37dadfe6c
      Reviewed-on: https://chromium-review.googlesource.com/732986
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
      Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
    • Remove unnecessary work from VariablePacker · 4cd889ec
      Olli Etuaho authored
      The VariablePacker does not check the staticUse flag, variables should
      be pre-filtered according to their staticUse flag before passing them
      to CheckVariablesInPackingLimits if that's desired.
      
      The names of the variables are also not relevant to the packing. We
      keep the "name" field to make the code easier to debug, but updating
      the mappedName is not useful.
      
      This will make implementing arrays of arrays simpler.
      
      BUG=angleproject:2125
      TEST=angle_unittests
      
      Change-Id: I5ce91885f6478ad436e6fa60ca9675e161d10256
      Reviewed-on: https://chromium-review.googlesource.com/730104Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
  2. 22 Oct, 2017 2 commits
    • Add more complete NULL driver for the GL back-end. · 6d94f064
      Jamie Madill authored
      This implements a NULL driver in OpenGL by stubbing out most of the
      GL functions in FunctionsGL except a few static "Gets" that are needed
      for initialization with Chromium and the tests. It is intended to be
      used for performance testing ONLY and will not have correct behaviour.
      
      It also adds a define to enable conditionally excluding the null entry
      points for implementations that wish to save on a bit of binary size.
      
      Also fixes some of the typedefs in functionsgl_typesdefs.h that were
      turned up after implementing the direct assignment from NULL stub
      entry point, generated from gl.xml, to the function pointer with type
      defined from functionsgl_typedefs.h.
      
      BUG=angleproject:2188
      
      Change-Id: Ifa1e4739cb471ab6b52a4bf24c16d9eb4b334ac5
      Reviewed-on: https://chromium-review.googlesource.com/727530
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
    • Add an auto-generated dispatch table for GL bindings. · 29ddcc99
      Jamie Madill authored
      This will more easily allow us to extend our implementation to make a
      NULL or "stub" set of bindings. It also exposes a lot more function
      permutations via extension variations.
      
      It might improve the loading speed for bindings obtained via
      extensions. Instead of generating a list every time an extension is
      checked, we use a single std::set for a fast query. However because
      more extensions are checked for more entry points, it might not make
      a huge difference.
      
      This also fixes an issue where the "real" ANGLE GL headers were being
      propagated to the entry point dispatch table definitions, instead of
      being in a totally isolated file. This patch adds the missing typedefs
      to our proxy headers.
      
      It also fixes the naming of a few entry points which was inconsistent
      with the spec. It also makes an XML adjustment to GL_NV_path_rendering
      to accomodate a hole in the spec where glLoadMatrixfEXT was not ever
      defined in OpenGL ES. A spec oddity with the TexStorage extension is
      not resolved - in this case, some methods are only exposed if other
      extensions are present, but this information is missing from gl.xml.
      
      BUG=angleproject:2188
      
      Change-Id: I0fd61dd32de6fadd55fa6bd79295833392d51104
      Reviewed-on: https://chromium-review.googlesource.com/726949
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarYuly Novikov <ynovikov@chromium.org>
  3. 21 Oct, 2017 1 commit
    • Vulkan: Implement basic uniforms. · 76e471e9
      Jamie Madill authored
      This implementation adds one descriptor set with two bindings: one for
      default vertex uniforms and the other for fragment. It adds two
      corresponding uniform buffers, and the logic for updating the
      descriptor sets bound to Vulkan. It doesn't handle much in the way of
      synchronization and dependency management, or uniform update.
      
      If there are only vertex or fragment uniforms the empty uniform buffer
      is omitted from the descriptor set. If both are missing, there is no
      descriptor set bound.
      
      Note that as our implementation progresses we might not be able to
      initialize our descriptor sets at link time, due to streaming in
      uniform data.
      
      BUG=angleproject:2167
      
      Change-Id: I4ce4c3879ab454114df43bfac8d87ddf817fc045
      Reviewed-on: https://chromium-review.googlesource.com/706340
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarYuly Novikov <ynovikov@chromium.org>
  4. 20 Oct, 2017 4 commits
  5. 19 Oct, 2017 4 commits
  6. 18 Oct, 2017 6 commits
  7. 17 Oct, 2017 8 commits
  8. 16 Oct, 2017 3 commits
  9. 15 Oct, 2017 1 commit
  10. 13 Oct, 2017 5 commits
  11. 12 Oct, 2017 4 commits