1. 04 Oct, 2017 1 commit
    • Vulkan: Implement very basic DrawElements. · d03a849d
      Jamie Madill authored
      This implements getIndexRange for index validation, without any
      caching. Vulkan does support a version of robust access, but it would
      require the robust context creation attribute. Also, it differs slight
      from the OpenGL spec.
      
      Also note that this implementation does not create the index buffer
      with the correct usage bits, but seems to work and doesn't produce an
      error in the validation layers. We should probably update them.
      
      This CL also doesn't impement index support for immediate data,
      offsets, or the unsigned short index type.
      
      BUG=angleproject:2167
      
      Change-Id: I580930f85e23034b483f3ece62eb1faf8024d624
      Reviewed-on: https://chromium-review.googlesource.com/681874
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarFrank Henigman <fjhenigman@chromium.org>
      Reviewed-by: 's avatarYuly Novikov <ynovikov@chromium.org>
  2. 03 Oct, 2017 10 commits
  3. 02 Oct, 2017 6 commits
  4. 29 Sep, 2017 3 commits
  5. 28 Sep, 2017 1 commit
  6. 27 Sep, 2017 4 commits
  7. 26 Sep, 2017 1 commit
  8. 25 Sep, 2017 2 commits
  9. 21 Sep, 2017 10 commits
  10. 20 Sep, 2017 2 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>