Skip to content
Snippets Groups Projects
  1. Mar 20, 2024
  2. Mar 19, 2024
    • Prabir Pradhan's avatar
    • Treehugger Robot's avatar
    • Xiang Wang's avatar
      Add ADPF GPU impl flag for SurfaceFlinger · 05cb7647
      Xiang Wang authored
      Bug: 284324521
      Test: atest FlagManagerTest
      Change-Id: Iaa137969d00aa5cfd50b3c647cdd836e09b9d63e
      05cb7647
    • Patrick Williams's avatar
      Allow root to create secure virtual displays. · e58a92b7
      Patrick Williams authored
      Bug: 324890339
      Test: SurfaceFlinger_test
      Change-Id: I6b49f3dfc3d66dd7d5e66f99b9947245fc708bc0
      e58a92b7
    • Rachel Lee's avatar
      Add MRR guard logic to SF scheduler · 45681988
      Rachel Lee authored
      Uses a flag to guard the new dVRR scheduler features
      from MRR devices. This is to easily allow development on
      dVRR devices and MRR devices separately.
      
      Bug: 330224639
      Test: atest libsurfaceflinger_unittest
      Test: atest CtsSurfaceControlTestsStaging
      Test: dumpsys and observe no category or GTE
      Change-Id: I8be520b5630c1a8fbde5f0fb2265e803e46983a8
      45681988
    • Dominik Laskowski's avatar
      SF: Match followers' refresh rate to pacesetter's · 963da1c0
      Dominik Laskowski authored
      Multi-display refresh rate selection was flawed: The scheduler runs the
      refresh rate selection algorithm for each display, and then filters the
      candidate modes of each follower to match the pacesetter's refresh rate.
      
      This means that:
      
      1. The followers incorrectly consider refresh rates that don't match the
         pacesetter. Because the DM-specified constraint is [59, 61] Hz, some
         situations caused selection of a fractional rate (e.g. 59.94) instead
         of 60 on certain external displays. The result would be black screens
         for several seconds due to mode sets if the selection was not stable.
      
      2. The followers incorrectly evaluate heuristics that should only affect
         the pacesetter, e.g. per-surface votes, global signals.
      
      Fix this by teaching RefreshRateSelector about follower displays.
      
      Foldables also benefit from no longer running the algorithm twice.
      
      Fixes: 324188430
      Bug: 329111930
      Test: No black screen for 4 seconds upon rotating mirrored YouTube.
      Test: 60+60 still works on foldables.
      Test: RefreshRateSelectorTest.pacesetterConsidered
      Change-Id: Ie1b27e81d860a709c85651f068fedb2b496861de
      Merged-In: Ie1b27e81d860a709c85651f068fedb2b496861de
      963da1c0
    • Vishnu Nair's avatar
      Add support for --list debug command and fix --latency · d1a0578e
      Vishnu Nair authored
      Fixes: 329247258
      Test: presubmit
      Change-Id: I680207e5ed7e4c7cd9fba9b502b3caeffa415c55
      d1a0578e
    • Zimuzo Ezeozue's avatar
    • Treehugger Robot's avatar
    • Dominik Laskowski's avatar
    • Rachel Lee's avatar
      Add MRR guarding flag frame_rate_category_mrr · 52f0abec
      Rachel Lee authored
      This flag will guard new dVRR scheduler features from MRR devices.
      
      Bug: 330224639
      Test: presubmit
      Change-Id: Ib180f5fb800de19758362d80d0d3e280d5cf378d
      52f0abec
    • Prabir Pradhan's avatar
      InputTracer: Adjust traced event sensitivity based on allow-list · bf3c8322
      Prabir Pradhan authored
      An allow-list of packages will be defined in the perfetto config for
      input traces. We can only allow an event to traced completely (i.e.
      treated as a non-sensitive event) if _all_ of the UIDs that the event is
      targeting are allow-listed for the trace.
      
      In each trace instace, we maintain a cache of whether UIDs seen so far
      are allow-listed. Since the allow-list is specified through a list of
      package names, we must query PackageManager through the InputDispatcher
      policy to look up the packages that correspond to each UID that we see.
      
      Bug: 210460522
      Test: manual with perfetto
      Change-Id: I9c19a5ed941ebc239dccc0363cc6553733e16afd
      bf3c8322
    • Prabir Pradhan's avatar
      InputTracer: Ensure tracer thread is destructed first · 1cdb2fab
      Prabir Pradhan authored
      InputThread stops when its destructor is called. Initialize it
      last in ThreadedBackend so that it is the first thing to be
      destructed. This will guarantee the thread will not access other
      members that have already been destructed.
      
      Bug: 330211703
      Change-Id: Ia50585d8276fe87d40d5528b3eb9480a64ea9854
      Test: None
      1cdb2fab
    • Nolan Scobie's avatar
      Create and plumb SkiaBackendTexture abstraction layer over GrBackendTexture · ca050286
      Nolan Scobie authored
      This means AutoBackendTexture is not aware of backend-specific texture
      type and API details, and will be able to accept either a Ganesh or
      Graphite variant of SkiaBackendTexture.
      
      Also delegated SkiaBackendTexture creation to SkiaGpuContext, so that
      backend-specific contexts handle creating backend-specifc textures.
      
      Test: manual validation (GL+VK) & existing tests (refactor)
      Bug: b/293371537
      Change-Id: Ia65306cc825b71fe0b89c7f8545ce1c71a81d86b
      ca050286
    • Devin Moore's avatar
      Add APersistableBundle to lldnk · ef710a3a
      Devin Moore authored
      Test: lunch aosp_cf_x86_64_only_phone-next-userdebug
      Test: VtsHalWifiSupplicantStaNetworkTargetTest
      Bug: 328328863
      (cherry picked from https://android-review.googlesource.com/q/commit:eb653ee3aeaebc02c3439655673b135d397ecdec)
      Merged-In: I4bc27098f09213564e4ec39036783b1a853a11b3
      Change-Id: I4bc27098f09213564e4ec39036783b1a853a11b3
      ef710a3a
    • Zimuzo Ezeozue's avatar
      Revert^2 "Fix check for whether a trace tag is enabled" · 68a0d27a
      Zimuzo Ezeozue authored
      83483148
      
      Change-Id: I9e37dbb1e6396a8456c57df68932c96dc289d804
      Bug: 330172681
      68a0d27a
    • Ying Wei's avatar
      Correct SF frame interval. · 2b57f461
      Ying Wei authored
      When SF fps doesn't match vsync rate (either due to vrr or frame rate
      override), the frame interval calculation in Scheduler should take this
      into account.
      
      Bug: 328352850
      Test: atest CtsSurfaceControlTests
      Test: atest libsurfaceflinger_unittest
      Test: atest FrameRateOverrideTest
      Change-Id: I3261c7f2245fcb64c3e79bb3dcb21f1b0e44a395
      (cherry picked from commit af854add)
      Merged-In: I3261c7f2245fcb64c3e79bb3dcb21f1b0e44a395
      2b57f461
    • Dominik Laskowski's avatar
      SF: Match followers' refresh rate to pacesetter's · 9e88d62f
      Dominik Laskowski authored
      Multi-display refresh rate selection was flawed: The scheduler runs the
      refresh rate selection algorithm for each display, and then filters the
      candidate modes of each follower to match the pacesetter's refresh rate.
      
      This means that:
      
      1. The followers incorrectly consider refresh rates that don't match the
         pacesetter. Because the DM-specified constraint is [59, 61] Hz, some
         situations caused selection of a fractional rate (e.g. 59.94) instead
         of 60 on certain external displays. The result would be black screens
         for several seconds due to mode sets if the selection was not stable.
      
      2. The followers incorrectly evaluate heuristics that should only affect
         the pacesetter, e.g. per-surface votes, global signals.
      
      Fix this by teaching RefreshRateSelector about follower displays.
      
      Foldables also benefit from no longer running the algorithm twice.
      
      Fixes: 324188430
      Bug: 329111930
      Test: No black screen for 4 seconds upon rotating mirrored YouTube.
      Test: 60+60 still works on foldables.
      Test: RefreshRateSelectorTest.pacesetterConsidered
      Change-Id: Ie1b27e81d860a709c85651f068fedb2b496861de
      9e88d62f
Loading