1. 17 Feb, 2021 11 commits
  2. 16 Feb, 2021 12 commits
  3. 15 Feb, 2021 5 commits
  4. 14 Feb, 2021 2 commits
  5. 13 Feb, 2021 9 commits
  6. 12 Feb, 2021 1 commit
    • Vulkan: setAllDefaultUniformsDirty after createPipelineLayout · a9de5d99
      Tim Van Patten authored
      The default uniform descriptor set is reset while recreating the
      pipeline layout during handling of immutable samplers and then is
      never re-allocated and bound before the next draw.
      
      The call stack to allocate the program uniforms descriptor set:
      
          ProgramExecutableVk::allocUniformAndXfbDescriptorSet
          ProgramVk::updateUniforms
          ContextVk::setupDraw
          ContextVk::drawArrays
          Context::drawArrays
      
      Unfortunately, this occurs before the pipeline layout is reset (and the
      descriptor sets are reset) due to the presence of an immutable sampler:
      
          ProgramExecutableVk::reset <<---- mDescriptorSets.fill(VK_NULL_HANDLE);
          ProgramExecutableVk::createPipelineLayout
          ContextVk::updateActiveTextures
          ContextVk::invalidateCurrentTextures
          ContextVk::syncState
          Context::syncDirtyBits
          Context::prepareForDraw
          Context::drawArrays
      
      This CL calls setAllDefaultUniformsDirty() for the Program/PPO to ensure
      the default uniforms descriptor sets are re-allocated and re-bound
      before the next draw command.
      
      Bug: b/178424566
      Bug: angleproject:5624
      Test: CtsCameraTestCases
      Change-Id: If54a9f2cc09809a5103bc3eac641c77f56362229
      Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2677385Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarShahbaz Youssefi <syoussefi@chromium.org>
      Commit-Queue: Tim Van Patten <timvp@google.com>