1. 18 Nov, 2013 1 commit
  2. 06 Aug, 2013 1 commit
  3. 19 Jul, 2013 1 commit
    • Mathias Agopian's avatar
      BufferQueue improvements and APIs changes · 595264f1
      Mathias Agopian authored
      this is the first step of a series of improvements to
      BufferQueue. A few things happen in this change:
      
      - setSynchronousMode() goes away as well as the SynchronousModeAllowed flag
      - BufferQueue now defaults to (what used to be) synchronous mode
      - a new "controlled by app" flag is passed when creating consumers and producers
        those flags are used to put the BufferQueue in a mode where it
        will never block if both flags are set. This is achieved by:
        - returning an error from dequeueBuffer() if it would block
        - making sure a buffer is always available by replacing
          the previous buffer with the new one in queueBuffer()
          (note: this is similar to what asynchrnous mode used to be)
      
      Note: in this change EGL's swap-interval 0 is broken; this will be
      fixed in another change.
      
      Change-Id: I691f9507d6e2e158287e3039f2a79a4d4434211d
      595264f1
  4. 13 Jul, 2013 1 commit
  5. 10 Jul, 2013 1 commit
    • Andy McFadden's avatar
      Pay attention to buffer timestamps · 1585c4d9
      Andy McFadden authored
      When acquiring a buffer, SurfaceFlinger now computes the expected
      presentation time and passes it to the BufferQueue acquireBuffer()
      method.  If it's not yet time to display the buffer, acquireBuffer()
      returns PRESENT_LATER instead of a buffer.
      
      The current implementation of the expected-present-time computation
      uses approximations and guesswork.
      
      Bug 7900302
      
      Change-Id: If9345611c5983a11a811935aaf27d6388a5036f1
      1585c4d9
  6. 23 May, 2013 1 commit
    • Lajos Molnar's avatar
      BufferQueue: track buffer-queue by instance vs. by reference · c5d7b7d3
      Lajos Molnar authored
      
      Instead of representing the buffer-queue as a vector of buffer
      indices, represent them as a vector of BufferItems (copies).
      This allows modifying the buffer slots independent of the queued
      buffers.
      
      As part of this change, BufferSlot properties that are only
      been relevant in the buffer-queue have been removed.
      
      Also, invalid scalingMode in queueBuffer now returns an error.
      
      ConsumerBase has also changed to allow reuse of the same
      buffer slots by different buffers.
      
      Change-Id: If2a698fa142b67c69ad41b8eaca6e127eb3ef75b
      Signed-off-by: default avatarLajos Molnar <lajos@google.com>
      Related-to-bug: 7093648
      c5d7b7d3
  7. 17 May, 2013 1 commit
  8. 16 Apr, 2013 1 commit
  9. 13 Feb, 2013 1 commit
    • Jamie Gennis's avatar
      libgui: disallow NULL Fence pointers · 1df8c345
      Jamie Gennis authored
      This change eliminates the uses of a NULL sp<Fence> indicating that no waiting
      is required.  Instead we use a non-NULL but invalid Fence object for which the
      wait methods will return immediately.
      
      Bug: 7892871
      Change-Id: I5360aebe3090422ef6920d56c99fc4eedc642e48
      1df8c345
  10. 05 Oct, 2012 1 commit
    • Jesse Hall's avatar
      Fix race condition in ConsumerBase::addReleaseFence() · 9504eb91
      Jesse Hall authored
      This needs the ConsumerBase mutex locked, but wasn't locking it. Two
      of the four places that called it already held the lock so were fine.
      Now addReleaseFence() takes the lock itself, and I added
      addReleaseFenceLocked() for the two already-locked callers, since in
      one of them dropping the lock would be inconvenient.
      
      Bug: 7289269
      Change-Id: I7a5628adb516f8eec782aa6c14128202f96d7b0a
      9504eb91
  11. 02 Oct, 2012 1 commit
  12. 07 Sep, 2012 1 commit
    • Jamie Gennis's avatar
      libgui: move fence handling into ConsumerBase · b2725415
      Jamie Gennis authored
      This change moves some common fence handling code into the base class for
      BufferQueue consumer classes.  It also makes the ConsumerBase class initialize
      a buffer slot's fence with the acquire fence every time a buffer is acquired.
      
      Change-Id: I0bd88bc269e919653b659bfb3ebfb04dd61692a0
      b2725415
  13. 31 Aug, 2012 1 commit
    • Jamie Gennis's avatar
      BufferQueue: use max acquired buffer count · 72f096fb
      Jamie Gennis authored
      This change makes BufferQueue derive the min undequeued buffer count from a max
      acquired buffer count that is set by the consumer.  This value may be set at
      any time that a producer is not connected to the BufferQueue rather than at
      BufferQueue construction time.
      
      Change-Id: Icf9f1d91ec612a079968ba0a4621deffe48f4e22
      72f096fb
  14. 21 Aug, 2012 1 commit
    • Eino-Ville Talvala's avatar
      Add BufferItemConsumer, a simple BufferQueue consumer. · e232fdca
      Eino-Ville Talvala authored
      BufferItemConsumer allows for acquiring BufferQueue's BufferItems,
      which contain all the data and metadata the BufferQueue has for a
      given graphics buffer.
      
      This consumer is useful when direct access to the native buffer_handles
      is needed by the client.
      
      Also includes a minor cleanup of CpuConsumer's use of 'virtual'.
      
      Bug: 6243944
      Change-Id: If7dc4192b15ac499555f1eda42a85140f2434795
      e232fdca