mutter/src/tests/monitor-configs
Jonas Ådahl 4ff54997b6 cursor-renderer/native: Create all view objects before realizing
Realizing a cursor will assume view related state objects are valid so
they can mark them as dirty. This assumption broke when there were a
scale changed that happened with multiple CRTCs, as we'd create view
object by view object as we realized the texture. Realizing the texture
would trigger a signal that had the handler assuming the validity of all
view objects, but if we only had gotten to the first, the second view
would not be there yet, thus we'd be doing a NULL pointer dereference.

Creating the view objects first, then handling the updating avoids this
problem by making the already done assumption valid on hotplugs.

The test case added tests exactly this series of events, and uses a
virtual monitor as a cheap trick to make the KMS CRTC based view the
first one, and an arbitrary view the second that previously had its view
object initialized too late.

Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/3012
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3262>
2023-09-13 10:38:06 +00:00
..
system monitor-config-store: Add test for monitor configuration policy 2022-01-25 16:25:48 +00:00
user monitor-config-store: Add test for monitor configuration policy 2022-01-25 16:25:48 +00:00
first-rotated.xml tests/monitor-unit-tests: Make serials more unique 2022-09-01 14:31:40 +00:00
fractional-scale.xml monitor-config-store: Properly escape monitor spec 2021-01-29 16:49:58 +00:00
full-hd-fractional-scale-1.5.xml tests/wayland: Add test for fractional-scale protocol 2023-03-04 22:13:45 +01:00
full-hd-fractional-scale-1.25.xml tests/wayland: Add test for fractional-scale protocol 2023-03-04 22:13:45 +01:00
high-precision-fractional-scale.xml monitor-config-store: Properly escape monitor spec 2021-01-29 16:49:58 +00:00
interlaced.xml monitor-config-store: Properly escape monitor spec 2021-01-29 16:49:58 +00:00
kms-cursor-hotplug-off.xml wayland/cursor-surface: Update cursor on dispose 2023-04-17 19:53:35 +00:00
kms-cursor-hotplug-on.xml wayland/cursor-surface: Update cursor on dispose 2023-04-17 19:53:35 +00:00
kms-cursor-scale.xml cursor-renderer/native: Create all view objects before realizing 2023-09-13 10:38:06 +00:00
lid-scale.xml monitor-config-store: Properly escape monitor spec 2021-01-29 16:49:58 +00:00
lid-switch.xml tests/monitor-unit-tests: Make serials more unique 2022-09-01 14:31:40 +00:00
max-bpc.xml monitor-store-unit-tests: Verify <maxbpc> XML is stored correctly 2022-08-19 17:07:13 +00:00
mirrored.xml tests/monitor-unit-tests: Make serials more unique 2022-09-01 14:31:40 +00:00
non-preferred-tiled-custom-resolution.xml monitor-config-store: Properly escape monitor spec 2021-01-29 16:49:58 +00:00
oneoff.xml monitor-config-store: Properly escape monitor spec 2021-01-29 16:49:58 +00:00
pointer-constraint.xml tests: Add test for constraining pointer on hotplug 2022-01-16 18:38:20 +00:00
policy-dbus-invalid.xml monitor-config-store: Allow changing D-Bus configuration policy 2022-01-25 16:25:48 +00:00
policy-dbus.xml monitor-config-store: Allow changing D-Bus configuration policy 2022-01-25 16:25:48 +00:00
policy-duplicate.xml tests: Add more monitor config policy parsing tests 2022-01-25 16:25:48 +00:00
policy-empty.xml tests: Add more monitor config policy parsing tests 2022-01-25 16:25:48 +00:00
policy-invalid.xml tests: Add more monitor config policy parsing tests 2022-01-25 16:25:48 +00:00
policy-multiple.xml tests: Add more monitor config policy parsing tests 2022-01-25 16:25:48 +00:00
policy.xml monitor-config-store: Add way to define config store loading policy 2022-01-25 16:25:48 +00:00
primary.xml tests/monitor-unit-tests: Make serials more unique 2022-09-01 14:31:40 +00:00
scale.xml monitor-config-store: Properly escape monitor spec 2021-01-29 16:49:58 +00:00
second-rotated-tiled.xml tests/monitor-unit-tests: Make serials more unique 2022-09-01 14:31:40 +00:00
second-rotated.xml tests/monitor-unit-tests: Make serials more unique 2022-09-01 14:31:40 +00:00
single.xml monitor-config-store: Properly escape monitor spec 2021-01-29 16:49:58 +00:00
switch-remember-scale.xml tests: Add test for remembering configured monitor scales 2022-08-15 10:00:25 +00:00
tiled-custom-resolution.xml monitor-config-store: Properly escape monitor spec 2021-01-29 16:49:58 +00:00
tiled.xml monitor-config-store: Properly escape monitor spec 2021-01-29 16:49:58 +00:00
underscanning.xml monitor-config-store: Properly escape monitor spec 2021-01-29 16:49:58 +00:00
unknown-elements.xml monitor-config-store: Make parsing a bit more forgiving 2022-01-25 16:25:48 +00:00
vertical.xml tests/monitor-unit-tests: Make serials more unique 2022-09-01 14:31:40 +00:00