1. 28 Aug, 2017 13 commits
  2. 27 Aug, 2017 1 commit
  3. 26 Aug, 2017 1 commit
  4. 25 Aug, 2017 3 commits
    • ES3.1: Implement framebuffer default parameters for d3d part. · 511937d9
      JiangYizhou authored
      Set framebuffer default params with glFramebufferParameteri and
      glGetFramebufferParameteriv, keep framebuffer default parameters
      in cache for query.
      The es 3.1 spec section 9.2 states that, "If there are no attachments
      , rendering will be limited to a rectangle having a lower left of
      (0, 0) and an upper right of (width, height), where width and height
      are the framebuffer object's default width and height."
      If the Framebuffer has no color attachment and the default width or
      height is smaller than the current viewport, use the smaller of the
      two sizes.
      
      BUG=angleproject:1594
      TEST=dEQP-GLES31.functional.state_query.framebuffer_default.framebuffer_default*
      TEST=dEQP-GLES31.functional.fbo.completeness.no_attachments
      TEST=dEQP-GLES31.functional.fbo.no_attachments.*
      TEST=angle_end2end_tests --gtest_filter=FramebufferTest_ES31.*
      
      Change-Id: I8041fd655161390acf115efa08ce0f04b10810a0
      Reviewed-on: https://chromium-review.googlesource.com/609414
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
    • ES31: Implement GL_OES_geometry_shader built-ins in GLSL compiler · d27f5c8d
      Jiawei Shao authored
      This patch intends to implement all built-in constants, variables and
      functions defined in OpenGL ES 3.1 extension GL_OES_geometry_shader
      in ANGLE GLSL compiler.
      
      1. Add all built-in constants defined in GL_OES_geometry_shader.
      2. Add built-in functions EmitVertex() and EndPrimitive() required
         in Geometry Shader.
      3. Add built-in variables gl_PrimitiveIDIn and gl_InvocationID to
         Geometry Shader.
      4. Add built-in variables gl_PrimitiveID and gl_Layer to both
         Geometry Shader and Fragment Shader when GL_OES_geometry_shader
         is enabled.
      
      BUG=angleproject:1941
      TEST=angle_unittests
      
      Change-Id: I92821553ed0efee2ccb77fead6e065e7799819d0
      Reviewed-on: https://chromium-review.googlesource.com/627670
      Commit-Queue: Corentin Wallez <cwallez@chromium.org>
      Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
    • Enable all multiview rendering tests for layered framebuffers · 3c25ad07
      Martin Radev authored
      The patch restructures the tests in MultiviewDrawTests.cpp, so that
      all rendering tests can be instantiated for side-by-side and layered
      framebuffers.
      
      BUG=angleproject:2062
      TEST=angle_end2end_tests
      
      Change-Id: I2c32fd3bd57b6afd1eb8d6cedb2d1b88b9fd6525
      Reviewed-on: https://chromium-review.googlesource.com/627918
      Commit-Queue: Martin Radev <mradev@nvidia.com>
      Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
  5. 24 Aug, 2017 5 commits
  6. 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>
  7. 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>
  8. 21 Aug, 2017 4 commits
  9. 18 Aug, 2017 2 commits
  10. 17 Aug, 2017 4 commits
    • D3D11: Fix masked clear unused RTV warning. · 92996b0d
      Jamie Madill authored
      This benign warning would show up in the Debug layer messages. It was
      causing the test to fail in some standalone configurations.
      
      This fix implemented here is to keep 8 different pixel shaders, one
      for each total count of render targets, up to the implementation max.
      
      BUG=angleproject:2025
      
      Change-Id: I826ddae686ddb1cfad17879644152be2f6125c5b
      Reviewed-on: https://chromium-review.googlesource.com/617512Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
    • D3D: Make some helper methods static. · 46d6c2b6
      Jamie Madill authored
      A couple index data manager and Renderer helper methods didn't need
      to modify state or use any local member variables, so we can make
      them static to be more accessible from other parts of the code.
      
      BUG=angleproject:1156
      
      Change-Id: I522d0dfd396f0fed7b5087e90dcb70a0f9502a75
      Reviewed-on: https://chromium-review.googlesource.com/616782Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
    • D3D11: Allow no-op pixel shader output. · a836b466
      Jamie Madill authored
      On HLSL 4+, the debug runtime issues a warning when we try to render
      to a color output in the pixel shader that doesn't have a matching
      render target bound. This happens when doing a depth or stencil-only
      render pass. We only need to bind a dummy output in HLSL 3, so tighten
      the workaround we had in place and fix the warning for D3D11.
      
      BUG=angleproject:2025
      
      Change-Id: I16ba9e907f3a6e59afff93fe4583d084cbdf42c5
      Reviewed-on: https://chromium-review.googlesource.com/617268Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
    • Remove arraySize in TInterfaceBlock · b18c33e9
      Shao authored
      This patch intends to remove the field 'arraySize' in TInterfaceBlock.
      
      The field 'arraySize' in TInterfaceBlock is redundant because:
      1. If the interface block has instance name, it is recorded as one
         symbol as a whole, and its array size is recorded in the TType
         of the symbol.
      2. If the interface block doesn't have instance name, its members are
         recorded separately, and it cannot be declared as an interface block
         array.
      
      This patch can make the implementation of Geometry Shader easier
      when we set array size to the built-in interface block 'gl_in' and other
      user-defined unsized input interface blocks during the compilation of a
      Geometry Shader.
      
      BUG=angleproject:1941
      TEST=angle_end2end_test
      
      Change-Id: I9a51aab9b8f9ea7e88af157505c092426cee7e6e
      Reviewed-on: https://chromium-review.googlesource.com/615759
      Commit-Queue: Corentin Wallez <cwallez@chromium.org>
      Reviewed-by: 's avatarOlli Etuaho <oetuaho@nvidia.com>
      Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>