1. 16 Mar, 2017 2 commits
  2. 15 Mar, 2017 4 commits
  3. 14 Mar, 2017 4 commits
    • Fix build failure in UniformLinker.cpp on Linux · ddb5eb56
      Jiawei-Shao authored
      This patch adds the declaration of libANGLE/features.h in UniformLinker.cpp
      to fix the build failure on Linux when you use gn to build ANGLE alone.
      
      BUG=angleproject:1938
      
      Change-Id: I19636df8f81b307e6d2e08fdac286cfb3f705eab
      Reviewed-on: https://chromium-review.googlesource.com/454083Reviewed-by: 's avatarYunchao He <yunchao.he@intel.com>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
    • ES31: Implement DrawArraysIndirect D3D part · fbe49a8f
      Qin Jiajia authored
      There are four buffer types for vertex attribute storage in D3D11:
        DIRECT
        STATIC
        DYNAMIC
        CURRENT_VALUE
      
      When drawing, it will call applyVertexBuffer to bind the right type
      buffers in D3D11.
      
      DIRECT uses the gl buffer directly without any translation.
      
      CURRENT_VALUE uses a single value for the attribute.
      
      STATIC translates the whole vertex buffer once. So it doesn't need the
      first, count and instance informations since it always translates the
      whole buffer.
      
      DYNAMIC translates the data every frame. To improve the performance,
      in implementation, it only translates 'count' vertexes from 'first'
      location in vertex buffer with one drawing for non-instanced vertices.
      'first' and 'count' are got from draw parameter list. And for the
      translated vertex buffer, when drawing, the first vertex location is 0.
      
      From above analysis, we can see that if all attribute storages are
      non-dynamic, we can directly use the indirect buffer to draw. But for
      dynamic storages, we have to calculate the first, count, and instances
      from indirect buffer and apply them to translate the dynamic type
      buffers. Meanwhile, we have to set the first to 0 (see above
      description)when drawing.
      
      DrawArrysIndirect implementation is like below:
      1. Check whether all vertex attributes are non-dynamic
      2. If yes, applyVertexBuffer and DrawInstancedIndirect
      3. If no, 1) calculate first, count, and instances from indirect buffer.
                2) applyVertexBuffer with these parameters.
                4) Use DrawInstanced instead of DrawInstancedIndirect.
      
      BUG=angleproject:1595
      TEST=dEQP-GLES31.functional.draw_indirect.draw_arrays_indirect*
      
      Change-Id: I36431f416443279d51de523b07ce60727914cbbf
      Reviewed-on: https://chromium-review.googlesource.com/446690
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
    • RenderStateCache BlendState Hash Fix · fe34780f
      Shahmeer Esmail authored
      Fix hash function for blendState cache
      
      BUG=angleproject:1937
      
      Change-Id: I0acd7dfcfb933b2b7ff0c1dc6854c7623ec57b3b
      Reviewed-on: https://chromium-review.googlesource.com/453887Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
    • RenderStateCache memory usage · e5cdca7e
      Shahmeer Esmail authored
      Reduce RenderStateCache cache sizes from 4k to 2k. Saves 64kb of memory.
      
      Change-Id: I9e92bbdf095f1e66cf9b84ba81899a8af59d6d86
      Reviewed-on: https://chromium-review.googlesource.com/453886Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
  4. 10 Mar, 2017 4 commits
  5. 09 Mar, 2017 6 commits
  6. 08 Mar, 2017 1 commit
    • Plumb robust resource init extensions. · e08a1d36
      Jamie Madill authored
      This also cleans up a few minor glitches in the extension texts,
      and renames the EGL extension for consistency.
      
      It incidentally fixes a bug in our EGL init where we were checking
      the wrong client versions for KHR_create_context.
      
      It also implements a new feature for tests which allow them to defer
      Context creation until the test body. This allows tests to check for
      EGL extension available before trying to create a context with certain
      extensions.
      
      BUG=angleproject:1635
      
      Change-Id: I9311991332c357e36214082b16f2a4a57bfa8865
      Reviewed-on: https://chromium-review.googlesource.com/450920
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
  7. 07 Mar, 2017 5 commits
  8. 06 Mar, 2017 3 commits
  9. 03 Mar, 2017 1 commit
  10. 02 Mar, 2017 3 commits
  11. 01 Mar, 2017 1 commit
  12. 28 Feb, 2017 2 commits
    • Unify and simplify shader variable collection · a55102c5
      Olli Etuaho authored
      Instead of setting variable information in both CollectVariables and
      the GetVariableTraverser helper class it uses, keep all of this
      functionality in CollectVariables. A single helper function handles
      setting variable information that doesn't depend on variable type, and
      the rest is done in "record" functions that are implemented for each
      variable type.
      
      This removes templates from the code, making it leaner and easier to
      understand, and will help with implementing future features like
      adding binding and location layout qualifiers for uniforms.
      
      BUG=angleproject:1442
      TEST=angle_unittests, angle_end2end_tests,
           dEQP-GLES2.functional.shaders.*
      
      Change-Id: I79148b7b3fa9cb46634a22bdcc9ce0c04f970384
      Reviewed-on: https://chromium-review.googlesource.com/446838
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
    • Make ozone backend work if it can't display. · 7d670a33
      chrome-bot authored
      The ozone backend will no longer fail if it is unable to display on
      screen for any reason.  It no longer assumes it can control the first
      screen it finds.
      
      BUG=angleproject:1423
      
      Change-Id: I5d5274c54b1bc6de50e704903391bf6161efa487
      Reviewed-on: https://chromium-review.googlesource.com/445805
      Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
  13. 27 Feb, 2017 2 commits
  14. 24 Feb, 2017 2 commits