1. 23 Oct, 2017 7 commits
  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 4 commits
    • Add .vs to .gitignore. · 2bdbf788
      Jamie Madill authored
      This seems to be a new thing with VS2017.
      
      BUG=angleproject:1569
      
      Change-Id: Ic46566b979e975e5e6eb3a1f80eac9e44b66f2d4
      Reviewed-on: https://chromium-review.googlesource.com/719296Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
    • Clean up remaining extra semicolons from HLSL output · 40dbdd6c
      Olli Etuaho authored
      There are many types of statements after which a semicolon is not
      needed. Skip writing the semicolon in HLSL output in these cases to
      make the output code more readable.
      
      BUG=angleproject:1013
      TEST=angle_end2end_tests
      
      Change-Id: I8f6a5e4ecfe5def456fdf19cca5ca451c13d7f35
      Reviewed-on: https://chromium-review.googlesource.com/718420
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
    • Fix multiview transform feedback test · 3755c48d
      Olli Etuaho authored
      The multiview transform feedback test was not compliant with the GLES
      spec for transform feedback. The issue had to do with this part of
      section 2.15.2 of GLES 3.0.5 spec:
      
      "The error INVALID_OPERATION is also generated by
      BeginTransformFeedback if no binding points would be used, either
      because no program object is active or because the active program
      object has specified no output variables to record."
      
      Fix this.
      
      BUG=angleproject:2184
      TEST=angle_end2end_tests on NVIDIA 387.92 drivers
      
      Change-Id: I24816d2c24df0072179f21ead892bd2c9ba696d2
      Reviewed-on: https://chromium-review.googlesource.com/718702
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
    • Move incomplete texture logic to shared helper. · 42975644
      Jamie Madill authored
      The incomplete texture handling is similar between the D3D and Vulkan
      back-ends. We create 1x1 textures, initialize them to black, and bind
      them when we detect incomplete textures. We would also bind incomplete
      textures when we detect feedback loops. In the GL back-end, we
      wouldn't detect feedback loops, and would allow the driver to handle
      incompleteness.
      
      Instead implement this in a shared helper class, and do the feedback
      loop detection in the front-end for every back-end. This makes our
      behaviour more consistent between back-ends, and prevents undefined
      behaviour.
      
      Because initializing multisample textures is tricky (they
      can't be updated with TexImage calls) we do a bit of a workaround so
      the back-end can clear the incomplete multisample texture initially.
      
      This progresses the initial Vulkan textures implementation.
      
      BUG=angleproject:2167
      
      Change-Id: I79ddcc0711fcc986f2578a52ac6f701231d241ac
      Reviewed-on: https://chromium-review.googlesource.com/700993Reviewed-by: 's avatarYuly Novikov <ynovikov@chromium.org>
      Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>