output: allow_artifacts -> allow_reconfiguration

The name "allow_artifacts" and associated description is very vague, and
theoretically allow for tearing behavior. Clarify that we only intend to
mean artifacts related to output configuration (e.g., modesets).

References: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3740
This commit is contained in:
Kenny Levinsen 2023-10-06 00:14:32 +02:00 committed by Simon Ser
parent 291431c14f
commit 2cf78f4c5b
4 changed files with 8 additions and 8 deletions

View File

@ -452,7 +452,7 @@ static void drm_connector_state_init(struct wlr_drm_connector_state *state,
const struct wlr_output_state *base) {
*state = (struct wlr_drm_connector_state){
.base = base,
.modeset = base->allow_artifacts,
.modeset = base->allow_reconfiguration,
.active = (base->committed & WLR_OUTPUT_STATE_ENABLED) ?
base->enabled : conn->output.enabled,
};

View File

@ -77,9 +77,9 @@ enum wlr_output_state_mode_type {
*/
struct wlr_output_state {
uint32_t committed; // enum wlr_output_state_field
// Set to true to allow temporary visual artifacts (e.g. black screen) while
// the update is being applied
bool allow_artifacts;
// Set to true to allow output reconfiguration to occur which may result
// in temporary output disruptions and content misrepresentations.
bool allow_reconfiguration;
pixman_region32_t damage; // output-buffer-local coordinates
bool enabled;
float scale;

View File

@ -155,7 +155,7 @@ bool output_ensure_buffer(struct wlr_output *output,
if (state->committed & WLR_OUTPUT_STATE_RENDER_FORMAT) {
needs_new_buffer = true;
}
if (state->allow_artifacts && output->commit_seq == 0 && enabled) {
if (state->allow_reconfiguration && output->commit_seq == 0 && enabled) {
// On first commit, require a new buffer if the compositor called a
// mode-setting function, even if the mode won't change. This makes it
// so the swapchain is created now.

View File

@ -22,7 +22,7 @@ void wlr_output_state_set_enabled(struct wlr_output_state *state,
bool enabled) {
state->committed |= WLR_OUTPUT_STATE_ENABLED;
state->enabled = enabled;
state->allow_artifacts = true;
state->allow_reconfiguration = true;
}
void wlr_output_state_set_mode(struct wlr_output_state *state,
@ -30,7 +30,7 @@ void wlr_output_state_set_mode(struct wlr_output_state *state,
state->committed |= WLR_OUTPUT_STATE_MODE;
state->mode_type = WLR_OUTPUT_STATE_MODE_FIXED;
state->mode = mode;
state->allow_artifacts = true;
state->allow_reconfiguration = true;
}
void wlr_output_state_set_custom_mode(struct wlr_output_state *state,
@ -40,7 +40,7 @@ void wlr_output_state_set_custom_mode(struct wlr_output_state *state,
state->custom_mode.width = width;
state->custom_mode.height = height;
state->custom_mode.refresh = refresh;
state->allow_artifacts = true;
state->allow_reconfiguration = true;
}
void wlr_output_state_set_scale(struct wlr_output_state *state, float scale) {