From 4cad3da409e703ad4fb828c9fe176f3ae6146535 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Mon, 4 Oct 2021 11:48:55 -0400 Subject: [PATCH] lavapipe: clamp attachment clear rect sizes this is a spec violation, but crashing isn't cool, so do a little clamping Reviewed-by: Dave Airlie Part-of: --- src/gallium/frontends/lavapipe/lvp_execute.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/gallium/frontends/lavapipe/lvp_execute.c b/src/gallium/frontends/lavapipe/lvp_execute.c index 5f2dde2faff..426dea54ac4 100644 --- a/src/gallium/frontends/lavapipe/lvp_execute.c +++ b/src/gallium/frontends/lavapipe/lvp_execute.c @@ -2996,6 +2996,9 @@ static void handle_clear_attachments(struct vk_cmd_queue_entry *cmd, for (uint32_t r = 0; r < cmd->u.clear_attachments.rect_count; r++) { VkClearRect *rect = &cmd->u.clear_attachments.rects[r]; + /* avoid crashing on spec violations */ + rect->rect.extent.width = MIN2(rect->rect.extent.width, state->framebuffer.width - rect->rect.offset.x); + rect->rect.extent.height = MIN2(rect->rect.extent.height, state->framebuffer.height - rect->rect.offset.y); if (subpass->view_mask) { u_foreach_bit(i, subpass->view_mask) clear_attachment_layers(state, imgv, &rect->rect,