1. 18 May, 2021 5 commits
    • Vulkan: Fix a bug releasing DynamicBuffer-owned buffer · 8bd3d7d5
      Shahbaz Youssefi authored
      There was one instance of BufferVk releasing a buffer it had allocated
      from a DynamicBuffer.  This shouldn't have happened as the DynamicBuffer
      owns the buffers.
      
      Bug: angleproject:5720
      Change-Id: I435512f4bb099130126bf3efb48a238fcd9f3ddb
      Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2896168
      Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
      Reviewed-by: 's avatarMohan Maiya <m.maiya@samsung.com>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
    • Tests: Add Pokemon Go trace · 848d8ddc
      Cody Northrop authored
      Test: angle_perftest --gtest_filter="*pokemon_go*"
      Tbr: jmadill@chromium.org,timvp@google.com
      Bug: b/188091629
      Bug: angleproject:5968
      Change-Id: I3f48957a3063fbe5a443c235b6cabf87319b17c1
      Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2895329Reviewed-by: 's avatarCody Northrop <cnorthrop@google.com>
      Commit-Queue: Cody Northrop <cnorthrop@google.com>
    • Capture/Replay: Add const to string pointer · 4b071880
      Cody Northrop authored
      Traces that have shader compiles in the middle of the run are reusing
      the string pointers on each go through. On some (multiple) platforms,
      the string pointer is no good on the second run through. This may
      only happen for large strings.
      
      Adding a const qualifier on the pointer itself, not just the string,
      avoids the issue. This has the effect of changing strings from this:
      
        const char *glShaderSource_string_0[] = {
        const char *glShaderSource_string_1[] = {
      
      to this:
      
        const char* const glShaderSource_string_0[] = {
        const char* const glShaderSource_string_1[] = {
      
      Test: Pokemon Go MEC
      Bug: b/188091629
      Bug: angleproject:5968
      Change-Id: Id6a05c955adb3e1c43d2723450be6b5278d99fba
      Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2895328
      Commit-Queue: Cody Northrop <cnorthrop@google.com>
      Reviewed-by: 's avatarTim Van Patten <timvp@google.com>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
    • Capture/Replay: Skip glGetActiveUniform · 83d22b66
      Cody Northrop authored
      Apps are querying GL_ACTIVE_UNIFORMS and then walking through them all
      numerically, calling glGetActiveUniform on each one. Before this CL,
      our trace would also walk through them all, exactly as the app.
      
      But, the active uniform count can vary on different platforms
      depending on how aggressive the underlying compiler is. We have at
      least one that does cross stage optimizations eliminating more active
      uniforms than others.
      
      Rather than check each call against the actual number of active
      uniforms, we can just drop the calls to glGetActiveUniform. We don't
      actually use any of the results from the call. For example, this is
      what we generate before this CL:
      
        glGetActiveUniform(gShaderProgramMap[144], 31, 1024,
                           reinterpret_cast<GLsizei *>(gReadBuffer),
                           reinterpret_cast<GLint *>(gReadBuffer),
                           reinterpret_cast<GLenum *>(gReadBuffer),
                           glGetActiveUniform_name_30);
      
      This has the downside of moving away from reflecting what the app
      actually sent down. The alternatives are too intrusive though, and
      we want to stay as close to speed of light as we can.
      
      Test: Pokemon Go MEC
      Bug: b/188091629
      Bug: angleproject:5968
      Change-Id: I1263f2256c6a964dac54d9997a1c1c2dceac711b
      Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2895327
      Commit-Queue: Cody Northrop <cnorthrop@google.com>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarTim Van Patten <timvp@google.com>
    • Capture/Replay: Reset programs on loop · 8ea11eb7
      Cody Northrop authored
      Apps that create new programs during the run need to have them
      deleted on loop. This CL handles that. It does not handle programs
      that have been deleted and need to be recreated, or that have been
      modified otherwise. An assert has been included to catch that for
      future needs.
      
      With this CL, entries like this will show up in ResetReplay:
      
        ...
        glDeleteProgram(gShaderProgramMap[120]);
        glDeleteProgram(gShaderProgramMap[121]);
        ...
      
      Test: Pokemon Go MEC
      Bug: b/188091629
      Bug: angleproject:5968
      Change-Id: I78c425e8fe95792fc626484641d067613dfae971
      Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2895326
      Commit-Queue: Cody Northrop <cnorthrop@google.com>
      Reviewed-by: 's avatarTim Van Patten <timvp@google.com>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
  2. 17 May, 2021 11 commits
  3. 15 May, 2021 4 commits
  4. 14 May, 2021 14 commits
  5. 13 May, 2021 6 commits