1. 29 Mar, 2017 1 commit
  2. 28 Mar, 2017 4 commits
  3. 24 Mar, 2017 2 commits
  4. 23 Mar, 2017 3 commits
  5. 22 Mar, 2017 4 commits
  6. 21 Mar, 2017 3 commits
  7. 20 Mar, 2017 3 commits
  8. 16 Mar, 2017 2 commits
  9. 15 Mar, 2017 4 commits
  10. 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>
  11. 10 Mar, 2017 4 commits
  12. 09 Mar, 2017 6 commits