1. 10 Jan, 2019 4 commits
    • Vulkan: Faster state transitions. · 3f0c4a56
      Jamie Madill authored
      Implements a transition table from Pipeline Cache entry to
      state change neighbouring Pipeline Cache entries. We use
      a 64-bit mask to do a quick scan over the pipeline desc.
      This ends up being a lot faster than doing a full hash
      and memcmp over the pipeline description.
      
      Note that there could be future optimizations to this design.
      We might keep a hash map of the pipeline transitions instead
      of a list. Or use a sorted list. This could speed up the search
      when there are many transitions for cache entries. Also we could
      skip the transition table and opt to do a full hash when there
      are more than a configurable number of dirty states. This might
      be a bit faster in some cases. Likely this will be something we
      can add performance tests for in the future.
      
      Documentation is also added in a README file for the Vulkan back
      end. This will be extended over time.
      
      Improves performance about 30-35% on the VBO state change test.
      
      Bug: angleproject:3013
      Change-Id: I793f9e3efd8887acf00ad60e4ac2502a54c95dee
      Reviewed-on: https://chromium-review.googlesource.com/c/1369287
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarYuly Novikov <ynovikov@chromium.org>
    • Vulkan: Update individual VAO attribs when dirty. · 80766cfa
      Jamie Madill authored
      This simplifies the dirty state updates in VertexArrayVk. It also lets
      us use a smaller dirty bit mask when a single attribute is marked dirty
      in a vertex array.
      
      Improves performance by about 1-2% in the VBO state change test. Will
      allow for better performance using a pipeline transition table.
      
      Bug: angleproject:3013
      Change-Id: I25c5172b3f41b7abac6b8273c8f9cd42eb46cc9f
      Reviewed-on: https://chromium-review.googlesource.com/c/1403958Reviewed-by: 's avatarYuly Novikov <ynovikov@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
    • GL: Work around errors generated during query caps initialization. · b827f490
      Geoff Lang authored
      Nexus5X drivers generate INVLAID_ENUM errors when querying
      GL_QUERY_COUNTER_BITS.
      
      Add device detection from renderer string.
      
      BUG=angleproject:3027
      
      Change-Id: I367e20c79e1c4e53c26d94603d9a893604b51165
      Reviewed-on: https://chromium-review.googlesource.com/c/1374274
      Commit-Queue: Geoff Lang <geofflang@chromium.org>
      Reviewed-by: 's avatarYuly Novikov <ynovikov@chromium.org>
    • Add validation layers to Android apk · c05c1416
      Courtney Goeltzenleuchter authored
      The compressed symbol support requires explicitly listing the
      libraries, so add validation libraries.
      
      Use list of ANGLE libraries to reduce duplication
      
      Bug: angleproject:2981
      Change-Id: Ia8feb58d2a2ee66299b00bbb1fd3a4d9094c0b68
      Reviewed-on: https://chromium-review.googlesource.com/c/1394569
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarYuly Novikov <ynovikov@chromium.org>
  2. 09 Jan, 2019 4 commits
  3. 08 Jan, 2019 4 commits
  4. 07 Jan, 2019 1 commit
  5. 06 Jan, 2019 2 commits
  6. 05 Jan, 2019 2 commits
  7. 04 Jan, 2019 2 commits
    • Slightly simplify .def file use. · 9db8df4c
      Nico Weber authored
      From `gn help sources`:
      
        As a special case, a file ending in ".def" will be treated as a Windows
        module definition file. It will be appended to the link line with a
        preceding "/DEF:" string.
      
      This makes the code slightly shorter, and also gives ninja a chance of
      re-running the link when the .def file changes since it now knows about
      this file.
      
      No intended behavior change.
      
      Change-Id: I5fecb22752508880b726482f7c3da5a75180e446
      Reviewed-on: https://chromium-review.googlesource.com/c/1396499Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Nico Weber <thakis@chromium.org>
    • WebGL: validate texture format matches sampler type · e4109f27
      James Darpinian authored
      WebGL requires that drawing produces INVALID_OPERATION if a texture's
      format doesn't match the sampler type it is bound to. This is a little
      confusing because samplers have two attributes that could be called
      "type": addressing mode (2D/3D/Cube), and component format
      (float/signed/unsigned/shadow). ANGLE already handled checking the
      addressing mode; this change adds checking for the component format.
      
      Fixes WebGL conformance test
      conformance2/uniforms/incompatible-texture-type-for-sampler.html
      
      Bug: chromium:809237
      Change-Id: I52ebfecd92625e3ee10274cb5f548d7e53de72dd
      Reviewed-on: https://chromium-review.googlesource.com/c/1377611Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarYuly Novikov <ynovikov@chromium.org>
      Commit-Queue: James Darpinian <jdarpinian@chromium.org>
  8. 03 Jan, 2019 8 commits
  9. 02 Jan, 2019 6 commits
  10. 01 Jan, 2019 5 commits
  11. 30 Dec, 2018 1 commit
  12. 29 Dec, 2018 1 commit
    • Revert "Load entry points dynamically in tests and samples." · 9f088621
      Yuly Novikov authored
      This reverts commit 03923558.
      
      Reason for revert: fails compilation on Android, ChromeOS and Fuchsia during roll https://chromium-review.googlesource.com/c/chromium/src/+/1392624
      
      Original change's description:
      > Load entry points dynamically in tests and samples.
      > 
      > This CL adds a dynamic loader generator based on XML files. It also
      > refactors the entry point generation script to move the XML parsing
      > into a helper class.
      > 
      > Additionally this includes a new GLES 1.0 base header. The new
      > header allows for function pointer types and hiding prototypes.
      > 
      > All tests and samples now load ANGLE dynamically. In the future this
      > will be extended to load entry points from the driver directly when
      > possible. This will allow us to perform more accurate A/B testing.
      > 
      > The new build configuration leads to some tests having more warnings
      > applied. The CL includes fixes for the new warnings.
      > 
      > Bug: angleproject:2995
      > Change-Id: I6726d4163f7a6e54d2482f094c0a952f59702a05
      > Reviewed-on: https://chromium-review.googlesource.com/c/1359516
      > Commit-Queue: Jamie Madill <jmadill@chromium.org>
      > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
      
      TBR=ynovikov@chromium.org,jmadill@chromium.org,syoussefi@chromium.org
      
      Change-Id: I902bec2d733c2b879be29c02ab52a0b7d4eaa077
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: angleproject:2995
      Reviewed-on: https://chromium-review.googlesource.com/c/1392381Reviewed-by: 's avatarYuly Novikov <ynovikov@chromium.org>
      Commit-Queue: Yuly Novikov <ynovikov@chromium.org>