From 387bf0af69311ac19052c3cfad24559ac25cd424 Mon Sep 17 00:00:00 2001 From: Derek Foreman Date: Mon, 16 Mar 2026 13:51:39 -0500 Subject: [PATCH] vulkan-renderer: Check pnode valid transform Instead of a bespoke check for axis aligned boxes, use the pnode valid transform flag. Signed-off-by: Derek Foreman --- libweston/renderer-vulkan/vulkan-renderer.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/libweston/renderer-vulkan/vulkan-renderer.c b/libweston/renderer-vulkan/vulkan-renderer.c index c97d6205b..e4d3a6587 100644 --- a/libweston/renderer-vulkan/vulkan-renderer.c +++ b/libweston/renderer-vulkan/vulkan-renderer.c @@ -1554,9 +1554,10 @@ vulkan_pipeline_config_init_for_paint_node(struct vulkan_pipeline_config *pconf, static void rect_to_quad(pixman_box32_t *rect, - struct weston_view *ev, + struct weston_paint_node *pnode, struct clipper_quad *quad) { + struct weston_view *ev = pnode->view; struct weston_coord_global rect_g[4] = { { .c = weston_coord(rect->x1, rect->y1) }, { .c = weston_coord(rect->x2, rect->y1) }, @@ -1572,8 +1573,7 @@ rect_to_quad(pixman_box32_t *rect, quad->polygon[i].y = (float)rect_s.y; } - quad->axis_aligned = !ev->transform.enabled || - (ev->transform.matrix.type < WESTON_MATRIX_TRANSFORM_ROTATE); + quad->axis_aligned = pnode->valid_transform; // TODO handle !axis_aligned ? assert(quad->axis_aligned); @@ -1586,7 +1586,6 @@ generate_fans(struct weston_paint_node *pnode, struct wl_array *vertices, struct wl_array *vtxcnt) { - struct weston_view *ev = pnode->view; struct clipper_vertex *v; uint32_t *cnt; uint32_t nvtx = 0; @@ -1605,7 +1604,7 @@ generate_fans(struct weston_paint_node *pnode, cnt = wl_array_add(vtxcnt, nrects * nsurf * sizeof(uint32_t)); for (int i = 0; i < nrects; i++) { - rect_to_quad(&rects[i], ev, &quad); + rect_to_quad(&rects[i], pnode, &quad); for (int j = 0; j < nsurf; j++) { uint32_t n;