1. 03 Oct, 2017 8 commits
  2. 02 Oct, 2017 6 commits
  3. 29 Sep, 2017 3 commits
  4. 28 Sep, 2017 1 commit
  5. 27 Sep, 2017 4 commits
  6. 26 Sep, 2017 1 commit
  7. 25 Sep, 2017 2 commits
  8. 21 Sep, 2017 10 commits
  9. 20 Sep, 2017 5 commits
    • D3D11: Implement a dirty bit for Shaders. · c8bee335
      Jamie Madill authored
      This allows us to skip calling the dynamic shader generation and
      program shader application when there haven't been any state
      changes. It builds on the previous work that immediately update
      state caches in the VertexArray11 and Framebuffer11. It should
      improve performance in draw-call limited applications by a small
      margin.
      
      For reference, here are the conditions under which the shaders
      are refreshed:
      
      1. Directly changing the program executable
      2. The vertex attribute layout
      3. The fragment shader's rendertargets
      4. Enabling/disabling rasterizer discard
      5. Enabling/disabling transform feedback
      6. An internal shader was used
      7. Drawing with/without point sprites
      
      Improves the score of the draw call stress test for the D3D11
      back-end (with null driver) by about 40% on my test machine.
      
      The 9_3 back-end seems to have an issue where the getSRV call
      to a texture storage can change the "use level zero workaround"
      status of the storage, which in turn will invalidate the state.
      Since this is localized to 9_3 only, put in a hack to disable
      an assert check for now.
      
      BUG=angleproject:2151
      
      Change-Id: Idbd0a31376691b33972e735d5833a9b02a8a4aa9
      Reviewed-on: https://chromium-review.googlesource.com/666278Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
      Reviewed-by: 's avatarFrank Henigman <fjhenigman@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
    • Removed "name" and "used" from variable location. · fb997ec1
      Jamie Madill authored
      The used flag was redundant with the index (which used MAXUINT). The
      name was redundant with the stored uniform. Removing these gives a
      very minor performance speed up when iterating and retrieving
      uniform locations.
      
      BUG=angleproject:1390
      
      Change-Id: Ieeccdff7c131e1359e754e246d3648b73aad5baf
      Reviewed-on: https://chromium-review.googlesource.com/659224
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
    • D3D11: Fix ClearBufferiv with STENCIL. · 805d281a
      Jamie Madill authored
      For some reason we were using the second GLint value passed into the
      method, when the spec says we should have a single clear value.
      
      Noticed when adding tests for lazy robust resource init (tests will
      be added in a subsequent patch).
      
      BUG=angleproject:2107
      
      Change-Id: Iadfc5072796255072bfb71ff1918253045e29576
      Reviewed-on: https://chromium-review.googlesource.com/675049
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarFrank Henigman <fjhenigman@chromium.org>
    • Pass Context to Framebuffer11 dirty callback. · ea84f6ff
      Jamie Madill authored
      This allows us to call StateManager11::invalidateRenderTarget from the
      Framebuffer11::signal function, which will then trigger state refresh
      on the next draw call.
      
      This requires passing Context through a few more Renderbuffer methods,
      and reorganizing the RenderTarget signalling so that it doesn't signal
      dirty in the destructor. Instead they are signaled as they are
      destroyed in the containing classes.
      
      BUG=angleproject:2151
      
      Change-Id: I4cf575e4a01b48275ff78d75bc55b2d1fced591d
      Reviewed-on: https://chromium-review.googlesource.com/673139
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
      Reviewed-by: 's avatarFrank Henigman <fjhenigman@chromium.org>
    • Use array template aliases in TextureStorage11. · 8ec383e6
      Jamie Madill authored
      This cleans up some of the iteration logic.
      
      BUG=angleproject:2151
      
      Change-Id: I8d80a8d732ee808babbb4859290b648b4fa67b4d
      Reviewed-on: https://chromium-review.googlesource.com/673138
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>