Skip to content

Commit 9e805f0

Browse files
committed
1 parent d093c2e commit 9e805f0

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

Diff for: sway/commands/output/color_profile.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ struct cmd_results *output_cmd_color_profile(int argc, char **argv) {
9090
free(icc_path);
9191

9292
struct wlr_color_transform *tmp =
93-
wlr_color_transform_init_linear_to_icc(data, size);
93+
wlr_color_transform_init_linear_to_icc(WLR_COLOR_NAMED_PRIMARIES_SRGB, data, size);
9494
if (!tmp) {
9595
free(data);
9696
return cmd_results_new(CMD_FAILURE,

Diff for: sway/config/output.c

+15
Original file line numberDiff line numberDiff line change
@@ -490,6 +490,15 @@ static void queue_output_config(struct output_config *oc,
490490
} else {
491491
wlr_output_state_set_render_format(pending, DRM_FORMAT_XRGB8888);
492492
}
493+
494+
if (oc && oc->color_transform == NULL && oc->render_bit_depth == RENDER_BIT_DEPTH_10 &&
495+
(wlr_output->supported_primaries & WLR_COLOR_NAMED_PRIMARIES_BT2020) &&
496+
server.renderer->features.output_color_transform) {
497+
const struct wlr_output_image_description image_desc = {
498+
.primaries = WLR_COLOR_NAMED_PRIMARIES_BT2020,
499+
};
500+
wlr_output_state_set_image_description(pending, &image_desc);
501+
}
493502
}
494503

495504
static bool finalize_output_config(struct output_config *oc, struct sway_output *output) {
@@ -549,6 +558,12 @@ static bool finalize_output_config(struct output_config *oc, struct sway_output
549558
output->color_transform = NULL;
550559
}
551560

561+
if (output->color_transform == NULL && oc && oc->render_bit_depth == RENDER_BIT_DEPTH_10 &&
562+
(wlr_output->supported_primaries & WLR_COLOR_NAMED_PRIMARIES_BT2020) &&
563+
server.renderer->features.output_color_transform) {
564+
output->color_transform = wlr_color_transform_init_srgb(WLR_COLOR_NAMED_PRIMARIES_BT2020);
565+
}
566+
552567
output->max_render_time = oc && oc->max_render_time > 0 ? oc->max_render_time : 0;
553568
output->allow_tearing = oc && oc->allow_tearing > 0;
554569

0 commit comments

Comments
 (0)