<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/mutter.git, branch gnome-3-36</title>
<subtitle>gitlab.gnome.org: GNOME/mutter.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mutter.git/'/>
<entry>
<title>wayland/surface: Do not uncoditionally process surface damage</title>
<updated>2021-12-22T17:01:20+00:00</updated>
<author>
<name>Robert Mader</name>
<email>robert.mader@collabora.com</email>
</author>
<published>2021-12-18T21:00:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mutter.git/commit/?id=9c9e2d7d6057823684bb1669bcb172b9b92e3b83'/>
<id>9c9e2d7d6057823684bb1669bcb172b9b92e3b83</id>
<content type='text'>
Most clients nowadays switched to buffer damage, most notably Mesa
and Xwayland. Thus lets avoid the extra cost of allocating three
`cairo_region_t`s and doing some calculations.

Part-of: &lt;https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2168&gt;

(cherry picked from commit c498ae337f57a67c6e678d549cf9a8070c32f251)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Most clients nowadays switched to buffer damage, most notably Mesa
and Xwayland. Thus lets avoid the extra cost of allocating three
`cairo_region_t`s and doing some calculations.

Part-of: &lt;https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2168&gt;

(cherry picked from commit c498ae337f57a67c6e678d549cf9a8070c32f251)
</pre>
</div>
</content>
</entry>
<entry>
<title>wayland/surface: Use correct default viewport for surface damage</title>
<updated>2021-12-22T17:01:15+00:00</updated>
<author>
<name>Robert Mader</name>
<email>robert.mader@collabora.com</email>
</author>
<published>2021-12-18T20:45:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mutter.git/commit/?id=2abdde1c2884ba654a216e790638e18ce2d90476'/>
<id>2abdde1c2884ba654a216e790638e18ce2d90476</id>
<content type='text'>
If no viewport is set, the neutral viewport is the surface size
without viewport destination size applied - i.e. transform and
scale applied to the buffer size. Change it accordingly, giving
us the same values we'd return in `get_width` in this case.

As result, this only changes cases where a viewport destination
size but no viewport source rectangle is set.

The change fixes exactly such cases, e.g. the Gstreamer Wayland
sink. Can be tested with: `gst-play-1.0 --videosink=waylandsink`.

Part-of: &lt;https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2168&gt;

(cherry picked from commit c1668116959664f04e509130e76a18d55429ca65)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If no viewport is set, the neutral viewport is the surface size
without viewport destination size applied - i.e. transform and
scale applied to the buffer size. Change it accordingly, giving
us the same values we'd return in `get_width` in this case.

As result, this only changes cases where a viewport destination
size but no viewport source rectangle is set.

The change fixes exactly such cases, e.g. the Gstreamer Wayland
sink. Can be tested with: `gst-play-1.0 --videosink=waylandsink`.

Part-of: &lt;https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2168&gt;

(cherry picked from commit c1668116959664f04e509130e76a18d55429ca65)
</pre>
</div>
</content>
</entry>
<entry>
<title>wayland/surface: Switch order for calculating surface damage</title>
<updated>2021-12-22T17:01:11+00:00</updated>
<author>
<name>Robert Mader</name>
<email>robert.mader@collabora.com</email>
</author>
<published>2021-12-18T17:38:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mutter.git/commit/?id=5d3794465550603335bbcf53442a24f866db679c'/>
<id>5d3794465550603335bbcf53442a24f866db679c</id>
<content type='text'>
Process surface damage in the right order, simplifying the
calculations.

No functional change intended.

Part-of: &lt;https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2168&gt;

(cherry picked from commit f4717d0ac51625d271f3a8cdc6804fa9461bc927)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Process surface damage in the right order, simplifying the
calculations.

No functional change intended.

Part-of: &lt;https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2168&gt;

(cherry picked from commit f4717d0ac51625d271f3a8cdc6804fa9461bc927)
</pre>
</div>
</content>
</entry>
<entry>
<title>xwayland: Fix condition for queuing a window to META_QUEUE_CALC_SHOWING</title>
<updated>2021-10-04T08:29:14+00:00</updated>
<author>
<name>Dor Askayo</name>
<email>dor.askayo@gmail.com</email>
</author>
<published>2021-10-01T20:40:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mutter.git/commit/?id=e91b0f8a4b3a72e92c36b94fd0a391ed73b029aa'/>
<id>e91b0f8a4b3a72e92c36b94fd0a391ed73b029aa</id>
<content type='text'>
This logic was changed by accident in df642eb15. The change caused every
Xwayland window to be queued to META_QUEUE_CALC_SHOWING on every surface
commit. As a result, X11 window management events, including _NET_WM_STATE,
were dispatched at clients on every single frame.

Fixes https://gitlab.gnome.org/GNOME/mutter/-/issues/1955

Part-of: &lt;https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2032&gt;
(cherry picked from commit 98d5aa159e0eb9f433b211044ce30cd612d42734)

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2038
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This logic was changed by accident in df642eb15. The change caused every
Xwayland window to be queued to META_QUEUE_CALC_SHOWING on every surface
commit. As a result, X11 window management events, including _NET_WM_STATE,
were dispatched at clients on every single frame.

Fixes https://gitlab.gnome.org/GNOME/mutter/-/issues/1955

Part-of: &lt;https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2032&gt;
(cherry picked from commit 98d5aa159e0eb9f433b211044ce30cd612d42734)

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2038
</pre>
</div>
</content>
</entry>
<entry>
<title>window-actor/wayland: Remove subsurface actors on dispose</title>
<updated>2021-09-02T21:51:43+00:00</updated>
<author>
<name>Robert Mader</name>
<email>robert.mader@posteo.de</email>
</author>
<published>2021-08-06T11:09:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mutter.git/commit/?id=59deaeea2758397b8f261b880aad247b285c8028'/>
<id>59deaeea2758397b8f261b880aad247b285c8028</id>
<content type='text'>
Destroying the window actor also destroys all its children. Subsurfaces
however may get reused. If the client did not unparent them before
the window actor got destroyed, they will be left without actor
which results in a crash.

Unparent all actors of subsurfaces on dispose to avoid that.

Closes https://gitlab.gnome.org/GNOME/mutter/-/issues/1892

Part-of: &lt;https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1958&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Destroying the window actor also destroys all its children. Subsurfaces
however may get reused. If the client did not unparent them before
the window actor got destroyed, they will be left without actor
which results in a crash.

Unparent all actors of subsurfaces on dispose to avoid that.

Closes https://gitlab.gnome.org/GNOME/mutter/-/issues/1892

Part-of: &lt;https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1958&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>wayland/subsurface: Handle node unlinking on parent destroyed</title>
<updated>2021-09-02T21:47:50+00:00</updated>
<author>
<name>Robert Mader</name>
<email>robert.mader@posteo.de</email>
</author>
<published>2021-08-06T11:10:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mutter.git/commit/?id=62474e3b3fd965b3b8b2458d424ef75b17bbd59f'/>
<id>62474e3b3fd965b3b8b2458d424ef75b17bbd59f</id>
<content type='text'>
It concerns subsurface state and the subsurface already listenes
for the parent to get destroyed.

Part-of: &lt;https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1958&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It concerns subsurface state and the subsurface already listenes
for the parent to get destroyed.

Part-of: &lt;https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1958&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>wayland/subsurface: Check for parent actor before unparenting</title>
<updated>2021-09-02T21:47:36+00:00</updated>
<author>
<name>Robert Mader</name>
<email>robert.mader@posteo.de</email>
</author>
<published>2021-08-06T11:12:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mutter.git/commit/?id=465037fede0ec2b42a928acb20cf8ea4ab5783bf'/>
<id>465037fede0ec2b42a928acb20cf8ea4ab5783bf</id>
<content type='text'>
No need to assume the actor still has a parent. This silences warnings
in normal builds and prevents a crash in fully optimized ones.

Part-of: &lt;https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1958&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
No need to assume the actor still has a parent. This silences warnings
in normal builds and prevents a crash in fully optimized ones.

Part-of: &lt;https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1958&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>shaped-texture: Fix damage propagation for rotated transforms with viewport</title>
<updated>2021-04-22T16:59:22+00:00</updated>
<author>
<name>Robert Mader</name>
<email>robert.mader@posteo.de</email>
</author>
<published>2021-04-20T12:56:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mutter.git/commit/?id=1448836bb9e16c99a6d8ca3879c5a77991383fa5'/>
<id>1448836bb9e16c99a6d8ca3879c5a77991383fa5</id>
<content type='text'>
When a viewport source rect or destination size is set, `stex-&gt;dst_width`
gives us the the cropped and/or scaled size. At this step, we need the
uncropped/unscaled size however.

Note: this is only ever relevant if buffer transform and viewport are
used together - otherwise the values are the same.


(cherry picked from commit 7d3e2c5f9c09fae50450df691eeba0f067de8cff)

Part-of: &lt;https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1838&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When a viewport source rect or destination size is set, `stex-&gt;dst_width`
gives us the the cropped and/or scaled size. At this step, we need the
uncropped/unscaled size however.

Note: this is only ever relevant if buffer transform and viewport are
used together - otherwise the values are the same.


(cherry picked from commit 7d3e2c5f9c09fae50450df691eeba0f067de8cff)

Part-of: &lt;https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1838&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>wayland/subsurface: Avoid placement ops for detached subsurfaces</title>
<updated>2021-04-22T16:59:22+00:00</updated>
<author>
<name>Robert Mader</name>
<email>robert.mader@posteo.de</email>
</author>
<published>2021-04-16T17:38:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mutter.git/commit/?id=5bd625c33ff1d387938a5314b0bc22d0b38c52e2'/>
<id>5bd625c33ff1d387938a5314b0bc22d0b38c52e2</id>
<content type='text'>
If a subsurface first gets reordered and afterwards detached from
the parent before the parent surface got commited, we currently
would end up reattaching the subsurface to its previous parent.

While clients should avoid this behaviour, it's legit according
to the spec.

We already prevent similar cases where the subsurface is destroyed -
extend that check to detaching, which includes the destroy case.


(cherry picked from commit 6e00e5e6e7c7bab6c2ba408b528e1bdee8f17239)

Part-of: &lt;https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1838&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If a subsurface first gets reordered and afterwards detached from
the parent before the parent surface got commited, we currently
would end up reattaching the subsurface to its previous parent.

While clients should avoid this behaviour, it's legit according
to the spec.

We already prevent similar cases where the subsurface is destroyed -
extend that check to detaching, which includes the destroy case.


(cherry picked from commit 6e00e5e6e7c7bab6c2ba408b528e1bdee8f17239)

Part-of: &lt;https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1838&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>window-actor/wayland: Cleaner subsurface reordering</title>
<updated>2021-04-22T16:59:22+00:00</updated>
<author>
<name>Robert Mader</name>
<email>robert.mader@posteo.de</email>
</author>
<published>2021-04-16T13:15:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mutter.git/commit/?id=ba19e69885def1c7e5740043da7034f0cf74eb45'/>
<id>ba19e69885def1c7e5740043da7034f0cf74eb45</id>
<content type='text'>
Currently when reordering subsurfaces, we un- and reparent all child
actors of the window actor. This is unnecessarily wasteful and
triggers bugs in clutter. While the underlying issue should be fixed
eventually, simply reorder the actors with the tools clutter provides
us with, avoiding those bugs and likely being faster as well.


(cherry picked from commit f7768874e5ec2a808ccec424ed9e238e3dc13987)

Part-of: &lt;https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1838&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently when reordering subsurfaces, we un- and reparent all child
actors of the window actor. This is unnecessarily wasteful and
triggers bugs in clutter. While the underlying issue should be fixed
eventually, simply reorder the actors with the tools clutter provides
us with, avoiding those bugs and likely being faster as well.


(cherry picked from commit f7768874e5ec2a808ccec424ed9e238e3dc13987)

Part-of: &lt;https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1838&gt;
</pre>
</div>
</content>
</entry>
</feed>
