mirror of
https://github.com/brl/mutter.git
synced 2024-12-23 11:32:04 +00:00
backends/native: Add some KMS debug logging
Using the g_debug() macro. Set G_DEBUG_MESSAGES to "mutter" to activate log. https://gitlab.gnome.org/GNOME/mutter/issues/548 https://gitlab.gnome.org/GNOME/mutter/merge_requests/525
This commit is contained in:
parent
6aa1026600
commit
22a91f23ad
@ -154,10 +154,18 @@ meta_crtc_kms_set_mode (MetaCrtc *crtc,
|
|||||||
connectors = generate_crtc_connector_list (gpu, crtc);
|
connectors = generate_crtc_connector_list (gpu, crtc);
|
||||||
|
|
||||||
if (connectors)
|
if (connectors)
|
||||||
|
{
|
||||||
mode = crtc->current_mode->driver_private;
|
mode = crtc->current_mode->driver_private;
|
||||||
|
|
||||||
|
g_debug ("Setting CRTC (%ld) mode to %s", crtc->crtc_id, mode->name);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
mode = NULL;
|
mode = NULL;
|
||||||
|
|
||||||
|
g_debug ("Unsetting CRTC (%ld) mode", crtc->crtc_id);
|
||||||
|
}
|
||||||
|
|
||||||
meta_kms_update_mode_set (kms_update,
|
meta_kms_update_mode_set (kms_update,
|
||||||
meta_crtc_kms_get_kms_crtc (crtc),
|
meta_crtc_kms_get_kms_crtc (crtc),
|
||||||
g_steal_pointer (&connectors),
|
g_steal_pointer (&connectors),
|
||||||
|
@ -383,6 +383,68 @@ meta_monitor_manager_kms_get_crtc_gamma (MetaMonitorManager *manager,
|
|||||||
drmModeFreeCrtc (kms_crtc);
|
drmModeFreeCrtc (kms_crtc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static char *
|
||||||
|
generate_gamma_ramp_string (size_t size,
|
||||||
|
unsigned short *red,
|
||||||
|
unsigned short *green,
|
||||||
|
unsigned short *blue)
|
||||||
|
{
|
||||||
|
GString *string;
|
||||||
|
int color;
|
||||||
|
|
||||||
|
string = g_string_new ("[");
|
||||||
|
for (color = 0; color < 3; color++)
|
||||||
|
{
|
||||||
|
unsigned short **color_ptr;
|
||||||
|
char color_char;
|
||||||
|
size_t i;
|
||||||
|
|
||||||
|
switch (color)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
color_ptr = &red;
|
||||||
|
color_char = 'r';
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
color_ptr = &green;
|
||||||
|
color_char = 'g';
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
color_ptr = &blue;
|
||||||
|
color_char = 'b';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
g_string_append_printf (string, " %c: ", color_char);
|
||||||
|
for (i = 0; i < MIN (4, size); i++)
|
||||||
|
{
|
||||||
|
int j;
|
||||||
|
|
||||||
|
if (size > 4)
|
||||||
|
{
|
||||||
|
if (i == 2)
|
||||||
|
g_string_append (string, ",...");
|
||||||
|
|
||||||
|
if (i >= 2)
|
||||||
|
j = i + (size - 4);
|
||||||
|
else
|
||||||
|
j = i;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
j = i;
|
||||||
|
}
|
||||||
|
g_string_append_printf (string, "%s%hu",
|
||||||
|
j == 0 ? "" : ",",
|
||||||
|
(*color_ptr)[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
g_string_append (string, " ]");
|
||||||
|
|
||||||
|
return g_string_free (string, FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
meta_monitor_manager_kms_set_crtc_gamma (MetaMonitorManager *manager,
|
meta_monitor_manager_kms_set_crtc_gamma (MetaMonitorManager *manager,
|
||||||
MetaCrtc *crtc,
|
MetaCrtc *crtc,
|
||||||
@ -393,8 +455,18 @@ meta_monitor_manager_kms_set_crtc_gamma (MetaMonitorManager *manager,
|
|||||||
{
|
{
|
||||||
MetaGpu *gpu = meta_crtc_get_gpu (crtc);
|
MetaGpu *gpu = meta_crtc_get_gpu (crtc);
|
||||||
int kms_fd = meta_gpu_kms_get_fd (META_GPU_KMS (gpu));
|
int kms_fd = meta_gpu_kms_get_fd (META_GPU_KMS (gpu));
|
||||||
|
g_autofree char *gamma_ramp_string = NULL;
|
||||||
|
int ret;
|
||||||
|
|
||||||
drmModeCrtcSetGamma (kms_fd, crtc->crtc_id, size, red, green, blue);
|
gamma_ramp_string = generate_gamma_ramp_string (size, red, green, blue);
|
||||||
|
g_debug ("Setting CRTC (%ld) gamma to %s", crtc->crtc_id, gamma_ramp_string);
|
||||||
|
|
||||||
|
ret = drmModeCrtcSetGamma (kms_fd, crtc->crtc_id, size, red, green, blue);
|
||||||
|
if (ret != 0)
|
||||||
|
{
|
||||||
|
g_warning ("Failed to set CRTC (%ld) Gamma: %s",
|
||||||
|
crtc->crtc_id, g_strerror (-ret));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -69,6 +69,11 @@ meta_output_kms_set_underscan (MetaOutput *output,
|
|||||||
crtc = meta_output_get_assigned_crtc (output);
|
crtc = meta_output_get_assigned_crtc (output);
|
||||||
hborder = MIN (128, (uint64_t) round (crtc->current_mode->width * 0.05));
|
hborder = MIN (128, (uint64_t) round (crtc->current_mode->width * 0.05));
|
||||||
vborder = MIN (128, (uint64_t) round (crtc->current_mode->height * 0.05));
|
vborder = MIN (128, (uint64_t) round (crtc->current_mode->height * 0.05));
|
||||||
|
|
||||||
|
g_debug ("Setting underscan of connector %s to %lu x %lu",
|
||||||
|
meta_kms_connector_get_name (output_kms->kms_connector),
|
||||||
|
hborder, vborder);
|
||||||
|
|
||||||
meta_kms_connector_set_underscanning (output_kms->kms_connector,
|
meta_kms_connector_set_underscanning (output_kms->kms_connector,
|
||||||
kms_update,
|
kms_update,
|
||||||
hborder,
|
hborder,
|
||||||
@ -76,6 +81,9 @@ meta_output_kms_set_underscan (MetaOutput *output,
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
g_debug ("Unsetting underscan of connector %s",
|
||||||
|
meta_kms_connector_get_name (output_kms->kms_connector));
|
||||||
|
|
||||||
meta_kms_connector_unset_underscanning (output_kms->kms_connector,
|
meta_kms_connector_unset_underscanning (output_kms->kms_connector,
|
||||||
kms_update);
|
kms_update);
|
||||||
}
|
}
|
||||||
@ -96,6 +104,10 @@ meta_output_kms_set_power_save_mode (MetaOutput *output,
|
|||||||
{
|
{
|
||||||
MetaOutputKms *output_kms = output->driver_private;
|
MetaOutputKms *output_kms = output->driver_private;
|
||||||
|
|
||||||
|
g_debug ("Setting DPMS state of connector %s to %lu",
|
||||||
|
meta_kms_connector_get_name (output_kms->kms_connector),
|
||||||
|
dpms_state);
|
||||||
|
|
||||||
meta_kms_connector_update_set_dpms_state (output_kms->kms_connector,
|
meta_kms_connector_update_set_dpms_state (output_kms->kms_connector,
|
||||||
kms_update,
|
kms_update,
|
||||||
dpms_state);
|
dpms_state);
|
||||||
|
Loading…
Reference in New Issue
Block a user