Mesa (master): zink: add another helper for checking whether one rect covers another
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Wed Feb 24 02:08:19 UTC 2021
Module: Mesa
Branch: master
Commit: f6cf5a64cc5f09c2ecf7a1673ccfd17304489236
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f6cf5a64cc5f09c2ecf7a1673ccfd17304489236
Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date: Thu Sep 17 09:37:50 2020 -0400
zink: add another helper for checking whether one rect covers another
this is going to be used for no-oping writes
Reviewed-by: Dave Airlie <airlied at redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9206>
---
src/gallium/drivers/zink/zink_blit.c | 12 ++++++++++++
src/gallium/drivers/zink/zink_context.h | 3 +++
2 files changed, 15 insertions(+)
diff --git a/src/gallium/drivers/zink/zink_blit.c b/src/gallium/drivers/zink/zink_blit.c
index 20fa51987d8..82dc303d246 100644
--- a/src/gallium/drivers/zink/zink_blit.c
+++ b/src/gallium/drivers/zink/zink_blit.c
@@ -278,3 +278,15 @@ zink_blit_region_fills(struct u_rect region, unsigned width, unsigned height)
return false;
}
+
+bool
+zink_blit_region_covers(struct u_rect region, struct u_rect covers)
+{
+ struct u_rect intersect;
+ if (!u_rect_test_intersection(®ion, &covers))
+ return false;
+
+ u_rect_union(&intersect, ®ion, &covers);
+ return intersect.x0 == covers.x0 && intersect.y0 == covers.y0 &&
+ intersect.x1 == covers.x1 && intersect.y1 == covers.y1;
+}
diff --git a/src/gallium/drivers/zink/zink_context.h b/src/gallium/drivers/zink/zink_context.h
index 347e613e171..13943f1afa6 100644
--- a/src/gallium/drivers/zink/zink_context.h
+++ b/src/gallium/drivers/zink/zink_context.h
@@ -284,6 +284,9 @@ zink_blit(struct pipe_context *pctx,
bool
zink_blit_region_fills(struct u_rect region, unsigned width, unsigned height);
+bool
+zink_blit_region_covers(struct u_rect region, struct u_rect covers);
+
static inline struct u_rect
zink_rect_from_box(const struct pipe_box *box)
{
More information about the mesa-commit
mailing list