mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 00:58:05 +02:00
lavapipe: add some safety asserts when beginning rendering
if the render area exceeds the attachment size, this is not only illegal,
it will crash later
cc: mesa-stable
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20583>
(cherry picked from commit 847d198c1f)
This commit is contained in:
parent
d8cf98bcb8
commit
453cb59d03
2 changed files with 5 additions and 1 deletions
|
|
@ -994,7 +994,7 @@
|
|||
"description": "lavapipe: add some safety asserts when beginning rendering",
|
||||
"nominated": true,
|
||||
"nomination_type": 0,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": null
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1849,6 +1849,8 @@ static void handle_begin_rendering(struct vk_cmd_queue_entry *cmd,
|
|||
state->color_att[i].imgv = create_multisample_surface(state, imgv, state->forced_sample_count,
|
||||
att_needs_replicate(state, imgv, state->color_att[i].load_op));
|
||||
state->framebuffer.cbufs[i] = state->color_att[i].imgv->surface;
|
||||
assert(state->render_area.offset.x + state->render_area.extent.width <= state->framebuffer.cbufs[i]->texture->width0);
|
||||
assert(state->render_area.offset.y + state->render_area.extent.height <= state->framebuffer.cbufs[i]->texture->height0);
|
||||
} else {
|
||||
state->framebuffer.cbufs[i] = NULL;
|
||||
}
|
||||
|
|
@ -1880,6 +1882,8 @@ static void handle_begin_rendering(struct vk_cmd_queue_entry *cmd,
|
|||
att_needs_replicate(state, imgv, load_op));
|
||||
}
|
||||
state->framebuffer.zsbuf = state->ds_imgv->surface;
|
||||
assert(state->render_area.offset.x + state->render_area.extent.width <= state->framebuffer.zsbuf->texture->width0);
|
||||
assert(state->render_area.offset.y + state->render_area.extent.height <= state->framebuffer.zsbuf->texture->height0);
|
||||
} else {
|
||||
state->ds_imgv = NULL;
|
||||
state->framebuffer.zsbuf = NULL;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue