Skip to content
Snippets Groups Projects
  1. Jul 12, 2024
    • Mattijs Korpershoek's avatar
      drm_hwcomposer: CI: use local container image for building · ca89ea5a
      Mattijs Korpershoek authored
      
      The freedesktop instance provides a docker container registry with
      ubuntu 23.04 based images ready to be used for building drm_hwcomposer.
      
      Migrate to using that container image in order to:
      - Avoid apt-get installing all dependencies for each job
      - Remove duplication between the Dockerfile and the .gitlab-ci.yml
      
      Since the container image provides aospless, we no longer need to download it
      for each pipeline stage.
      Also, this updates the folder structure:
      
      Before:
      /builds/drm-hwcomposer/drm-hwcomposer/
      /builds/drm-hwcomposer/aospless
      
      After:
      /builds/drm-hwcomposer/drm-hwcomposer/
      /home/user/aospless
      
      For "tidy", this new structure requires to override the BASE_DIR variable.
      
      Signed-off-by: default avatarMattijs Korpershoek <mkorpershoek@baylibre.com>
      ca89ea5a
    • Mattijs Korpershoek's avatar
      drm_hwcomposer: CI: publish docker image to local container registry · a9993071
      Mattijs Korpershoek authored
      drm_hwcomposer provides a .ci/Dockerfile which can be used as a base
      image to rebuild drm_hwcomposer.
      Unfortunetly, the CI stages (build, tidy, style) do not use this
      container image. Instead, it re-installs all the dependencies for
      each stage.
      
      To use this container image, we should also build it via the CI.
      
      Add a new build stage to build the container and publish it to the
      local (gitlab-provided) docker registry.
      
      This way, it can be reused by the other build stages.
      
      Note: as documented in [1], this requires that the configured Gitlab
      runner can run docker in privileged mode.
      
      [1] https://docs.gitlab.com/ee/ci/docker/using_docker_build.html#use-docker-in-docker
      
      
      Signed-off-by: default avatarMattijs Korpershoek <mkorpershoek@baylibre.com>
      a9993071
  2. Jun 28, 2024
  3. Mar 27, 2024
  4. Feb 14, 2024
    • John Stultz's avatar
      drm_hwcomposer: Fix another build warning in HwcDisplay::SetPowerMode() · ffe783c8
      John Stultz authored
      
      Building with AOSP I see:
      
      external/drm_hwcomposer/hwc2_device/HwcDisplay.cpp:768:50: warning: format specifies type 'int' but the argument has type 'HWC2::PowerMode' [-Wformat]
        768 |       ALOGE("Incorrect power mode value (%d)\n", mode);
            |                                          ~~      ^~~~
            |                                                  static_cast<int>(
      
      So this patch tweaks the message to use integer mode_in argument
      to the function.
      
      Change-Id: I9211733137ad194d5040a1d497b008b4c2c491dd
      Signed-off-by: default avatarJohn Stultz <jstultz@google.com>
      ffe783c8
    • John Stultz's avatar
      drm_hwcomposer: Fix build warning in HwcLayer::SetLayerBlendMode · 71d983df
      John Stultz authored
      
      In building with AOSP, I ran into the following warning:
      
      external/drm_hwcomposer/hwc2_device/HwcLayer.cpp:44:43: warning: format specifies type 'int' but the argument has type 'BufferBlendMode' [-Wformat]
         44 |       ALOGE("Unknown blending mode b=%d", blend_mode_);
            |                                      ~~   ^~~~~~~~~~~
            |                                           static_cast<int>(
      
      It seems odd to print the old blend_mode_ value here instead of the
      passed-in mode argument. So switch it so we are printing the invalid
      value given
      
      Signed-off-by: default avatarJohn Stultz <jstultz@google.com>
      Change-Id: Id0fc0a4a5ba093db5c4b6ac99255344fa5112879
      71d983df
  5. Jan 30, 2024
    • Lingkai Dong's avatar
      drm_hwcomposer: Add pl111 to the client backend device list · 1d7ddaba
      Lingkai Dong authored
      PL111[1] is the color LCD controller available on the Armv-A Base
      Platform RevC FVP and the Versatile Express LogicTile FPGA board. The
      8MB video memory of PL111 is barely enough for the two fullscreen
      buffers always requested by SurfaceFlinger for client composition, and
      there is no video memory left for any device composition buffers.
      Therefore we add PL111 to the list of devices that uses the client-only
      composition backend.
      
      [1]: https://developer.arm.com/Processors/PL111
      
      
      
      Change-Id: Ib64ccf5e030b623d5c920eb998c6b22ead89b4c9
      Signed-off-by: Lingkai Dong's avatarLingkai Dong <lingkai.dong@arm.com>
      1d7ddaba
    • Lingkai Dong's avatar
      drm_hwcomposer: Treat unknown connector as internal display · 63ed8076
      Lingkai Dong authored
      
      The code determines if a display is internal or external based on the
      display connector type, and at least one internal display must exist
      which is used as the primary display. Because the FVP Base RevC does
      not model any connector hardware, the reported connector type is none/
      unknown, so we need to treat unknown as an internal connector.
      
      Change-Id: Ifa603f903d74ccad6c7e9da13042994a5fdffe32
      Signed-off-by: Lingkai Dong's avatarLingkai Dong <lingkai.dong@arm.com>
      63ed8076
  6. Nov 21, 2023
  7. Oct 14, 2023
  8. Oct 01, 2023
  9. Sep 19, 2023
  10. Jun 27, 2023
  11. Feb 01, 2023
  12. Jan 28, 2023
    • Yongqin Liu's avatar
      drm_hwcomposer: fix shift compiling error with AOSP · 152bc62d
      Yongqin Liu authored
      
      which reported like this:
          08:58:21 external/drm_hwcomposer/hwc2_device/HwcDisplay.cpp:76:26: error: constexpr variable 'kOne' must be initialized by a constant expression
          08:58:21       constexpr uint64_t kOne = 1L << 32; /* 1.0 in s31.32 format */
          08:58:21                          ^      ~~~~~~~~
          08:58:21 external/drm_hwcomposer/hwc2_device/HwcDisplay.cpp:76:36: note: shift count 32 >= width of type 'long' (32 bits)
          08:58:21       constexpr uint64_t kOne = 1L << 32; /* 1.0 in s31.32 format */
          08:58:21                                    ^
          08:58:21 external/drm_hwcomposer/hwc2_device/HwcDisplay.cpp:76:36: error: shift count >= width of type [-Werror,-Wshift-count-overflow]
          08:58:21       constexpr uint64_t kOne = 1L << 32; /* 1.0 in s31.32 format */
          08:58:21                                    ^  ~~
          08:58:21 external/drm_hwcomposer/hwc2_device/HwcDisplay.cpp:697:71: error: shift count >= width of type [-Werror,-Wshift-count-overflow]
          08:58:21           auto value = uint64_t(matrix[i * kInCtmRows + j] * float(1L << 32));
          08:58:21                                                                       ^  ~~
          08:58:21 3 errors generated.
      
      Test: build passes and could boot to home screen
      
      Change-Id: Ia9dfcd842a186dfbe279da1793363c6a25df0e2f
      Signed-off-by: default avatarYongqin Liu <yongqin.liu@linaro.org>
      152bc62d
  13. Jan 18, 2023
  14. Jan 16, 2023
    • Roman Stratiienko's avatar
      drm_hwcomposer: Introduce SharedFd, use standard c++ RAII for UniqueFd · 76892784
      Roman Stratiienko authored
      
      We use too much dup() system calls for present fence propagating.
      Also when propagating acquire fence we use additional logic for
      skipping such propagation for the validate/test cycle.
      
      Both issues can be solved by introducing SharedFd, which will track
      reference count of fd object.
      
      After that the UniqueFd is used very rarely and can be simplified by
      wrapping it into std::unique_ptr without caring too much of adding
      an extra malloc/free operation.
      
      Signed-off-by: default avatarRoman Stratiienko <r.stratiienko@gmail.com>
      76892784
  15. Jan 04, 2023
  16. Dec 28, 2022
  17. Dec 19, 2022
  18. Dec 11, 2022
  19. Dec 10, 2022
  20. Nov 17, 2022
  21. Nov 16, 2022
  22. Oct 20, 2022
  23. Sep 29, 2022
  24. Sep 08, 2022
  25. Aug 25, 2022
Loading