Re: Add unredirect block / request hints



On Sun, 2012-10-07 at 13:36 +0200, Adel Gadllah wrote:
> Hi,
> 
> I have attached an updated patch based on an email discussion with Martin.
>
> From 047bae702be8180c50119660c858111c5088450f Mon Sep 17 00:00:00 2001
> From: Adel Gadllah <adel gadllah gmail com>
> Date: Tue, 14 Feb 2012 14:30:28 +0100
> Subject: [PATCH] Add _NET_WM_BYPASS_COMPOSITOR and
>  _NET_WM_DONT_BYPASS_COMPOSITOR
> 
> Add properties that allows client windows to hint the compositor that they
> should or should never be unredirected / run uncomposited.
> ---
>  wm-spec/wm-spec.xml | 35 +++++++++++++++++++++++++++++++++++
>  1 Datei geändert, 35 Zeilen hinzugefügt(+)
> 
> diff --git a/wm-spec/wm-spec.xml b/wm-spec/wm-spec.xml
> index 87dc02d..858acbb 100644
> --- a/wm-spec/wm-spec.xml
> +++ b/wm-spec/wm-spec.xml
> @@ -1578,6 +1578,38 @@ Rationale: This gives the compositing manager
> more room for optimizations.
>  For example, it can avoid drawing occluded portions behind the window.
>          </para>
>          </sect2>
> +
> +	<sect2><title>_NET_WM_BYPASS_COMPOSITOR</title>
> +        <programlisting><![CDATA[
> +_NET_WM_BYPASS_COMPOSITOR, ATOM
> +]]></programlisting>
> +        <para>
> +The Client MAY set this property to hint the compositor that the window would
> +benefit from running uncomposited (i.e not redirected offscreen).
> +The compositing manager MAY ignore this hint.
> +        </para>

Why is this property an ATOM? The behavior of the patch you landed for
Mutter is to treat it as a CARDINAL and ignore the property (treat it as
unset) unless it has the value '1'.

I think I would have replaced both properties with a single enumeration:

 0 (or unset) - no preference
 1 - please bypass
 2 - please do not bypass

which also would avoid the question of having both properties set. If we
do leave two properties (if anybody has already shipped it in this form
or we think it makes more sense in the end), then I'd like the spec to
explicitly say which one wins.

I'd also like us to explicitly say that the compositing manager MAY
bypass compositing for both fullscreen and non-fullscreen windows if
bypassing is requested, but MUST NOT bypass if it would cause
differences from the composited appearance.

- Owen

> +        <para>
> +Rationale: Some applications like fullscreen games might want run
> without the overhead
> +of being redirected offscreen (to avoid extra copies) and thus perform better.
> +        </para>
> +        </sect2>
> +
> +	<sect2><title>_NET_WM_DONT_BYPASS_COMPOSITOR</title>
> +        <programlisting><![CDATA[
> +_NET_WM_DONT_BYPASS_COMPOSITOR, ATOM
> +]]></programlisting>
> +        <para>
> +The Client MAY set this property to hint the compositor that the
> window should not
> +be unredirected by any heuristic.
> +The compositing manager MAY ignore this hint.
> +        </para>
> +        <para>
> +Rationale: Some windows might fall into a compositors unredirect heuristics for
> +instance by being fullscreen but might not be performance critical or don't
> +benefit or even being hurt from being unredirected due to other reasons.
> +        </para>
> +        </sect2>
> +



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]