[PATCH hwc 4/4] drm_hwcomposer: Fall back to client compositon if the gl precompostior fails
Robert Foss
robert.foss at collabora.com
Fri Apr 27 12:17:53 UTC 2018
This patch is:
Acked-by: Robert Foss <robert.foss at collabora.com>
I'll push this series upstream in a few minutes.
On 04/26/2018 09:05 PM, John Stultz wrote:
> 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 at google.com>
> Cc: Sean Paul <seanpaul at google.com>
> Cc: Dmitry Shmidt <dimitrysh at google.com>
> Cc: Robert Foss <robert.foss at collabora.com>
> Cc: Matt Szczesiak <matt.szczesiak at arm.com>
> Cc: Liviu Dudau <Liviu.Dudau at arm.com>
> Cc: David Hanna <david.hanna11 at gmail.com>
> Cc: Rob Herring <rob.herring at linaro.org>
> Cc: Alexandru-Cosmin Gheorghe <Alexandru-Cosmin.Gheorghe at arm.com>
> Cc: Alistair Strachan <astrachan at google.com>
> Reviewed-by: Rob Herring <robh at kernel.org>
> Signed-off-by: John Stultz <john.stultz at linaro.org>
> ---
> v2:
> * Dropped misguided attempt to trivially allocate layers to planes
> ---
> drmhwctwo.cpp | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/drmhwctwo.cpp b/drmhwctwo.cpp
> index 8e00d71..ede75e0 100644
> --- a/drmhwctwo.cpp
> +++ b/drmhwctwo.cpp
> @@ -695,6 +695,13 @@ HWC2::Error DrmHwcTwo::HwcDisplay::ValidateDisplay(uint32_t *num_types,
> layer.set_validated_type(HWC2::Composition::Client);
> ++*num_types;
> break;
> + case HWC2::Composition::Device:
> + if (!compositor_.uses_GL()) {
> + layer.set_validated_type(HWC2::Composition::Client);
> + ++*num_types;
> + break;
> + }
> + /* fall through */
> default:
> layer.set_validated_type(layer.sf_type());
> break;
>
More information about the dri-devel
mailing list