1. 24 Aug, 2017 1 commit
  2. 23 Aug, 2017 4 commits
    • Remove IndexRange retrieving in validation · 59d9da08
      Qin Jiajia authored
      This change can improve the performance of drawElements which uses
      the path without translation.
      Paste a set of mean data (repeated 30) for reference on Intel skylake
      Win10 desktop.
      DrawElementsPerfBenchmark.Run/d3d11:
      before                     after
      mean: 13644.4666667 -> mean: 13887.8333333
      DrawElementsPerfBenchmark.Run/d3d11_index_buffer_changed:
      before                     after
      mean: 45.8          -> mean: 46.3666666667
      
      BUG=755897, angleproject:1393
      
      Change-Id: I11f5db25445346958dfef52b1d23df5483cda32f
      Reviewed-on: https://chromium-review.googlesource.com/607413Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
    • D3D11: Use dirty bits for applyVertexBuffers. · abf66fb3
      Jamie Madill authored
      If the vertex array has any dirty or dynamic attribs, we must do an
      update. Similarly, if a prior state change has left the vertex
      state invalidated, we do an update. For instance, a program change
      means we need a new input layout. If there was no such invalidation
      or dirtyness we can skip the call to InputLayoutCache.
      
      This improves the performance of the draw call benchmark (with no
      state changes) by about 50% on the D3D11 null driver. Increases the
      frames per second count of the aquarium demo with the passthrough
      command buffer by about 25% on a test machine.
      
      BUG=angleproject:1156
      
      Change-Id: I8381999029f5b1912030a3342e96285a58f95e82
      Reviewed-on: https://chromium-review.googlesource.com/616784
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
    • D3D11: Split input layout and VB application. · e3d8628d
      Jamie Madill authored
      This will enable future optimizations that only update either the
      applied vertex buffers or the input layout independenty. It also
      makes debugging a bit easier since we can force an update of the
      vertex buffer or input layout to diagnose potential state sync
      bugs.
      
      BUG=angleproject:1156
      
      Change-Id: Ib375561528da539e136ff4fd02398b03c9caabb7
      Reviewed-on: https://chromium-review.googlesource.com/627077Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
    • Add support for arrays of arrays in AST processing · 96f6adfa
      Olli Etuaho authored
      Data concerning arrays of arrays is added in TType.
      
      Parsing arrays of arrays and support for arrays of arrays in
      TPublicType are still left to be implemented later.
      
      ShaderVariable interface for arrays of arrays is also left to be
      implemented later.
      
      We rely on existing test coverage to make sure that arrays of arrays
      are not accidentally exposed.
      
      BUG=angleproject:2125
      TEST=angle_unittests, angle_end2end_tests, angle_deqp_gles31_tests
      
      Change-Id: Ie17d5ac9b8d33958e9126dc0fb40bf1c81ddeec9
      Reviewed-on: https://chromium-review.googlesource.com/616146Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
  3. 22 Aug, 2017 3 commits
    • Handle Clear* commands for layered framebuffers · 5e424fae
      Martin Radev authored
      The patch adds support for clearing the layers of 2D array textures
      attached to a multi-view framebuffer. According to the ANGLE_multiview
      spec, the layers which are outside of the range
      [baseViewIndex; baseViewIndex + numViews) should remain unmodified.
      Because the native Clear* commands clear all of the layers, a workaround
      is implemented which creates a FBO, attaches a single layer from all
      multi-view attachments and clears the contents.
      
      BUG=angleproject:2062
      TEST=angle_end2end_tests
      
      Change-Id: Ibf711d02046233eed16bdd3f9c96fc38f82ed0a8
      Reviewed-on: https://chromium-review.googlesource.com/615242
      Commit-Queue: Martin Radev <mradev@nvidia.com>
      Reviewed-by: 's avatarOlli Etuaho <oetuaho@nvidia.com>
      Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
    • Test multi-view rendering of various primitives · 61bd9994
      Martin Radev authored
      The patch adds tests to verify that all primitive types are rendered
      correctly in a multi-view context.
      
      BUG=angleproject:2062
      TEST=angle_end2end_tests
      
      Change-Id: Ied4521264841d29ba3b39a612e2da285d0fd9fc6
      Reviewed-on: https://chromium-review.googlesource.com/612243
      Commit-Queue: Martin Radev <mradev@nvidia.com>
      Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
    • ES31: Implement gl_in in Geometry Shader · d8105a03
      Jiawei Shao authored
      This patch intends to implement geometry shader built-in interface
      block instance gl_in defined in GL_OES_geometry_shader.
      
      1. Add the definition of gl_in and its interface block gl_PerVertex
         into the symbol table.
      2. Support gl_Position as a member of gl_in.
      3. Set the array size of gl_in when a valid input primitive type is
         known.
      4. Add check that it should be a compile error to index gl_in or
         call length() on gl_in without a valid input primitive declaration.
      
      This patch also adds unit tests to cover all these new features.
      
      BUG=angleproject:1941
      TEST=angle_unittests
      
      Change-Id: I8da20c943b29c9ce904834625b396aab6302e1e1
      Reviewed-on: https://chromium-review.googlesource.com/605059
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
      Reviewed-by: 's avatarOlli Etuaho <oetuaho@nvidia.com>
  4. 21 Aug, 2017 4 commits
  5. 18 Aug, 2017 2 commits
  6. 17 Aug, 2017 6 commits
  7. 16 Aug, 2017 7 commits
  8. 15 Aug, 2017 5 commits
  9. 14 Aug, 2017 5 commits
  10. 11 Aug, 2017 3 commits