[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