1. 03 May, 2018 4 commits
  2. 27 Apr, 2018 4 commits
    • John Stultz's avatar
      drm_hwcomposer: Fall back to client compositon if the gl precompostior fails · acc4dcf1
      John Stultz authored
      If the gl precompositor isn't being used, we cannot accept
      every layer as a device composited layer.
      
      Thus this patch adds some extra logic in the validate function
      to fall back to client side compositing if the gl precompositor
      did not initialize properly.
      
      This does force everything to a single plane even if we have
      a few available, but a deeper rework of the validate step
      planning is needed before we can reliably make use of them.
      
      Credit to Rob Herring, who's single plane patch was what this
      was originally based on.
      
      Cc: Marissa Wall <marissaw@google.com>
      Cc: Sean Paul <seanpaul@google.com>
      Cc: Dmitry Shmidt <dimitrysh@google.com>
      Cc: Robert Foss <robert.foss@collabora.com>
      Cc: Matt Szczesiak <matt.szczesiak@arm.com>
      Cc: Liviu Dudau <Liviu.Dudau@arm.com>
      Cc: David Hanna <david.hanna11@gmail.com>
      Cc: Rob Herring <rob.herring@linaro.org>
      Cc: Alexandru-Cosmin Gheorghe <Alexandru-Cosmin.Gheorghe@arm.com>
      Cc: Alistair Strachan <astrachan@google.com>
      Reviewed-by: Rob Herring's avatarRob Herring <robh@kernel.org>
      Signed-off-by: John Stultz's avatarJohn Stultz <john.stultz@linaro.org>
      acc4dcf1
    • John Stultz's avatar
      drm_hwcomposer: Cleanup gl precompositor init and provide uses_GL flag · 3b0c69d3
      John Stultz authored
      The drm_hwcomposer has its own GL pre-compositor which is used
      to squish layers when there are more layers then planes on the
      display hardware. In many ways this duplicates the client-side
      GL compositing that is done in SurfaceFlinger, but in theory can
      be more highly optimized for the hardware.
      
      Unfortunately, due to these optimizations, the drm_hwcomposer's
      pre-compositor becomes somewhat hardware specific (originally
      targeting nvidia hardware, I believe).
      
      So on some hardware, the gl precompositor may not actually
      initialize due to hardware missing features, or the hardware
      supporting different shader APIs.
      
      Rather then try to rework the drm_hwcomposers precompositor
      to be more generic, I instead suggest that when the
      precompositor fails to initialize, we simply fall back to the
      already more widely compatible client compositor in
      SurfaceFlinger.
      
      Thus, this patch cleans up some of the precompositor
      initialization, which didn't handle failures well.
      
      Cc: Marissa Wall <marissaw@google.com>
      Cc: Sean Paul <seanpaul@google.com>
      Cc: Dmitry Shmidt <dimitrysh@google.com>
      Cc: Robert Foss <robert.foss@collabora.com>
      Cc: Matt Szczesiak <matt.szczesiak@arm.com>
      Cc: Liviu Dudau <Liviu.Dudau@arm.com>
      Cc: David Hanna <david.hanna11@gmail.com>
      Cc: Rob Herring <rob.herring@linaro.org>
      Cc: Alexandru-Cosmin Gheorghe <Alexandru-Cosmin.Gheorghe@arm.com>
      Cc: Alistair Strachan <astrachan@google.com>
      Reviewed-by: Rob Herring's avatarRob Herring <robh@kernel.org>
      Signed-off-by: John Stultz's avatarJohn Stultz <john.stultz@linaro.org>
      3b0c69d3
    • John Stultz's avatar
      drm_hwcomposer: Use log/log.h instead of cutils/log.h · 9057a6fc
      John Stultz authored
      When enabling Treble, Android builds are complaining about using
      cutils/log.h so instead use log/log.h
      
      Cc: Marissa Wall <marissaw@google.com>
      Cc: Sean Paul <seanpaul@google.com>
      Cc: Dmitry Shmidt <dimitrysh@google.com>
      Cc: Robert Foss <robert.foss@collabora.com>
      Cc: Matt Szczesiak <matt.szczesiak@arm.com>
      Cc: Liviu Dudau <Liviu.Dudau@arm.com>
      Cc: David Hanna <david.hanna11@gmail.com>
      Cc: Rob Herring <rob.herring@linaro.org>
      Cc: Alexandru-Cosmin Gheorghe <Alexandru-Cosmin.Gheorghe@arm.com>
      Cc: Alistair Strachan <astrachan@google.com>
      Signed-off-by: John Stultz's avatarJohn Stultz <john.stultz@linaro.org>
      9057a6fc
    • Sumit Semwal's avatar
      drm_hwcomposer: Andorid.mk : Mark libdrmhwc_utils as vendor module · 94bb596e
      Sumit Semwal authored
      To allow drm_hwcomposer to build with Treble, set
      the libdrmhwc_utils library as a vendor module.
      
      Cc: Marissa Wall <marissaw@google.com>
      Cc: Sean Paul <seanpaul@google.com>
      Cc: Dmitry Shmidt <dimitrysh@google.com>
      Cc: Robert Foss <robert.foss@collabora.com>
      Cc: Matt Szczesiak <matt.szczesiak@arm.com>
      Cc: Liviu Dudau <Liviu.Dudau@arm.com>
      Cc: David Hanna <david.hanna11@gmail.com>
      Cc: Rob Herring <rob.herring@linaro.org>
      Cc: Alexandru-Cosmin Gheorghe <Alexandru-Cosmin.Gheorghe@arm.com>
      Cc: Alistair Strachan <astrachan@google.com>
      Signed-off-by: Sumit Semwal's avatarSumit Semwal <sumit.semwal@linaro.org>
      [jstultz: commit message tweaks]
      Signed-off-by: John Stultz's avatarJohn Stultz <john.stultz@linaro.org>
      94bb596e
  3. 17 Apr, 2018 2 commits
  4. 04 Apr, 2018 1 commit
  5. 22 Mar, 2018 1 commit
  6. 14 Mar, 2018 1 commit
    • John Stultz's avatar
      drm_hwcomposer: Add platformhisi buffer importer for hikey and hikey960 · 499db604
      John Stultz authored
      This allows for importing buffers allocated from the
      hikey and hikey960 gralloc implementations.
      
      Cc: Marissa Wall <marissaw@google.com>
      Cc: Sean Paul <seanpaul@google.com>
      Cc: Dmitry Shmidt <dimitrysh@google.com>
      Cc: Robert Foss <robert.foss@collabora.com>
      Cc: Matt Szczesiak <matt.szczesiak@arm.com>
      Cc: Liviu Dudau <Liviu.Dudau@arm.com>
      Cc: David Hanna <david.hanna11@gmail.com>
      Cc: Rob Herring <rob.herring@linaro.org>
      Cc: Alexandru-Cosmin Gheorghe <Alexandru-Cosmin.Gheorghe@arm.com>
      Cc: Alistair Strachan <astrachan@google.com>
      Acked-by: Robert Foss's avatarRobert Foss <robert.foss@collabora.com>
      Signed-off-by: John Stultz's avatarJohn Stultz <john.stultz@linaro.org>
      499db604
  7. 28 Feb, 2018 2 commits
  8. 14 Feb, 2018 1 commit
  9. 24 Jan, 2018 1 commit
    • John Stultz's avatar
      drm_hwcomposer: Make sure we set the active state when doing modesets · b365b792
      John Stultz authored
      In trying to use drm_hwcomposer with HiKey/HiKey960 boards, I
      found that the crtc wouldn't intitalize and the atomic commit
      calls were failing.
      
      I initially chased this down to following check in the kernel
      drm_atomic_crtc_check() function failing:
      
       if (state->event && !state->active && !crtc->state->active) {
           DRM_DEBUG_ATOMIC("[CRTC:%d:%s] requesting event but off\n",
                            crtc->base.id, crtc->name);
           return -EINVAL;
       }
      
      Where because a fence was submitted state->event was set, but
      the crtc state was not active. This results in the atomic commit
      to fail and no mode to be set.
      
      After hacking around this in the kernel, Sean Paul helped me
      understand that it was the kernel complaining about the crtc
      state being provided in the atomic commit which did not have the
      active flag set.
      
      Thus, the proper fix is to make sure when we do the modesetting
      that we also set the crtc state active flag in property set.
      
      With this change, the kernel no longer rejects the atomic commit
      and the crtc initializes properly.
      
      Cc: Marissa Wall <marissaw@google.com>
      Cc: Sean Paul <seanpaul@google.com>
      Cc: Dmitry Shmidt <dimitrysh@google.com>
      Cc: Robert Foss <robert.foss@collabora.com>
      Cc: Matt Szczesiak <matt.szczesiak@arm.com>
      Cc: Liviu Dudau <Liviu.Dudau@arm.com>
      Cc: David Hanna <david.hanna11@gmail.com>
      Cc: Rob Herring <rob.herring@linaro.org>
      Signed-off-by: John Stultz's avatarJohn Stultz <john.stultz@linaro.org>
      Signed-off-by: Sean Paul's avatarSean Paul <seanpaul@chromium.org>
      b365b792
  10. 09 Jan, 2018 1 commit
  11. 30 Nov, 2017 1 commit
  12. 01 Nov, 2017 2 commits
  13. 25 Oct, 2017 1 commit
  14. 17 Oct, 2017 1 commit
  15. 09 Oct, 2017 4 commits
  16. 28 Sep, 2017 6 commits
  17. 24 Sep, 2017 1 commit
    • Rob Herring's avatar
      drm_hwcomposer: move library to /vendor · 4f7dc9b6
      Rob Herring authored
      As part of Treble project in Android O, all the device specific files have
      to be located in a separate vendor partition. This is done by setting
      LOCAL_PROPRIETARY_MODULE (the name is misleading). This change will not
      break existing platforms without a vendor partition as it will just move
      files to /system/vendor.
      Signed-off-by: Rob Herring's avatarRob Herring <robh@kernel.org>
      4f7dc9b6
  18. 22 Sep, 2017 2 commits
  19. 21 Sep, 2017 1 commit
  20. 01 Sep, 2017 1 commit
  21. 29 Aug, 2017 1 commit
  22. 24 Aug, 2017 1 commit