mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2026-04-21 06:46:46 -04:00
Merge branch 'display_tiling_clean_new' into 'master'
Draft: Display Tiling for DRM backend See merge request wlroots/wlroots!3344
This commit is contained in:
commit
5e9f77f4ff
11 changed files with 333 additions and 8 deletions
|
|
@ -134,6 +134,70 @@ void parse_edid(struct wlr_drm_connector *conn, size_t len, const uint8_t *data)
|
|||
}
|
||||
}
|
||||
|
||||
void parse_tile(struct wlr_drm_connector *conn, size_t len, const uint8_t *data) {
|
||||
struct wlr_output *output = &conn->output;
|
||||
if (len > 0) {
|
||||
int ret;
|
||||
ret = sscanf((char*)data, "%d:%d:%d:%d:%d:%d:%d:%d",
|
||||
&output->tile_info.group_id,
|
||||
&output->tile_info.tile_is_single_monitor,
|
||||
&output->tile_info.num_h_tile,
|
||||
&output->tile_info.num_v_tile,
|
||||
&output->tile_info.tile_h_loc,
|
||||
&output->tile_info.tile_v_loc,
|
||||
&output->tile_info.tile_h_size,
|
||||
&output->tile_info.tile_v_size);
|
||||
if(ret != 8)
|
||||
wlr_log(WLR_ERROR, "Unable to understand tile information for "
|
||||
"output %s", output->name);
|
||||
else
|
||||
wlr_log(WLR_INFO, "Output %s TILE information: "
|
||||
"group ID %d, single monitor %d, total %d horizontal tiles, "
|
||||
"total %d vertical tiles, horizontal tile %d, vertical tile "
|
||||
"%d, width %d, height %d",
|
||||
output->name,
|
||||
output->tile_info.group_id,
|
||||
output->tile_info.tile_is_single_monitor,
|
||||
output->tile_info.num_h_tile,
|
||||
output->tile_info.num_v_tile,
|
||||
output->tile_info.tile_h_loc,
|
||||
output->tile_info.tile_v_loc,
|
||||
output->tile_info.tile_h_size,
|
||||
output->tile_info.tile_v_size);
|
||||
}
|
||||
else
|
||||
wlr_log(WLR_DEBUG, "No tile information available for output %s",
|
||||
output->name);
|
||||
}
|
||||
|
||||
const char *conn_get_name(uint32_t type_id) {
|
||||
switch (type_id) {
|
||||
case DRM_MODE_CONNECTOR_Unknown: return "Unknown";
|
||||
case DRM_MODE_CONNECTOR_VGA: return "VGA";
|
||||
case DRM_MODE_CONNECTOR_DVII: return "DVI-I";
|
||||
case DRM_MODE_CONNECTOR_DVID: return "DVI-D";
|
||||
case DRM_MODE_CONNECTOR_DVIA: return "DVI-A";
|
||||
case DRM_MODE_CONNECTOR_Composite: return "Composite";
|
||||
case DRM_MODE_CONNECTOR_SVIDEO: return "SVIDEO";
|
||||
case DRM_MODE_CONNECTOR_LVDS: return "LVDS";
|
||||
case DRM_MODE_CONNECTOR_Component: return "Component";
|
||||
case DRM_MODE_CONNECTOR_9PinDIN: return "DIN";
|
||||
case DRM_MODE_CONNECTOR_DisplayPort: return "DP";
|
||||
case DRM_MODE_CONNECTOR_HDMIA: return "HDMI-A";
|
||||
case DRM_MODE_CONNECTOR_HDMIB: return "HDMI-B";
|
||||
case DRM_MODE_CONNECTOR_TV: return "TV";
|
||||
case DRM_MODE_CONNECTOR_eDP: return "eDP";
|
||||
case DRM_MODE_CONNECTOR_VIRTUAL: return "Virtual";
|
||||
case DRM_MODE_CONNECTOR_DSI: return "DSI";
|
||||
case DRM_MODE_CONNECTOR_DPI: return "DPI";
|
||||
case DRM_MODE_CONNECTOR_WRITEBACK: return "Writeback";
|
||||
#ifdef DRM_MODE_CONNECTOR_SPI
|
||||
case DRM_MODE_CONNECTOR_SPI: return "SPI";
|
||||
#endif
|
||||
#ifdef DRM_MODE_CONNECTOR_USB
|
||||
case DRM_MODE_CONNECTOR_USB: return "USB";
|
||||
#endif
|
||||
default: return "Unknown";
|
||||
output->model = strdup(model_str);
|
||||
if (serial_str[0] != '\0') {
|
||||
output->serial = strdup(serial_str);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue