nv50,nvc0: guard against zero-size blits
The current state tracker can generate these sometimes. Fixing this is more involved, and due to some integer math we can generate divisions-by-zero. Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by: Karol Herbst <kherbst@redhat.com> Cc: mesa-stable@lists.freedesktop.org
This commit is contained in:
parent
78d3640e49
commit
9bf0614116
|
@ -1669,6 +1669,13 @@ nv50_blit(struct pipe_context *pipe, const struct pipe_blit_info *info)
|
|||
struct nouveau_pushbuf *push = nv50->base.pushbuf;
|
||||
bool eng3d = FALSE;
|
||||
|
||||
if (info->src.box.width == 0 || info->src.box.height == 0 ||
|
||||
info->dst.box.width == 0 || info->dst.box.height == 0) {
|
||||
pipe_debug_message(&nv50->base.debug, ERROR,
|
||||
"Blit with zero-size src or dst box");
|
||||
return;
|
||||
}
|
||||
|
||||
if (util_format_is_depth_or_stencil(info->dst.resource->format)) {
|
||||
if (!(info->mask & PIPE_MASK_ZS))
|
||||
return;
|
||||
|
|
|
@ -1573,6 +1573,13 @@ nvc0_blit(struct pipe_context *pipe, const struct pipe_blit_info *info)
|
|||
struct nouveau_pushbuf *push = nvc0->base.pushbuf;
|
||||
bool eng3d = false;
|
||||
|
||||
if (info->src.box.width == 0 || info->src.box.height == 0 ||
|
||||
info->dst.box.width == 0 || info->dst.box.height == 0) {
|
||||
pipe_debug_message(&nvc0->base.debug, ERROR,
|
||||
"Blit with zero-size src or dst box");
|
||||
return;
|
||||
}
|
||||
|
||||
if (util_format_is_depth_or_stencil(info->dst.resource->format)) {
|
||||
if (!(info->mask & PIPE_MASK_ZS))
|
||||
return;
|
||||
|
|
Loading…
Reference in New Issue