diff --git a/src/backends/native/meta-kms-connector-private.h b/src/backends/native/meta-kms-connector-private.h index a36568daf..562c90845 100644 --- a/src/backends/native/meta-kms-connector-private.h +++ b/src/backends/native/meta-kms-connector-private.h @@ -40,6 +40,8 @@ typedef enum _MetaKmsConnectorProp META_KMS_CONNECTOR_PROP_PANEL_ORIENTATION, META_KMS_CONNECTOR_PROP_NON_DESKTOP, META_KMS_CONNECTOR_PROP_MAX_BPC, + META_KMS_CONNECTOR_PROP_COLORSPACE, + META_KMS_CONNECTOR_PROP_HDR_OUTPUT_METADATA, META_KMS_CONNECTOR_N_PROPS } MetaKmsConnectorProp; @@ -92,6 +94,28 @@ typedef enum _MetaKmsConnectorPanelOrientation META_KMS_CONNECTOR_PANEL_ORIENTATION_UNKNOWN, } MetaKmsConnectorPanelOrientation; +typedef enum _MetaKmsConnectorColorspace +{ + META_KMS_CONNECTOR_COLORSPACE_DEFAULT = 0, + META_KMS_CONNECTOR_COLORSPACE_RGB_WIDE_GAMUT_FIXED_POINT, + META_KMS_CONNECTOR_COLORSPACE_RGB_WIDE_GAMUT_FLOATING_POINT, + META_KMS_CONNECTOR_COLORSPACE_RGB_OPRGB, + META_KMS_CONNECTOR_COLORSPACE_RGB_DCI_P3_RGB_D65, + META_KMS_CONNECTOR_COLORSPACE_BT2020_RGB, + META_KMS_CONNECTOR_COLORSPACE_BT601_YCC, + META_KMS_CONNECTOR_COLORSPACE_BT709_YCC, + META_KMS_CONNECTOR_COLORSPACE_XVYCC_601, + META_KMS_CONNECTOR_COLORSPACE_XVYCC_709, + META_KMS_CONNECTOR_COLORSPACE_SYCC_601, + META_KMS_CONNECTOR_COLORSPACE_OPYCC_601, + META_KMS_CONNECTOR_COLORSPACE_BT2020_CYCC, + META_KMS_CONNECTOR_COLORSPACE_BT2020_YCC, + META_KMS_CONNECTOR_COLORSPACE_SMPTE_170M_YCC, + META_KMS_CONNECTOR_COLORSPACE_DCI_P3_RGB_THEATER, + META_KMS_CONNECTOR_COLORSPACE_N_PROPS, + META_KMS_CONNECTOR_COLORSPACE_UNKNOWN, +} MetaKmsConnectorColorspace; + uint32_t meta_kms_connector_get_prop_id (MetaKmsConnector *connector, MetaKmsConnectorProp prop); diff --git a/src/backends/native/meta-kms-connector.c b/src/backends/native/meta-kms-connector.c index ea5348c2a..0d5742e30 100644 --- a/src/backends/native/meta-kms-connector.c +++ b/src/backends/native/meta-kms-connector.c @@ -40,6 +40,7 @@ typedef struct _MetaKmsConnectorPropTable MetaKmsEnum privacy_screen_hw_enum[META_KMS_CONNECTOR_PRIVACY_SCREEN_N_PROPS]; MetaKmsEnum scaling_mode_enum[META_KMS_CONNECTOR_SCALING_MODE_N_PROPS]; MetaKmsEnum panel_orientation_enum[META_KMS_CONNECTOR_PANEL_ORIENTATION_N_PROPS]; + MetaKmsEnum colorspace_enum[META_KMS_CONNECTOR_COLORSPACE_N_PROPS]; } MetaKmsConnectorPropTable; struct _MetaKmsConnector @@ -967,6 +968,19 @@ init_properties (MetaKmsConnector *connector, .name = "max bpc", .type = DRM_MODE_PROP_RANGE, }, + [META_KMS_CONNECTOR_PROP_COLORSPACE] = + { + .name = "Colorspace", + .type = DRM_MODE_PROP_ENUM, + .enum_values = prop_table->colorspace_enum, + .num_enum_values = META_KMS_CONNECTOR_COLORSPACE_N_PROPS, + .default_value = META_KMS_CONNECTOR_COLORSPACE_UNKNOWN, + }, + [META_KMS_CONNECTOR_PROP_HDR_OUTPUT_METADATA] = + { + .name = "HDR_OUTPUT_METADATA", + .type = DRM_MODE_PROP_BLOB, + }, }, .dpms_enum = { [META_KMS_CONNECTOR_DPMS_ON] = @@ -1071,7 +1085,73 @@ init_properties (MetaKmsConnector *connector, { .name = "Right Side Up", }, - } + }, + .colorspace_enum = { + [META_KMS_CONNECTOR_COLORSPACE_DEFAULT] = + { + .name = "Default", + }, + [META_KMS_CONNECTOR_COLORSPACE_RGB_WIDE_GAMUT_FIXED_POINT] = + { + .name = "RGB_Wide_Gamut_Fixed_Point", + }, + [META_KMS_CONNECTOR_COLORSPACE_RGB_WIDE_GAMUT_FLOATING_POINT] = + { + .name = "RGB_Wide_Gamut_Floating_Point", + }, + [META_KMS_CONNECTOR_COLORSPACE_RGB_OPRGB] = + { + .name = "opRGB", + }, + [META_KMS_CONNECTOR_COLORSPACE_RGB_DCI_P3_RGB_D65] = + { + .name = "DCI-P3_RGB_D65", + }, + [META_KMS_CONNECTOR_COLORSPACE_BT2020_RGB] = + { + .name = "BT2020_RGB", + }, + [META_KMS_CONNECTOR_COLORSPACE_BT601_YCC] = + { + .name = "BT601_YCC", + }, + [META_KMS_CONNECTOR_COLORSPACE_BT709_YCC] = + { + .name = "BT709_YCC", + }, + [META_KMS_CONNECTOR_COLORSPACE_XVYCC_601] = + { + .name = "XVYCC_601", + }, + [META_KMS_CONNECTOR_COLORSPACE_XVYCC_709] = + { + .name = "XVYCC_709", + }, + [META_KMS_CONNECTOR_COLORSPACE_SYCC_601] = + { + .name = "SYCC_601", + }, + [META_KMS_CONNECTOR_COLORSPACE_OPYCC_601] = + { + .name = "opYCC_601", + }, + [META_KMS_CONNECTOR_COLORSPACE_BT2020_CYCC] = + { + .name = "BT2020_CYCC", + }, + [META_KMS_CONNECTOR_COLORSPACE_BT2020_YCC] = + { + .name = "BT2020_YCC", + }, + [META_KMS_CONNECTOR_COLORSPACE_SMPTE_170M_YCC] = + { + .name = "SMPTE_170M_YCC", + }, + [META_KMS_CONNECTOR_COLORSPACE_DCI_P3_RGB_THEATER] = + { + .name = "DCI-P3_RGB_Theater", + }, + }, }; }