1. 08 Nov, 2019 3 commits
  2. 07 Nov, 2019 8 commits
  3. 06 Nov, 2019 7 commits
  4. 05 Nov, 2019 7 commits
  5. 04 Nov, 2019 8 commits
  6. 03 Nov, 2019 3 commits
    • Capture/Replay: Implement mid-execution replay. · 6c7208f9
      Jamie Madill authored
      Mid-execution replay starts the replay from a specific start frame
      instead of frame 0. Integration tests will then run between the start
      and end frames. This lets us make much smaller reproduction cases from
      large benchmarks or applications.
      
      We implement mid-execution replay via a cpp "Setup" function. The
      replay test will run the setup function before the starting frame. Test
      execution proceeds normally after setup.
      
      Currently we do not implement mid-execution capture. We run capture on
      all frames. Including frames before the start frame. We do this to
      intercept compiled shaders and programs for easier caching. This could
      be changed in the future to also start capture mid-execution. Mid-
      execution capture might require using ProgramBinary calls to capture
      shader and program data.
      
      Many captures are unimplemented. Several comments indicate missing
      functionality. There's a lot we can add as we explore replaying more
      complex applications and higher GL versions. We will also need some
      kind of state reset functionality so we can run the replay in a loop.
      
      Bug: angleproject:3611
      Change-Id: I51841fc1a64e3622c34e49c85ed8919a9a7c0b20
      Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1689329
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarCody Northrop <cnorthrop@google.com>
    • Capture/Replay: Capture GetFloatv params. · b68a279c
      Jamie Madill authored
      Was used in the mip map ANGLE sample. Add a new helper function that we
      can use for multiple captures.
      
      Bug: angleproject:3611
      Change-Id: I430ce0089df4ce81ba2ca2ad64c0c206b59397b2
      Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1894144
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarTim Van Patten <timvp@google.com>
    • Capture/Replay: Only convert GLES 2 GLenums to string. · a576e0d4
      Jamie Madill authored
      Previously the enum conversion script would convert all enums in gl.xml
      including those for desktop GL. When replaying from a CPP file we would
      sometimes try to use enum values that only are exposed in desktop GL.
      
      One example is GL_TEXTURE_MAX_ANISOTROPY/GL_TEXTURE_MAX_ANISOTROPY_EXT.
      GLES only has the "EXT" version. Desktop uses the core version. This
      was breaking a replay sample that used the EXT enum.
      
      Fix this by a) including the anisotropy extension in registry_xml and
      b) updating the enum script to only parse GLES 2 entries. In the future
      we could improve the situation by auto-generating a header that defines
      exactly the enums we need for ANGLE.
      
      Also updates the enum helper to use uppercase enum values.
      
      Bug: angleproject:3611
      Change-Id: I1e01608bc8af282dc078d5a19ac4eba659c96b57
      Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1894143
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarTim Van Patten <timvp@google.com>
  7. 02 Nov, 2019 1 commit
  8. 01 Nov, 2019 3 commits