https://bugs.kde.org/show_bug.cgi?id=456511

Nate Graham <n...@kde.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Latest Commit|https://invent.kde.org/plas |https://invent.kde.org/plas
                   |ma/kwin/commit/b3214db0b7af |ma/kwin/commit/062afee75bd6
                   |f89a82dbc4769f22c548f55863c |1e225d72b89c2b5e413e61cd23d
                   |f                           |8

--- Comment #31 from Nate Graham <n...@kde.org> ---
Git commit 062afee75bd61e225d72b89c2b5e413e61cd23d8 by Nate Graham, on behalf
of Vlad Zahorodnii.
Committed on 05/10/2022 at 18:35.
Pushed by ngraham into branch 'Plasma/5.26'.

x11: Make damage region fetching code more robust to errors

With DamageReportNonEmpty damage report level, the x server will
send kwin a DamageNotify when the damage region changes from empty to
not empty.

The damage region will be made empty when SurfaceItemX11 calls
xcb_damage_subtract().

It appears like xcb_generate_id() can return us an already associated
XID, which eventually results in xcb_damage_subtract() failing and
breaking state tracking in SurfaceItemX11. KWin will no longer receive
DamageNotify events and some windows will freeze.

In order to make getting BadIdChoice less catastrophic, this change
makes the SurfaceItemX11 reset m_isDamaged after successfully fetching
the damage region. If xcb_generate_id() returns us a bad id, kwin will
try to fetch the damage again in the next frame.


(cherry picked from commit b3214db0b7aff89a82dbc4769f22c548f55863cf)

M  +1    -1    src/surfaceitem_x11.cpp

https://invent.kde.org/plasma/kwin/commit/062afee75bd61e225d72b89c2b5e413e61cd23d8

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to