drm-hwcomposer merge requestshttps://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests2023-01-04T18:14:42Zhttps://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/214drm_hwcomposer: Add meson.build file2023-01-04T18:14:42ZRoman Stratiienkodrm_hwcomposer: Add meson.build fileDepends on https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/215 and !217 :
This allows building without an AOSP tree, which significantly reduces system requirements.
## CI changes:
Now CI is building drm_...Depends on https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/215 and !217 :
This allows building without an AOSP tree, which significantly reduces system requirements.
## CI changes:
Now CI is building drm_hwcomposer for arm64 arch and generates
ready-to-deploy artifacts.
Dependencies for meson cross build were extracted from Android-13
using [GloDroid/aospext project][1].
./build_deploy.sh script was migrated into Makefile and no longer
require AOSP to work. Usage example:
make bd
Only arm64 platform is supported at this moment.
Other platforms will be added later.
[1]: https://github.com/GloDroid/aospexthttps://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/220Improve multithread handling2023-01-04T14:57:58ZRoman StratiienkoImprove multithread handlingDepends on !219Depends on !219https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/219Remove utils/worker2023-01-04T09:48:29ZRoman StratiienkoRemove utils/workerhttps://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/192drm_hwcomposer: Add and use vintf fragment2023-01-02T17:36:58ZJason Macnakdrm_hwcomposer: Add and use vintf fragment... to specify supported hwcomposer version with drm_hwcomposer.
This is useful for Cuttlefish which can have the option to build with different hwcomposers for testing when the different hwcomposers support different versions.... to specify supported hwcomposer version with drm_hwcomposer.
This is useful for Cuttlefish which can have the option to build with different hwcomposers for testing when the different hwcomposers support different versions.https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/199Draft: drm_hwcomposer: Be more careful with returning the release fences2023-01-02T17:31:54ZRoman StratiienkoDraft: drm_hwcomposer: Be more careful with returning the release fencesDon't return release fence for layer in case buffer wasn't updated.Don't return release fence for layer in case buffer wasn't updated.https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/217drm_hwcomposer: Add support for running CI locally using docker2022-12-19T23:54:58ZRoman Stratiienkodrm_hwcomposer: Add support for running CI locally using dockerPrior to this commit running local CI script required latest non-LTS
Ubuntu installed.
To run CI on host run:
make local_presubmit
To run CI within docker container run:
make ci
With this commit we're also setting the stage ...Prior to this commit running local CI script required latest non-LTS
Ubuntu installed.
To run CI on host run:
make local_presubmit
To run CI within docker container run:
make ci
With this commit we're also setting the stage for meson build.https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/215Various fixes 2022 week 492022-12-12T20:05:35ZRoman StratiienkoVarious fixes 2022 week 49https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/213drm_hwcomposer: Do not invoke ActivateDisplayUsingDPMS when power off2022-11-28T12:38:45ZJia Rendrm_hwcomposer: Do not invoke ActivateDisplayUsingDPMS when power offWhen set power mode to off, should not invoke ActivateDisplayUsingDPMS,
but invoke ExecuteAtomicCommit to commit crtc ACTIVE property change.
Signed-off-by: Jia Ren <jiaren@asrmicro.com>When set power mode to off, should not invoke ActivateDisplayUsingDPMS,
but invoke ExecuteAtomicCommit to commit crtc ACTIVE property change.
Signed-off-by: Jia Ren <jiaren@asrmicro.com>https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/212drm_hwcomposer: Use header library instead of hardcoded path2022-11-17T08:31:20ZRoman Stratiienkodrm_hwcomposer: Use header library instead of hardcoded pathThis allows to put drm_hwcomposer in any directory.This allows to put drm_hwcomposer in any directory.https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/211drm_hwcomposer: CI: Bump-up clang toolchain to v152022-11-15T09:42:53ZRoman Stratiienkodrm_hwcomposer: CI: Bump-up clang toolchain to v15Address new clang-tidy findings, in most cases 'misc-const-correctness'
check was addressed by adding 'const' modifier, or in some cases changed
to 'auto' (where it's better for formatting).Address new clang-tidy findings, in most cases 'misc-const-correctness'
check was addressed by adding 'const' modifier, or in some cases changed
to 'auto' (where it's better for formatting).https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/210drm_hwcomposer: Basic support for shared primary planes2022-10-05T16:40:35ZRoman Stratiienkodrm_hwcomposer: Basic support for shared primary planesFor now just bind the first suitable primary plane to the pipeline
on creation.
Closes: drm-hwcomposer/drm-hwcomposer#68For now just bind the first suitable primary plane to the pipeline
on creation.
Closes: drm-hwcomposer/drm-hwcomposer#68https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/209drm_hwcomposer: check if the plane is being used by any crtc2022-09-29T12:54:54ZYongqin Liudrm_hwcomposer: check if the plane is being used by any crtcif the plane is used for other crtc, then that crtc is not
supported by this plane.
As it's protected by the plane_switching_crtc function
in the kernel drivers/gpu/drm/drm_atomic.c file
Signed-off-by: Yongqin Liu <yongqin.liu@linaro.org>if the plane is used for other crtc, then that crtc is not
supported by this plane.
As it's protected by the plane_switching_crtc function
in the kernel drivers/gpu/drm/drm_atomic.c file
Signed-off-by: Yongqin Liu <yongqin.liu@linaro.org>https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/208drm_hwcomposer: fix BufferInfoImagination build2022-08-25T18:45:02ZAndrii Chepurnyidrm_hwcomposer: fix BufferInfoImagination buildCommit e9fbd8d626a22b changes e9fbd8d626a2 ("drm_hwcomposer:
Set return type to std::optional for BufferInfoGetters") changes
structure naming except defined under HAL_PIXEL_FORMAT_BGRX_8888.
Signed-off-by: Andrii Chepurnyi <andrii_chep...Commit e9fbd8d626a22b changes e9fbd8d626a2 ("drm_hwcomposer:
Set return type to std::optional for BufferInfoGetters") changes
structure naming except defined under HAL_PIXEL_FORMAT_BGRX_8888.
Signed-off-by: Andrii Chepurnyi <andrii_chepurnyi@epam.com>https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/94[RFC V3] drm_hwcomposer: Add optional gem caching mechanism2022-08-25T17:26:49ZAndrii Chepurnyi[RFC V3] drm_hwcomposer: Add optional gem caching mechanismV3:
* Cache only GRALLOC_USAGE_HW_FB buffers
* Minor fix
V2:
diff from V1:
* Use prime_fd as a key
* Create separate importer per display
* Some comments were addressed
V1:
On some platform[1] frequent calls of the drmPrimeFDToHan...V3:
* Cache only GRALLOC_USAGE_HW_FB buffers
* Minor fix
V2:
diff from V1:
* Use prime_fd as a key
* Create separate importer per display
* Some comments were addressed
V1:
On some platform[1] frequent calls of the drmPrimeFDToHandle/drmModeAddFB2
may cause tremendous performance degradation. In case, if DRM driver[2] has
only a primary plane(i.e. all composition done by OpenGL) there is no
practical sense to import/release the same render targets per each frame.
This patch utilizes specific Imagination field ui64Stamp of
the IMG_native_handle_t to clearly identify buffer on which native
handle points. Display hotplug event handling is needed to deallocate
all handles/gem connected with a display.
1. Considering hypervisor-based guest domain, using drm [2] driver.
2. https://elixir.bootlin.com/linux/v5.0/source/drivers/gpu/drm/xen
Comments and suggestions are very appreciated.
Signed-off-by: Andrii Chepurnyi <andrii_chepurnyi@epam.com>Andrii ChepurnyiAndrii Chepurnyihttps://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/207drm_hwcomposer: Fix BufferInfoMaliMeson2022-07-11T18:20:11ZJohn Stultzdrm_hwcomposer: Fix BufferInfoMaliMeson```
In commit e9fbd8d626a2 ("drm_hwcomposer: Set return type to
std::optional for BufferInfoGetters") the final return for
BufferInfoMaliMeson::GetBoInfo() erroneously was changed to
return {} instead of the calculated BufferInfo object....```
In commit e9fbd8d626a2 ("drm_hwcomposer: Set return type to
std::optional for BufferInfoGetters") the final return for
BufferInfoMaliMeson::GetBoInfo() erroneously was changed to
return {} instead of the calculated BufferInfo object.
This simply fixes the issue, returning the BufferInfo.
Change-Id: I03789b48dc4a0df64432f7ff31661746163a96b8
Signed-off-by: John Stultz <jstultz@google.com>
```John StultzJohn Stultzhttps://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/205drm_hwcomposer: Workaround for screen de-activating causing db845c regression2022-06-30T22:32:37ZJohn Stultzdrm_hwcomposer: Workaround for screen de-activating causing db845c regression```
Since commit d0494d9b8097 ("drm_hwcomposer: Fixes for display hotplug /
headless mode"), which introduced an extra call to de-active the display
on de-init, we've seen regressions on db845c with the
VtsHalGraphicsComposerV2_3TargetTe...```
Since commit d0494d9b8097 ("drm_hwcomposer: Fixes for display hotplug /
headless mode"), which introduced an extra call to de-active the display
on de-init, we've seen regressions on db845c with the
VtsHalGraphicsComposerV2_3TargetTest test set.
This seems to be due to an issue on db845c, where after putting the
lt9611 bridge to sleep, the connection detection stops working even
after the chip is reset.
However, on changing the kernel driver to avoid putting the bridge
to sleep so connect detection works, we start to see SIGSEGV crashes
in drm_hwcomposer.
So this patch is a workaround to restore previous behavior to avoid
the regression until we can sort out a proper fixes to db845c and
drm_hwcomposer.
Signed-off-by: John Stultz <jstultz@google.com>
Change-Id: Iff5d3cf3f7fa2f1f2acb68a5a629677137e51188
```John StultzJohn Stultzhttps://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/206drm_hwcomposer: Split the composition cleanup and display's deactivation2022-06-30T19:49:16ZRoman Stratiienkodrm_hwcomposer: Split the composition cleanup and display's deactivationWhen drm_hwcomposer is used with drm/sun4i driver,
`adb shell stop && adb shell start` sequence causes noise on the
unused planes during the bootanimation.
It looks like some bug in the drivers or DRM frontend itself, which
keeps the pl...When drm_hwcomposer is used with drm/sun4i driver,
`adb shell stop && adb shell start` sequence causes noise on the
unused planes during the bootanimation.
It looks like some bug in the drivers or DRM frontend itself, which
keeps the plane assigned to the CRTC if the atomic commit contains CRTC
deactivation.
We need more time to investigate it. For now we can split disposal
into 2 atomic commits, which fixes the noise issue.Roman StratiienkoRoman Stratiienkohttps://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/204drm_hwcomposer: Fix EINTR handling in clock_nanosleep2022-06-22T07:36:19ZJohn Stultzdrm_hwcomposer: Fix EINTR handling in clock_nanosleep```
clock_nanosleep return errno directly
instead of -1 with errno set
Signed-off-by: Keith Mok <keithmok@google.com>
[jstultz: Fixed minor style issues]
Signed-off-by: John Stultz <jstultz@google.com>
Change-Id: I779f2a8234b3dae46d64ef...```
clock_nanosleep return errno directly
instead of -1 with errno set
Signed-off-by: Keith Mok <keithmok@google.com>
[jstultz: Fixed minor style issues]
Signed-off-by: John Stultz <jstultz@google.com>
Change-Id: I779f2a8234b3dae46d64efee2210b7a2c5a92043
```John StultzJohn Stultzhttps://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/203Fix EINTR handling in clock_nanosleep2022-06-22T04:09:25ZMok KeithFix EINTR handling in clock_nanosleepclock_nanosleep return errno directly
instead of -1 with errno set
Signed-off-by: Keith Mok <keithmok@google.com>clock_nanosleep return errno directly
instead of -1 with errno set
Signed-off-by: Keith Mok <keithmok@google.com>https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/merge_requests/202drm_hwcomposer: Don't try to import client layer in headless mode2022-06-02T08:29:13ZRoman Stratiienkodrm_hwcomposer: Don't try to import client layer in headless modePipeline is null in the headless mode, therefore any attempt to
import the buffer causes a null-pointer dereference crash.
Fixes: 4b2cc484f9af ("drm_hwcomposer: Reorganize struct DrmHwcLayer")Pipeline is null in the headless mode, therefore any attempt to
import the buffer causes a null-pointer dereference crash.
Fixes: 4b2cc484f9af ("drm_hwcomposer: Reorganize struct DrmHwcLayer")