The superseded frame is always the oldest frame so it's the head of
the queue, not the tail. Aside from anything else, the call to
`meta_onscreen_native_notify_frame_complete` that follows *does* use
the head and not the tail.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4310>
`gdctl show` now prints "monitor preferences", which currently consists
of only the luminance setting.
`gdctl prefs` is introduced, where one can run e.g. `gdctl prefs
--monitor DP-1 --luminance 80.0` to set the output luminance of the
monitor connected to DP-1 to 80%.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4271>
This aims to allow configuring the output luminance currently used via
the color state shaders. It will replace the output luminance property
of the debug control API.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4271>
compare_window_position calls into meta_window_stack_position_compare
with inverted inputs instead of duplicating the logic.
This comes at the cost of an extra meta_stack_ensure_sorted which should
be culled out.
To ensure this, need_resort is reset before the sorting process starts.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4183>
Since these will not be used from now on, we can finally clean up
meta_stack_windows_cmp, window_stack_cmp and meta_display_stack_cmp.
Now the only comparison function is meta_window_stack_position_compare.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4183>
When closing some wayland apps using text-input-v3, text_input_destructor
could remove resource in focus_resource_list without resetting focus.
This could be an issue if, the focus is on a wayland app not using text-
input-v3 after closing those. Text committing would fail, and the
candidate window would always show on previous entry.
This commit adds check in text_input_destructor, resetting focus if
necessary.
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4776
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4164>
The steps for this test:
* For each testing color create an actor and assign the color to it.
* Create a src_color_state and set it to all actors.
* Create a target_color_state and set it to the stage_view.
* Wait for paint.
* Read the color for each actor which will be different after the
color-state transformation.
* Do the same transformation on CPU for each test color.
* Validate that the resulting colors match.
In the future this test will be extended to compare transformations
between color_state_params and color_state_icc.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4230>
This is a CPU-based transformation method that performs the
same transformation implemented on GPU shaders.
The transformation gets an array of pixels in RGB float format and
returns an array of pixels transformed.
This will be used in the next commit to compare the results
between CPU and GPU, validating the shader implementations.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4230>