1. 26 Jul, 2017 7 commits
    • ES31: Add Geometry Shader layout qualifiers in GLSL compiler · b5cc1198
      Shao authored
      This patch intends to implement Geometry Shader layout qualifiers
      required in OpenGL ES 3.1 extension GL_OES_geometry_shader in ANGLE
      GLSL compiler.
      
      1. Add support to the shader type GL_GEOMETRY_SHADER_OES.
      2. Implement Geometry Shader layout qualifiers in the GLSL compiler:
      (1) Add support to OpenGL ES 3.1 extension "GL_OES_geometry_shader".
      (2) Add validations of the input and output primitive declarations
          in the Geometry Shader layout declarations.
      (3) Add 'invocations' and 'max_vertices' support in the Geometry
          Shader layout declarations
      3. Add unit tests to cover all the new features added in this patch.
      
      BUG=angleproject:1941
      TEST=angle_unittests
      
      Change-Id: Ie693e11f8a00dab3552626ed63e9336c7fbd3cb8
      Reviewed-on: https://chromium-review.googlesource.com/560647
      Commit-Queue: Geoff Lang <geofflang@chromium.org>
      Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
    • D3D11: Update cached dynamically recompiled programs. · 4c19a8a8
      Jamie Madill authored
      This change makes it so that when we need to recompile a program on a
      draw call, we also update the cache. It also streamlines the internal
      queries of the dynamic vertex and fragment shaders such that we only
      update the input and output signatures a single time per draw. This
      should also facilitate dirty bit implementations for the D3D11 back-
      end.
      
      BUG=angleproject:2116
      
      Change-Id: Iccb0501b700bc894f40a8c68d7f297ff0c8f46bd
      Reviewed-on: https://chromium-review.googlesource.com/531798Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
    • Add error handling macro to Context. · b6664925
      Jamie Madill authored
      This is a small specialized macro to remove all the redundant
      handleError calls and return value checking.
      
      Also add a Context::prepareForDraw member that will be used in
      follow-up patches to do necessary work prior to a draw call.
      
      BUG=angleproject:2107
      BUG=angleproject:2116
      
      Change-Id: I8a32d2206c218fcca5236abfd3f2ce370296ca99
      Reviewed-on: https://chromium-review.googlesource.com/585288Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
    • Disallow indirect draw calls for multi-view framebuffers · 14a26aea
      Martin Radev authored
      According to the ANGLE_multiview spec indirect draw calls
      must generate an INVALID_OPERATION error if the number of
      views in the active draw framebuffer is greater than 1.
      The patch addresses this by extending the indirect draw call
      validation.
      
      BUG=angleproject:2062
      TEST=angle_end2end_tests
      
      Change-Id: Ic30ef9a0eabba454aeea6176df1be8bd2ccd9783
      Reviewed-on: https://chromium-review.googlesource.com/583027Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
      Commit-Queue: Martin Radev <mradev@nvidia.com>
    • D3D: Make draw call translation check non-virtual. · 4c56c607
      Jamie Madill authored
      We don't support this call in D3D9, so need for it to be in
      RendererD3D. In general we want to have as few virtual calls in the
      hot draw call path as possible. Also rename it to 
      'drawCallNeedsTranslation' (with inverted condition checks).
      
      BUG=angleproject:1393
      
      Change-Id: Ib212ec35aca4b5d45579acec65c20691b5853230
      Reviewed-on: https://chromium-review.googlesource.com/584826Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
    • StateManager11: Fix casing of include · 6caf405c
      Corentin Wallez authored
      BUG=
      
      Change-Id: Ib237ce44644dba72bd55487756e0e69b724d30a3
      Reviewed-on: https://chromium-review.googlesource.com/586429Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Commit-Queue: Corentin Wallez <cwallez@chromium.org>
    • Revert "Fix BlitFramebuffer validation for BGRA sources and targets." · 26cf35a8
      Corentin Wallez authored
      This reverts commit 17d27031.
      
      Reason for revert:
       - New test fails on NVIDIA and AMD on Windows when using the backbuffer FAST_PATH.
       - SetUp code ASSERT_GL_NO_ERROR (line 269) but a GL error happens on all Windows and Linux Intel OpenGL.
      
      Original change's description:
      > Fix BlitFramebuffer validation for BGRA sources and targets.
      > 
      > It is legal to blit between GL_RGBA8 and GL_BGRA8 sources and
      > destinations when resolving multisampled renderbuffers. Expand
      > BlitFramebuffer's validation to handle this case.
      > 
      > Work around a bug in macOS' OpenGL driver querying the number of
      > samples for GL_BGRA8.
      > 
      > Query GL_MAX_VERTEX_OUTPUT_COMPONENTS on the Core Profile to work
      > around an error generated on macOS when querying
      > GL_MAX_VARYING_COMPONENTS.
      > 
      > Expand the BlitFramebuffer tests to cover these cases and start
      > running them on the OpenGL backend.
      > 
      > BUG=angleproject:891
      > 
      > Change-Id: I4829585d2b6428ce0bc7509c4734d33709a0930b
      > Reviewed-on: https://chromium-review.googlesource.com/582268
      > Commit-Queue: Geoff Lang <geofflang@chromium.org>
      > Reviewed-by: Kenneth Russell <kbr@chromium.org>
      > Reviewed-by: Geoff Lang <geofflang@chromium.org>
      
      TBR=geofflang@chromium.org,kbr@chromium.org
      
      Change-Id: I220bc482194cf7fad5e7e732a6d043ce0d504d79
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: angleproject:891
      Reviewed-on: https://chromium-review.googlesource.com/586428Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Commit-Queue: Corentin Wallez <cwallez@chromium.org>
  2. 25 Jul, 2017 2 commits
    • Fix BlitFramebuffer validation for BGRA sources and targets. · 17d27031
      Kenneth Russell authored
      It is legal to blit between GL_RGBA8 and GL_BGRA8 sources and
      destinations when resolving multisampled renderbuffers. Expand
      BlitFramebuffer's validation to handle this case.
      
      Work around a bug in macOS' OpenGL driver querying the number of
      samples for GL_BGRA8.
      
      Query GL_MAX_VERTEX_OUTPUT_COMPONENTS on the Core Profile to work
      around an error generated on macOS when querying
      GL_MAX_VARYING_COMPONENTS.
      
      Expand the BlitFramebuffer tests to cover these cases and start
      running them on the OpenGL backend.
      
      BUG=angleproject:891
      
      Change-Id: I4829585d2b6428ce0bc7509c4734d33709a0930b
      Reviewed-on: https://chromium-review.googlesource.com/582268
      Commit-Queue: Geoff Lang <geofflang@chromium.org>
      Reviewed-by: 's avatarKenneth Russell <kbr@chromium.org>
      Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
    • Remove IndexRange in DrawElements functions · 1da00653
      Qin Jiajia authored
      This change will remove IndexRange parameter in DrawElements functions.
      And calculate it until we truly need it. Meanwhile we add direct
      drawing path to avoid retrieving index range for DrawElements*
      functions in D3D11 backend. This change may not bring much performance
      improvement since we still need to retrieve index range in validation
      at the beginning of every DrawElements* call entry point.
      
      BUG=angleproject:1393
      
      Change-Id: I86a8739c0893954c94eb398db62820ced7871565
      Reviewed-on: https://chromium-review.googlesource.com/544634Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
  3. 24 Jul, 2017 3 commits
  4. 21 Jul, 2017 5 commits
  5. 20 Jul, 2017 7 commits
  6. 19 Jul, 2017 12 commits
  7. 18 Jul, 2017 4 commits