1. 30 Apr, 2015 1 commit
    • Dan Stoza's avatar
      SurfaceFlinger: Fix PTS on stale buffers · 2e36f228
      Dan Stoza authored
      SurfaceFlinger's (Layer's) shadow copy of the BufferQueue queue was
      getting out of sync for a few reasons. This change fixes these by
      doing the following:
      
      - Adds a check to re-synchronize the shadow copy every time we
        successfully acquire a buffer by first dropping stale buffers before
        removing the current buffer.
      - Avoids trying to perform updates for buffers which have been rejected
        (for incorrect dimensions) by SurfaceFlinger.
      - Adds IGraphicBufferConsumer::setShadowQueueSize, which allows the
        consumer to notify the BufferQueue that it is maintaining a shadow
        copy of the queue and prevents it from dropping so many buffers
        during acquireBuffer that it ends up returning a buffer for which the
        consumer has not yet received an onFrameAvailable call.
      
      Bug: 20096136
      Change-Id: I78d0738428005fc19b3be85cc8f1db498043612f
      2e36f228
  2. 29 Apr, 2015 3 commits
  3. 28 Apr, 2015 4 commits
  4. 27 Apr, 2015 4 commits
  5. 24 Apr, 2015 2 commits
  6. 23 Apr, 2015 4 commits
    • Dan Stoza's avatar
      56f1f16c
    • Dan Stoza's avatar
      Merge "libui/libgui: Fix errors in parceling" · 82e4d49b
      Dan Stoza authored
      82e4d49b
    • Dan Stoza's avatar
      libgui: Allow an IGBProducer to disable allocation · 9de7293b
      Dan Stoza authored
      Adds a new method IGBP::allowAllocation, which controls whether
      dequeueBuffer is permitted to allocate a new buffer. If allocation is
      disallowed, dequeueBuffer will block or return an error as it
      normally would (as controlled by *ControlledByApp).
      
      If there are free buffers, but they are not of the correct dimensions,
      format, or usage, they may be freed if a more suitable buffer is not
      found first.
      
      Bug: 19801715
      Change-Id: I0d604958b78b2fd775c2547690301423f9a52165
      9de7293b
    • Dan Stoza's avatar
      libgui: Change BufferQueue to use free lists · 0de7ea75
      Dan Stoza authored
      BufferQueue used to choose free buffers by scanning through its array
      of slots and picking one based on timestamp. This changes that
      mechanism to use a pair of free lists: one with buffers attached and
      one without. This makes it easier to choose either type of free slot
      depending on the needs of the current operation.
      
      Fixes an issue with the first version of this change, found in bugs
      20482952, 20443314, and 20464549.
      
      Bug: 13175420
      Change-Id: I9b6e83cfe8f9b4329a976025cb8e291d51fb6d4a
      0de7ea75
  7. 22 Apr, 2015 5 commits
  8. 21 Apr, 2015 1 commit
    • Dan Stoza's avatar
      libgui: Fix CPU rendering on Surface · c62acbd1
      Dan Stoza authored
      When the surface damage code went in, it incorrectly assumed that if
      an application was doing CPU rendering, it would be using lock and
      unlockAndPost instead of dequeue and queue, so it repurposed the dirty
      region too aggressively. This change keeps it from clobbering the
      dirty region if a CPU producer is attached.
      
      Bug: 20431815
      Change-Id: Id4dfd71378311ea822f0289f6de2d20a7bd84014
      c62acbd1
  9. 20 Apr, 2015 3 commits
    • Dan Stoza's avatar
      libgui: Fix some bitrot/warnings in tests · f8cebe54
      Dan Stoza authored
      These tests hadn't been run in a while and had accumulated some rot.
      This fixes most of the compile warnings and some tests which fail
      incorrectly, but 2 failures remain on N6.
      
      Change-Id: I7fee78cd058a32f4d7df40ec9f899ff767f68517
      f8cebe54
    • Dan Stoza's avatar
      libui/libgui: Fix errors in parceling · eea6d682
      Dan Stoza authored
      BufferItem and GraphicBuffer were not parceling correctly, which had
      not been noticed because the libgui tests (specifically, one that
      tests placing a BufferQueue in a separate process from the IGBP/C)
      had not been run recently. This change fixes the errors found in
      those classes.
      
      Change-Id: Ie224361a534a79115a3481d83ff97f21d154d4f5
      eea6d682
    • Dan Stoza's avatar
      ff5c1a6b
  10. 17 Apr, 2015 1 commit
    • Dan Stoza's avatar
      libgui: Change BufferQueue to use free lists · 8dddc990
      Dan Stoza authored
      BufferQueue used to choose free buffers by scanning through its array
      of slots and picking one based on timestamp. This changes that
      mechanism to use a pair of free lists: one with buffers attached and
      one without. This makes it easier to choose either type of free slot
      depending on the needs of the current operation.
      
      Bug: 13175420
      Change-Id: Ic8398e7511bd11a60a1c82e3ad2ee271c9822be1
      8dddc990
  11. 15 Apr, 2015 10 commits
  12. 14 Apr, 2015 2 commits