mirror of
https://gitlab.freedesktop.org/wayland/weston.git
synced 2026-05-06 17:18:10 +02:00
drm: Log paint node internal names instead of view internal names
Backends work on paint nodes, not views - and the paint node internal name is a superset of the view internal name anyway, so it's not hard to figure out which view a paint node belongs to when reading debug text. Signed-off-by: Derek Foreman <derek.foreman@collabora.com>
This commit is contained in:
parent
ef5164aa06
commit
9022976412
2 changed files with 73 additions and 76 deletions
|
|
@ -702,10 +702,10 @@ drm_fb_compatible_with_plane(struct drm_fb *fb, struct drm_plane *plane,
|
|||
return true;
|
||||
}
|
||||
|
||||
drm_debug(b, "\t\t\t\t[%s] not assigning view %s on %s, "
|
||||
drm_debug(b, "\t\t\t\t[%s] not assigning paint node %s on %s, "
|
||||
"plane %d (format %s (0x%lx) with modifier 0x%llx) not supported\n",
|
||||
drm_output_get_plane_type_name(plane),
|
||||
pnode->view->internal_name,
|
||||
pnode->internal_name,
|
||||
drm_output_get_plane_type_name(plane),
|
||||
plane->plane_id, fb->format->drm_format_name,
|
||||
(unsigned long) fb->format->format,
|
||||
|
|
@ -838,8 +838,8 @@ drm_fb_get_from_paint_node(struct drm_output_state *state,
|
|||
* drm_fb we take an additional ref for the weston_buffer's cache. */
|
||||
buf_fb->fb = drm_fb_ref(fb);
|
||||
|
||||
drm_debug(b, "\t\t\t[view] view %s format: %s\n",
|
||||
ev->internal_name, fb->format->drm_format_name);
|
||||
drm_debug(b, "\t\t\t[paint node] paint node %s format: %s\n",
|
||||
pnode->internal_name, fb->format->drm_format_name);
|
||||
return fb;
|
||||
|
||||
unsuitable:
|
||||
|
|
|
|||
|
|
@ -163,30 +163,30 @@ drm_output_try_paint_node_on_plane(struct drm_plane_handle *handle,
|
|||
|
||||
if (plane->props[WDRM_PLANE_COLOR_ENCODING].prop_id == 0) {
|
||||
if (matrix_coef_info->wdrm != WDRM_PLANE_COLOR_ENCODING_DEFAULT) {
|
||||
drm_debug(b, "\t\t\t[view] not placing view %s on plane %lu: "
|
||||
drm_debug(b, "\t\t\t[paint node] not placing paint node %s on plane %lu: "
|
||||
"non-default color encoding not supported\n",
|
||||
ev->internal_name, (unsigned long) plane->plane_id);
|
||||
pnode->internal_name, (unsigned long) plane->plane_id);
|
||||
goto out;
|
||||
}
|
||||
} else if (!drm_plane_supports_color_encoding(plane,
|
||||
matrix_coef_info->wdrm)) {
|
||||
drm_debug(b, "\t\t\t[view] not placing view %s on plane %lu: "
|
||||
"color encoding not supported\n", ev->internal_name,
|
||||
drm_debug(b, "\t\t\t[paint node] not placing paint node %s on plane %lu: "
|
||||
"color encoding not supported\n", pnode->internal_name,
|
||||
(unsigned long) plane->plane_id);
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (plane->props[WDRM_PLANE_COLOR_RANGE].prop_id == 0) {
|
||||
if (quant_range_info->wdrm != WDRM_PLANE_COLOR_RANGE_DEFAULT) {
|
||||
drm_debug(b, "\t\t\t[view] not placing view %s on plane %lu: "
|
||||
drm_debug(b, "\t\t\t[paint node] not placing paint node %s on plane %lu: "
|
||||
"non-default color range not supported\n",
|
||||
ev->internal_name, (unsigned long) plane->plane_id);
|
||||
pnode->internal_name, (unsigned long) plane->plane_id);
|
||||
goto out;
|
||||
}
|
||||
} else if (!drm_plane_supports_color_range(plane,
|
||||
quant_range_info->wdrm)) {
|
||||
drm_debug(b, "\t\t\t[view] not placing view %s on plane %lu: "
|
||||
"color range not supported\n", ev->internal_name,
|
||||
drm_debug(b, "\t\t\t[paint node] not placing paint node %s on plane %lu: "
|
||||
"color range not supported\n", pnode->internal_name,
|
||||
(unsigned long) plane->plane_id);
|
||||
goto out;
|
||||
}
|
||||
|
|
@ -199,14 +199,14 @@ drm_output_try_paint_node_on_plane(struct drm_plane_handle *handle,
|
|||
* test against, so we just hope it'll work. */
|
||||
if (mode != DRM_OUTPUT_PROPOSE_STATE_PLANES_ONLY &&
|
||||
drm_pending_state_test(output_state->pending_state) != 0) {
|
||||
drm_debug(b, "\t\t\t[view] not placing view %s on plane %lu: "
|
||||
drm_debug(b, "\t\t\t[paint node] not placing paint node %s on plane %lu: "
|
||||
"atomic test failed\n",
|
||||
ev->internal_name, (unsigned long) plane->plane_id);
|
||||
pnode->internal_name, (unsigned long) plane->plane_id);
|
||||
goto out;
|
||||
}
|
||||
|
||||
drm_debug(b, "\t\t\t[view] provisionally placing view %s on plane %lu\n",
|
||||
ev->internal_name, (unsigned long) plane->plane_id);
|
||||
drm_debug(b, "\t\t\t[paint node] provisionally placing paint node %s on plane %lu\n",
|
||||
pnode->internal_name, (unsigned long) plane->plane_id);
|
||||
|
||||
/* Take a reference on the buffer so that we don't release it
|
||||
* back to the client until we're done with it; cursor buffers
|
||||
|
|
@ -269,9 +269,9 @@ drm_output_prepare_cursor_paint_node(struct drm_output_state *output_state,
|
|||
plane_state->src_h > (unsigned) device->cursor_height << 16 ||
|
||||
plane_state->src_w != plane_state->dest_w << 16 ||
|
||||
plane_state->src_h != plane_state->dest_h << 16) {
|
||||
drm_debug(b, "\t\t\t\t[%s] not assigning view %s to %s plane "
|
||||
drm_debug(b, "\t\t\t\t[%s] not assigning paint node %s to %s plane "
|
||||
"(positioning requires cropping or scaling)\n",
|
||||
p_name, ev->internal_name, p_name);
|
||||
p_name, pnode->internal_name, p_name);
|
||||
goto err;
|
||||
}
|
||||
|
||||
|
|
@ -294,8 +294,8 @@ drm_output_prepare_cursor_paint_node(struct drm_output_state *output_state,
|
|||
plane_state->dest_w = device->cursor_width;
|
||||
plane_state->dest_h = device->cursor_height;
|
||||
|
||||
drm_debug(b, "\t\t\t\t[%s] provisionally assigned view %s to cursor\n",
|
||||
p_name, ev->internal_name);
|
||||
drm_debug(b, "\t\t\t\t[%s] provisionally assigned paint node %s to cursor\n",
|
||||
p_name, pnode->internal_name);
|
||||
|
||||
return plane_state;
|
||||
|
||||
|
|
@ -380,7 +380,6 @@ dmabuf_feedback_maybe_update(struct drm_device *device,
|
|||
struct timespec current_time, delta_time;
|
||||
const time_t MAX_TIME_SECONDS = 2;
|
||||
uint32_t try_view_on_plane_failure_reasons = pnode->try_view_on_plane_failure_reasons;
|
||||
struct weston_view *ev = pnode->view;
|
||||
|
||||
/* Look for scanout tranche. If not found, add it but in disabled mode
|
||||
* (we still don't know if we'll have to send it to clients). This
|
||||
|
|
@ -470,8 +469,9 @@ dmabuf_feedback_maybe_update(struct drm_device *device,
|
|||
assert(0);
|
||||
|
||||
drm_debug(b, "\t[repaint] Need to update and resend the "
|
||||
"dma-buf feedback for surface of view %s: %s\n",
|
||||
ev->internal_name, action_needed_to_str(action_needed));
|
||||
"dma-buf feedback for surface of paint node %s: %s\n",
|
||||
pnode->internal_name,
|
||||
action_needed_to_str(action_needed));
|
||||
weston_dmabuf_feedback_send_all(b->compositor, dmabuf_feedback,
|
||||
b->compositor->dmabuf_feedback_format_table);
|
||||
|
||||
|
|
@ -485,7 +485,6 @@ try_pnode_on_cursor_plane(struct drm_output *output, struct weston_paint_node *p
|
|||
struct drm_device *device = output->device;
|
||||
struct drm_backend *b = device->backend;
|
||||
struct weston_buffer *buffer = pnode->view->surface->buffer_ref.buffer;
|
||||
struct weston_view *ev = pnode->view;
|
||||
struct drm_plane *cursor_plane = NULL;
|
||||
|
||||
if (output->cursor_handle)
|
||||
|
|
@ -504,18 +503,18 @@ try_pnode_on_cursor_plane(struct drm_output *output, struct weston_paint_node *p
|
|||
/* Even though this is a SHM buffer, pixel_format stores
|
||||
* the format code as DRM FourCC */
|
||||
if (buffer->pixel_format->format != DRM_FORMAT_ARGB8888) {
|
||||
drm_debug(b, "\t\t\t\t[view] not placing view %s on "
|
||||
drm_debug(b, "\t\t\t\t[paint node] not placing paint node %s on "
|
||||
"plane; SHM buffers must be ARGB8888 for "
|
||||
"cursor view\n", ev->internal_name);
|
||||
"cursor\n", pnode->internal_name);
|
||||
pnode->try_view_on_plane_failure_reasons |=
|
||||
FAILURE_REASONS_FB_FORMAT_INCOMPATIBLE;
|
||||
}
|
||||
|
||||
if (buffer->width > device->cursor_width ||
|
||||
buffer->height > device->cursor_height) {
|
||||
drm_debug(b, "\t\t\t\t[view] not assigning view %s to plane "
|
||||
drm_debug(b, "\t\t\t\t[paint node] not assigning paint node %s to plane "
|
||||
"(buffer (%dx%d) too large for cursor plane)\n",
|
||||
ev->internal_name, buffer->width, buffer->height);
|
||||
pnode->internal_name, buffer->width, buffer->height);
|
||||
pnode->try_view_on_plane_failure_reasons |=
|
||||
FAILURE_REASONS_BUFFER_TOO_BIG;
|
||||
}
|
||||
|
|
@ -591,9 +590,9 @@ pnode_can_use_plane(struct drm_output_state *output_state,
|
|||
* support fences, we can't place the buffer on this plane. */
|
||||
if (pnode->surface->acquire_fence_fd >= 0 &&
|
||||
plane->props[WDRM_PLANE_IN_FENCE_FD].prop_id == 0) {
|
||||
drm_debug(b, "\t\t\t\t[%s] not placing view %s on %s: "
|
||||
drm_debug(b, "\t\t\t\t[%s] not placing paint node %s on %s: "
|
||||
"no in-fence support\n",
|
||||
p_name, pnode->view->internal_name, p_name);
|
||||
p_name, pnode->internal_name, p_name);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
@ -685,9 +684,9 @@ drm_output_find_plane_for_view(struct drm_output_state *state,
|
|||
struct drm_plane *scanout_plane = output->scanout_handle->plane;
|
||||
|
||||
if (mode == DRM_OUTPUT_PROPOSE_STATE_RENDERER_AND_CURSOR) {
|
||||
drm_debug(b, "\t\t\t\t[view] not assigning view %s "
|
||||
drm_debug(b, "\t\t\t\t[paint node] not assigning paint node %s "
|
||||
"to plane: renderer-and-cursor mode\n",
|
||||
ev->internal_name);
|
||||
pnode->internal_name);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
@ -712,7 +711,7 @@ drm_output_find_plane_for_view(struct drm_output_state *state,
|
|||
FILE *dbg = weston_log_scope_stream(b->debug);
|
||||
|
||||
if (dbg) {
|
||||
fputs("\t\t\t[view] couldn't get FB for view: ", dbg);
|
||||
fputs("\t\t\t[paint node] couldn't get FB for paint node: ", dbg);
|
||||
bits_to_str_stream(fb_failure_reasons,
|
||||
weston_plane_failure_reasons_to_str, dbg);
|
||||
fputs("\n", dbg);
|
||||
|
|
@ -856,10 +855,10 @@ drm_output_find_plane_for_view(struct drm_output_state *state,
|
|||
scanout_state,
|
||||
ps->zpos);
|
||||
|
||||
drm_debug(b, "\t\t\t\t[view] view %s has been placed to "
|
||||
drm_debug(b, "\t\t\t\t[paint node] paint node %s has been placed to "
|
||||
"%s plane as an %s with computed zpos "
|
||||
"%"PRIu64"\n",
|
||||
ev->internal_name, p_name,
|
||||
pnode->internal_name, p_name,
|
||||
pnode->need_hole ? "underlay" : "overlay",
|
||||
zpos);
|
||||
break;
|
||||
|
|
@ -903,12 +902,11 @@ lower_solid_views_to_background_region(struct drm_output *output,
|
|||
wl_array_for_each(visible_pnode, visible_pnodes) {
|
||||
struct weston_paint_node *pnode = *visible_pnode;
|
||||
struct weston_paint_node **visible_pnode_new;
|
||||
struct weston_view *ev = pnode->view;
|
||||
pixman_region32_t tmp;
|
||||
|
||||
drm_debug(b, "\t\t\t[view] evaluating view %s for scene"
|
||||
drm_debug(b, "\t\t\t[paint node] evaluating paint node %s for scene"
|
||||
"-graph optimization on output %s (%lu)\n",
|
||||
ev->internal_name, output->base.name,
|
||||
pnode->internal_name, output->base.name,
|
||||
(unsigned long) output->base.id);
|
||||
|
||||
if (!pnode->draw_solid) {
|
||||
|
|
@ -923,9 +921,9 @@ lower_solid_views_to_background_region(struct drm_output *output,
|
|||
&pnode->clipped_view,
|
||||
background_region);
|
||||
if (pixman_region32_not_empty(&tmp)) {
|
||||
drm_debug(b, "\t\t\t\t[view] not assigning view %s to "
|
||||
drm_debug(b, "\t\t\t\t[paint node] not assigning paint node %s to "
|
||||
"a plane (occluded by solid buffer).\n",
|
||||
ev->internal_name);
|
||||
pnode->internal_name);
|
||||
pixman_region32_fini(&tmp);
|
||||
goto error;
|
||||
}
|
||||
|
|
@ -939,20 +937,20 @@ lower_solid_views_to_background_region(struct drm_output *output,
|
|||
}
|
||||
|
||||
if (!is_paint_node_solid_opaque_untransformed(pnode)) {
|
||||
drm_debug(b, "\t\t\t\t[view] not assigning view %s to "
|
||||
drm_debug(b, "\t\t\t\t[paint node] not assigning paint node %s to "
|
||||
"a plane (solid buffer not opaque or requiring "
|
||||
"a color transform).\n",
|
||||
ev->internal_name);
|
||||
pnode->internal_name);
|
||||
goto error;
|
||||
}
|
||||
|
||||
if (!drm_crtc_supports_background_color(output->crtc) &&
|
||||
(pnode->solid.r != 0.0f || pnode->solid.g != 0.0f ||
|
||||
pnode->solid.b != 0.0f)) {
|
||||
drm_debug(b, "\t\t\t\t[view] not assigning view %s to "
|
||||
drm_debug(b, "\t\t\t\t[paint node] not assigning paint node %s to "
|
||||
"a plane (non-opaque-black solid buffer not "
|
||||
"supported).\n",
|
||||
ev->internal_name);
|
||||
pnode->internal_name);
|
||||
goto error;
|
||||
}
|
||||
|
||||
|
|
@ -960,17 +958,17 @@ lower_solid_views_to_background_region(struct drm_output *output,
|
|||
(background_region_color.r != pnode->solid.r ||
|
||||
background_region_color.g != pnode->solid.g ||
|
||||
background_region_color.b != pnode->solid.b)) {
|
||||
drm_debug(b, "\t\t\t\t[view] not assigning view %s to "
|
||||
drm_debug(b, "\t\t\t\t[paint node] not assigning paint node %s to "
|
||||
"a plane (multiple solid buffer buffers with "
|
||||
"different colors).\n",
|
||||
ev->internal_name);
|
||||
pnode->internal_name);
|
||||
goto error;
|
||||
}
|
||||
|
||||
drm_debug(b, "\t\t\t\t[view] lowering view %s to background " \
|
||||
drm_debug(b, "\t\t\t\t[paint node] lowering paint node %s to background " \
|
||||
"(opaque solid buffer r %f g %f b %f " \
|
||||
"a %f).\n",
|
||||
ev->internal_name, pnode->solid.r, pnode->solid.g,
|
||||
pnode->internal_name, pnode->solid.r, pnode->solid.g,
|
||||
pnode->solid.b, pnode->solid.a);
|
||||
|
||||
pixman_region32_union(background_region,
|
||||
|
|
@ -1087,7 +1085,7 @@ drm_output_propose_state_try_reuse(struct weston_output *output_base,
|
|||
|
||||
/* we don't care about renderer views */
|
||||
if (pnode->plane == &output_base->primary_plane) {
|
||||
drm_debug(b, "\t\t[reuse] ignoring view %s on renderer plane\n", pnode->view->internal_name);
|
||||
drm_debug(b, "\t\t[reuse] ignoring paint node %s on renderer plane\n", pnode->internal_name);
|
||||
continue;
|
||||
}
|
||||
plane = (struct drm_plane *) pnode->plane;
|
||||
|
|
@ -1097,12 +1095,12 @@ drm_output_propose_state_try_reuse(struct weston_output *output_base,
|
|||
|
||||
/* cursor is handled out of band */
|
||||
if (plane->type == WDRM_PLANE_TYPE_CURSOR) {
|
||||
drm_debug(b, "\t\t[reuse] ignoring cursor plane for view %s\n", pnode->view->internal_name);
|
||||
drm_debug(b, "\t\t[reuse] ignoring cursor plane for paint node %s\n", pnode->internal_name);
|
||||
continue;
|
||||
}
|
||||
|
||||
drm_debug(b, "\t\t[reuse] view %s has plane %d\n",
|
||||
pnode->view->internal_name, plane->plane_id);
|
||||
drm_debug(b, "\t\t[reuse] paint node %s has plane %d\n",
|
||||
pnode->internal_name, plane->plane_id);
|
||||
|
||||
/* FIXME: If we get here, there should be a valid weston_buffer, and that's
|
||||
* all we should ever need at this point. If the buffer is deleted while
|
||||
|
|
@ -1113,8 +1111,8 @@ drm_output_propose_state_try_reuse(struct weston_output *output_base,
|
|||
* which point we replace this with a weston_assert() instead.
|
||||
*/
|
||||
if (!weston_paint_node_has_valid_buffer(pnode)) {
|
||||
drm_debug(b, "\t\t[reuse] view %s no longer has a valid buffer\n",
|
||||
pnode->view->internal_name);
|
||||
drm_debug(b, "\t\t[reuse] paint node %s no longer has a valid buffer\n",
|
||||
pnode->internal_name);
|
||||
drm_output_state_free(state);
|
||||
return NULL;
|
||||
}
|
||||
|
|
@ -1285,24 +1283,24 @@ drm_output_propose_state(struct weston_output *output_base,
|
|||
|
||||
pnode->try_view_on_plane_failure_reasons = FAILURE_REASONS_NONE;
|
||||
|
||||
drm_debug(b, "\t\t\t[view] evaluating view %s for scene-graph "
|
||||
drm_debug(b, "\t\t\t[paint node] evaluating paint node %s for scene-graph "
|
||||
"building on output %s (%lu)\n",
|
||||
ev->internal_name, output->base.name,
|
||||
pnode->internal_name, output->base.name,
|
||||
(unsigned long) output->base.id);
|
||||
|
||||
assert(ev->output_mask & (1u << output->base.id));
|
||||
|
||||
/* Cannot show anything without a color transform. */
|
||||
if (!pnode->surf_xform_valid) {
|
||||
drm_debug(b, "\t\t\t\t[view] ignoring view %s "
|
||||
drm_debug(b, "\t\t\t\t[paint node] ignoring paint node %s "
|
||||
"(color transform failed)\n",
|
||||
ev->internal_name);
|
||||
pnode->internal_name);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (pnode->is_fully_transparent) {
|
||||
drm_debug(b, "\t\t\t\t[view] ignoring view %s " \
|
||||
"(fully transparent)\n", ev->internal_name);
|
||||
drm_debug(b, "\t\t\t\t[paint node] ignoring paint node %s " \
|
||||
"(fully transparent)\n", pnode->internal_name);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
@ -1310,9 +1308,9 @@ drm_output_propose_state(struct weston_output *output_base,
|
|||
* view; includes the case where occluded_region covers
|
||||
* the entire output */
|
||||
if (!pixman_region32_not_empty(&pnode->visible)) {
|
||||
drm_debug(b, "\t\t\t\t[view] ignoring view %s "
|
||||
drm_debug(b, "\t\t\t\t[paint node] ignoring paint node %s "
|
||||
"(occluded on our output)\n",
|
||||
ev->internal_name);
|
||||
pnode->internal_name);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
@ -1355,15 +1353,14 @@ drm_output_propose_state(struct weston_output *output_base,
|
|||
/* Assign paint nodes to planes. */
|
||||
wl_array_for_each(visible_pnode, &visible_pnodes) {
|
||||
struct weston_paint_node *pnode = *visible_pnode;
|
||||
struct weston_view *ev = pnode->view;
|
||||
struct drm_plane_state *ps = NULL;
|
||||
bool need_underlay = false;
|
||||
pixman_region32_t tmp;
|
||||
bool renderer_ok = (mode != DRM_OUTPUT_PROPOSE_STATE_PLANES_ONLY);
|
||||
|
||||
drm_debug(b, "\t\t\t[view] evaluating view %s for plane "
|
||||
drm_debug(b, "\t\t\t[paint node] evaluating paint node %s for plane "
|
||||
"assignment on output %s (%lu)\n",
|
||||
ev->internal_name, output->base.name,
|
||||
pnode->internal_name, output->base.name,
|
||||
(unsigned long) output->base.id);
|
||||
|
||||
if (!b->gbm)
|
||||
|
|
@ -1400,9 +1397,9 @@ drm_output_propose_state(struct weston_output *output_base,
|
|||
} else {
|
||||
pnode->try_view_on_plane_failure_reasons |=
|
||||
FAILURE_REASONS_OCCLUDED_BY_RENDERER;
|
||||
drm_debug(b, "\t\t\t\t[view] not assigning view %s to a "
|
||||
drm_debug(b, "\t\t\t\t[paint node] not assigning paint node %s to a "
|
||||
"plane (occluded by renderer views), current lowest "
|
||||
"zpos change to %"PRIu64"\n", ev->internal_name,
|
||||
"zpos change to %"PRIu64"\n", pnode->internal_name,
|
||||
current_lowest_zpos_underlay);
|
||||
}
|
||||
}
|
||||
|
|
@ -1471,16 +1468,16 @@ drm_output_propose_state(struct weston_output *output_base,
|
|||
current_lowest_zpos_overlay,
|
||||
current_lowest_zpos_underlay);
|
||||
} else if (!ps && !renderer_ok) {
|
||||
drm_debug(b, "\t\t[view] failing state generation: "
|
||||
"placing view %s to renderer not allowed\n",
|
||||
ev->internal_name);
|
||||
drm_debug(b, "\t\t[paint node] failing state generation: "
|
||||
"placing paint node %s to renderer not allowed\n",
|
||||
pnode->internal_name);
|
||||
goto err_region;
|
||||
} else if (!ps) {
|
||||
FILE *dbg = weston_log_scope_stream(b->debug);
|
||||
|
||||
if (dbg) {
|
||||
fprintf(dbg, "\t\t\t\t[view] view %s will be placed on the renderer: ",
|
||||
ev->internal_name);
|
||||
fprintf(dbg, "\t\t\t\t[paint node] paint node %s will be placed on the renderer: ",
|
||||
pnode->internal_name);
|
||||
bits_to_str_stream(pnode->try_view_on_plane_failure_reasons,
|
||||
weston_plane_failure_reasons_to_str, dbg);
|
||||
fputs("\n", dbg);
|
||||
|
|
@ -1665,14 +1662,14 @@ drm_assign_planes(struct weston_output *output_base)
|
|||
target_plane = target_handle->plane;
|
||||
|
||||
if (target_plane) {
|
||||
drm_debug(b, "\t[repaint] view %s on %s plane %lu\n",
|
||||
ev->internal_name,
|
||||
drm_debug(b, "\t[repaint] paint node %s on %s plane %lu\n",
|
||||
pnode->internal_name,
|
||||
drm_output_get_handle_type_name(target_handle),
|
||||
(unsigned long) target_plane->plane_id);
|
||||
weston_paint_node_move_to_plane(pnode, &target_plane->base);
|
||||
} else {
|
||||
drm_debug(b, "\t[repaint] view %s using renderer "
|
||||
"composition\n", ev->internal_name);
|
||||
drm_debug(b, "\t[repaint] paint node %s using renderer "
|
||||
"composition\n", pnode->internal_name);
|
||||
weston_paint_node_move_to_plane(pnode, primary);
|
||||
pnode->need_hole = false;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue