kms: Add some debug logging for added planes/connectors/CRTCs
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3926>
This commit is contained in:
parent
45bf41bf94
commit
fd598e1868
5 changed files with 56 additions and 13 deletions
|
@ -1577,6 +1577,12 @@ meta_kms_connector_new (MetaKmsImplDevice *impl_device,
|
||||||
connector->type_id = drm_connector->connector_type_id;
|
connector->type_id = drm_connector->connector_type_id;
|
||||||
connector->name = make_connector_name (drm_connector);
|
connector->name = make_connector_name (drm_connector);
|
||||||
|
|
||||||
|
meta_topic (META_DEBUG_KMS,
|
||||||
|
"Adding connector %s (%u, %s)",
|
||||||
|
connector->name,
|
||||||
|
connector->id,
|
||||||
|
meta_kms_impl_device_get_path (impl_device));
|
||||||
|
|
||||||
init_properties (connector, impl_device, drm_connector);
|
init_properties (connector, impl_device, drm_connector);
|
||||||
|
|
||||||
meta_kms_connector_read_state (connector, impl_device,
|
meta_kms_connector_read_state (connector, impl_device,
|
||||||
|
|
|
@ -509,6 +509,11 @@ meta_kms_crtc_new (MetaKmsImplDevice *impl_device,
|
||||||
crtc->id = drm_crtc->crtc_id;
|
crtc->id = drm_crtc->crtc_id;
|
||||||
crtc->idx = idx;
|
crtc->idx = idx;
|
||||||
|
|
||||||
|
meta_topic (META_DEBUG_KMS,
|
||||||
|
"Adding CRTC %u (%s)",
|
||||||
|
crtc->id,
|
||||||
|
meta_kms_impl_device_get_path (impl_device));
|
||||||
|
|
||||||
init_properties (crtc, impl_device, drm_crtc);
|
init_properties (crtc, impl_device, drm_crtc);
|
||||||
|
|
||||||
meta_kms_crtc_read_state (crtc, impl_device, drm_crtc, drm_props);
|
meta_kms_crtc_read_state (crtc, impl_device, drm_crtc, drm_props);
|
||||||
|
|
|
@ -535,17 +535,7 @@ add_plane_property (MetaKmsImplDevice *impl_device,
|
||||||
static const char *
|
static const char *
|
||||||
get_plane_type_string (MetaKmsPlane *plane)
|
get_plane_type_string (MetaKmsPlane *plane)
|
||||||
{
|
{
|
||||||
switch (meta_kms_plane_get_plane_type (plane))
|
return meta_kms_plane_type_to_string (meta_kms_plane_get_plane_type (plane));
|
||||||
{
|
|
||||||
case META_KMS_PLANE_TYPE_PRIMARY:
|
|
||||||
return "primary";
|
|
||||||
case META_KMS_PLANE_TYPE_CURSOR:
|
|
||||||
return "cursor";
|
|
||||||
case META_KMS_PLANE_TYPE_OVERLAY:
|
|
||||||
return "overlay";
|
|
||||||
}
|
|
||||||
|
|
||||||
g_assert_not_reached ();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
#include "backends/native/meta-kms-impl-device-atomic.h"
|
#include "backends/native/meta-kms-impl-device-atomic.h"
|
||||||
#include "backends/native/meta-kms-device-private.h"
|
#include "backends/native/meta-kms-device-private.h"
|
||||||
#include "backends/native/meta-kms-update-private.h"
|
#include "backends/native/meta-kms-update-private.h"
|
||||||
|
#include "common/meta-drm-format-helpers.h"
|
||||||
|
|
||||||
typedef struct _MetaKmsPlanePropTable
|
typedef struct _MetaKmsPlanePropTable
|
||||||
{
|
{
|
||||||
|
@ -312,15 +313,23 @@ update_formats (MetaKmsPlane *plane,
|
||||||
in_formats = &plane->prop_table.props[META_KMS_PLANE_PROP_IN_FORMATS];
|
in_formats = &plane->prop_table.props[META_KMS_PLANE_PROP_IN_FORMATS];
|
||||||
blob_id = in_formats->value;
|
blob_id = in_formats->value;
|
||||||
if (blob_id == 0)
|
if (blob_id == 0)
|
||||||
return;
|
{
|
||||||
|
meta_topic (META_DEBUG_KMS, " Plane has no advertised formats");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
fd = meta_kms_impl_device_get_fd (impl_device);
|
fd = meta_kms_impl_device_get_fd (impl_device);
|
||||||
blob = drmModeGetPropertyBlob (fd, blob_id);
|
blob = drmModeGetPropertyBlob (fd, blob_id);
|
||||||
if (!blob)
|
if (!blob)
|
||||||
return;
|
{
|
||||||
|
g_warning ("Failed to rertieve IN_FORMATS property blob: %s",
|
||||||
|
g_strerror (errno));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (blob->length < sizeof (struct drm_format_modifier_blob))
|
if (blob->length < sizeof (struct drm_format_modifier_blob))
|
||||||
{
|
{
|
||||||
|
g_warning ("IN_FORMATS property blob size invalid");
|
||||||
drmModeFreePropertyBlob (blob);
|
drmModeFreePropertyBlob (blob);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -334,6 +343,16 @@ update_formats (MetaKmsPlane *plane,
|
||||||
{
|
{
|
||||||
GArray *modifiers = g_array_new (FALSE, FALSE, sizeof (uint64_t));
|
GArray *modifiers = g_array_new (FALSE, FALSE, sizeof (uint64_t));
|
||||||
|
|
||||||
|
if (meta_is_topic_enabled (META_DEBUG_KMS))
|
||||||
|
{
|
||||||
|
MetaDrmFormatBuf tmp;
|
||||||
|
|
||||||
|
meta_topic (META_DEBUG_KMS,
|
||||||
|
" Adding format %s (0x%x)",
|
||||||
|
meta_drm_format_to_string (&tmp, formats[fmt_i]),
|
||||||
|
formats[fmt_i]);
|
||||||
|
}
|
||||||
|
|
||||||
for (mod_i = 0; mod_i < blob_fmt->count_modifiers; mod_i++)
|
for (mod_i = 0; mod_i < blob_fmt->count_modifiers; mod_i++)
|
||||||
{
|
{
|
||||||
struct drm_format_modifier *drm_modifier = &drm_modifiers[mod_i];
|
struct drm_format_modifier *drm_modifier = &drm_modifiers[mod_i];
|
||||||
|
@ -649,6 +668,11 @@ meta_kms_plane_new (MetaKmsPlaneType type,
|
||||||
plane->possible_crtcs = drm_plane->possible_crtcs;
|
plane->possible_crtcs = drm_plane->possible_crtcs;
|
||||||
plane->device = meta_kms_impl_device_get_device (impl_device);
|
plane->device = meta_kms_impl_device_get_device (impl_device);
|
||||||
|
|
||||||
|
meta_topic (META_DEBUG_KMS,
|
||||||
|
"Adding %s plane %u (%s)",
|
||||||
|
meta_kms_plane_type_to_string (type),
|
||||||
|
plane->id,
|
||||||
|
meta_kms_impl_device_get_path (impl_device));
|
||||||
init_properties (plane, impl_device, drm_plane, drm_plane_props);
|
init_properties (plane, impl_device, drm_plane, drm_plane_props);
|
||||||
|
|
||||||
meta_kms_plane_read_state (plane, impl_device, drm_plane, drm_plane_props);
|
meta_kms_plane_read_state (plane, impl_device, drm_plane, drm_plane_props);
|
||||||
|
@ -715,3 +739,19 @@ meta_kms_plane_class_init (MetaKmsPlaneClass *klass)
|
||||||
|
|
||||||
object_class->finalize = meta_kms_plane_finalize;
|
object_class->finalize = meta_kms_plane_finalize;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const char *
|
||||||
|
meta_kms_plane_type_to_string (MetaKmsPlaneType plane_type)
|
||||||
|
{
|
||||||
|
switch (plane_type)
|
||||||
|
{
|
||||||
|
case META_KMS_PLANE_TYPE_PRIMARY:
|
||||||
|
return "primary";
|
||||||
|
case META_KMS_PLANE_TYPE_CURSOR:
|
||||||
|
return "cursor";
|
||||||
|
case META_KMS_PLANE_TYPE_OVERLAY:
|
||||||
|
return "overlay";
|
||||||
|
}
|
||||||
|
|
||||||
|
g_assert_not_reached ();
|
||||||
|
}
|
||||||
|
|
|
@ -76,3 +76,5 @@ gboolean meta_kms_plane_is_usable_with (MetaKmsPlane *plane,
|
||||||
void meta_kms_plane_update_set_rotation (MetaKmsPlane *plane,
|
void meta_kms_plane_update_set_rotation (MetaKmsPlane *plane,
|
||||||
MetaKmsPlaneAssignment *plane_assignment,
|
MetaKmsPlaneAssignment *plane_assignment,
|
||||||
MtkMonitorTransform transform);
|
MtkMonitorTransform transform);
|
||||||
|
|
||||||
|
const char * meta_kms_plane_type_to_string (MetaKmsPlaneType plane_type);
|
||||||
|
|
Loading…
Reference in a new issue