mirror of
https://github.com/brl/mutter.git
synced 2025-04-15 06:39:38 +00:00
kms/connector: Track max_bpc in KmsConnectorState
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3552>
This commit is contained in:
parent
e9e613a6c3
commit
3e14edb00c
@ -195,19 +195,6 @@ has_privacy_screen_software_toggle (MetaKmsConnector *connector)
|
|||||||
META_KMS_CONNECTOR_PROP_PRIVACY_SCREEN_SW_STATE) != 0;
|
META_KMS_CONNECTOR_PROP_PRIVACY_SCREEN_SW_STATE) != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
const MetaKmsRange *
|
|
||||||
meta_kms_connector_get_max_bpc (MetaKmsConnector *connector)
|
|
||||||
{
|
|
||||||
const MetaKmsRange *range = NULL;
|
|
||||||
|
|
||||||
if (connector->current_state &&
|
|
||||||
meta_kms_connector_get_prop_id (connector,
|
|
||||||
META_KMS_CONNECTOR_PROP_MAX_BPC))
|
|
||||||
range = &connector->current_state->max_bpc;
|
|
||||||
|
|
||||||
return range;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
sync_fd_held (MetaKmsConnector *connector,
|
sync_fd_held (MetaKmsConnector *connector,
|
||||||
MetaKmsImplDevice *impl_device)
|
MetaKmsImplDevice *impl_device)
|
||||||
@ -446,6 +433,7 @@ state_set_properties (MetaKmsConnectorState *state,
|
|||||||
prop = &props[META_KMS_CONNECTOR_PROP_MAX_BPC];
|
prop = &props[META_KMS_CONNECTOR_PROP_MAX_BPC];
|
||||||
if (prop->prop_id)
|
if (prop->prop_id)
|
||||||
{
|
{
|
||||||
|
state->max_bpc.supported = TRUE;
|
||||||
state->max_bpc.value = prop->value;
|
state->max_bpc.value = prop->value;
|
||||||
state->max_bpc.min_value = prop->range_min;
|
state->max_bpc.min_value = prop->range_min;
|
||||||
state->max_bpc.max_value = prop->range_max;
|
state->max_bpc.max_value = prop->range_max;
|
||||||
@ -1063,7 +1051,8 @@ meta_kms_connector_state_changes (MetaKmsConnectorState *state,
|
|||||||
if (!kms_modes_equal (state->modes, new_state->modes))
|
if (!kms_modes_equal (state->modes, new_state->modes))
|
||||||
return META_KMS_RESOURCE_CHANGE_FULL;
|
return META_KMS_RESOURCE_CHANGE_FULL;
|
||||||
|
|
||||||
if (state->max_bpc.value != new_state->max_bpc.value ||
|
if (state->max_bpc.supported != new_state->max_bpc.supported ||
|
||||||
|
state->max_bpc.value != new_state->max_bpc.value ||
|
||||||
state->max_bpc.min_value != new_state->max_bpc.min_value ||
|
state->max_bpc.min_value != new_state->max_bpc.min_value ||
|
||||||
state->max_bpc.max_value != new_state->max_bpc.max_value)
|
state->max_bpc.max_value != new_state->max_bpc.max_value)
|
||||||
return META_KMS_RESOURCE_CHANGE_FULL;
|
return META_KMS_RESOURCE_CHANGE_FULL;
|
||||||
|
@ -57,7 +57,12 @@ typedef struct _MetaKmsConnectorState
|
|||||||
|
|
||||||
MetaMonitorTransform panel_orientation_transform;
|
MetaMonitorTransform panel_orientation_transform;
|
||||||
|
|
||||||
MetaKmsRange max_bpc;
|
struct {
|
||||||
|
uint64_t value;
|
||||||
|
uint64_t min_value;
|
||||||
|
uint64_t max_value;
|
||||||
|
gboolean supported;
|
||||||
|
} max_bpc;
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
MetaOutputColorspace value;
|
MetaOutputColorspace value;
|
||||||
@ -100,8 +105,6 @@ const MetaKmsConnectorState * meta_kms_connector_get_current_state (MetaKmsConne
|
|||||||
|
|
||||||
gboolean meta_kms_connector_is_privacy_screen_supported (MetaKmsConnector *connector);
|
gboolean meta_kms_connector_is_privacy_screen_supported (MetaKmsConnector *connector);
|
||||||
|
|
||||||
const MetaKmsRange * meta_kms_connector_get_max_bpc (MetaKmsConnector *connector);
|
|
||||||
|
|
||||||
gboolean meta_kms_connector_is_color_space_supported (MetaKmsConnector *connector,
|
gboolean meta_kms_connector_is_color_space_supported (MetaKmsConnector *connector,
|
||||||
MetaOutputColorspace color_space);
|
MetaOutputColorspace color_space);
|
||||||
|
|
||||||
|
@ -88,10 +88,3 @@ typedef enum _MetaKmsPropType
|
|||||||
META_KMS_PROP_TYPE_RAW = 0,
|
META_KMS_PROP_TYPE_RAW = 0,
|
||||||
META_KMS_PROP_TYPE_FIXED_16,
|
META_KMS_PROP_TYPE_FIXED_16,
|
||||||
} MetaKmsPropType;
|
} MetaKmsPropType;
|
||||||
|
|
||||||
typedef struct _MetaKmsRange
|
|
||||||
{
|
|
||||||
uint64_t value;
|
|
||||||
uint64_t min_value;
|
|
||||||
uint64_t max_value;
|
|
||||||
} MetaKmsRange;
|
|
||||||
|
@ -316,7 +316,6 @@ meta_output_kms_new (MetaGpuKms *gpu_kms,
|
|||||||
const MetaKmsConnectorState *connector_state;
|
const MetaKmsConnectorState *connector_state;
|
||||||
GArray *crtcs;
|
GArray *crtcs;
|
||||||
GList *l;
|
GList *l;
|
||||||
const MetaKmsRange *max_bpc_range;
|
|
||||||
|
|
||||||
gpu_id = meta_gpu_kms_get_id (gpu_kms);
|
gpu_id = meta_gpu_kms_get_id (gpu_kms);
|
||||||
connector_id = meta_kms_connector_get_id (kms_connector);
|
connector_id = meta_kms_connector_get_id (kms_connector);
|
||||||
@ -367,11 +366,10 @@ meta_output_kms_new (MetaGpuKms *gpu_kms,
|
|||||||
output_info->hotplug_mode_update = connector_state->hotplug_mode_update;
|
output_info->hotplug_mode_update = connector_state->hotplug_mode_update;
|
||||||
output_info->supports_underscanning = connector_state->underscan.supported;
|
output_info->supports_underscanning = connector_state->underscan.supported;
|
||||||
|
|
||||||
max_bpc_range = meta_kms_connector_get_max_bpc (kms_connector);
|
if (connector_state->max_bpc.supported)
|
||||||
if (max_bpc_range)
|
|
||||||
{
|
{
|
||||||
output_info->max_bpc_min = max_bpc_range->min_value;
|
output_info->max_bpc_min = connector_state->max_bpc.min_value;
|
||||||
output_info->max_bpc_max = max_bpc_range->max_value;
|
output_info->max_bpc_max = connector_state->max_bpc.max_value;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (connector_state->edid_data)
|
if (connector_state->edid_data)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user