Mesa (main): zink: clamp tbo creation to maxTexelBufferElements
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Mon Jan 31 03:45:38 UTC 2022
Module: Mesa
Branch: main
Commit: 27d405dc2fddb5b814476a4e055358fd1efa7a4d
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=27d405dc2fddb5b814476a4e055358fd1efa7a4d
Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date: Tue Jan 18 13:06:55 2022 -0500
zink: clamp tbo creation to maxTexelBufferElements
for sparse buffers, the total buffer size will be huge, so this needs
to only be the limit that the driver can support to avoid crashing
or whatever
cc: mesa-stable
Reviewed-by: Dave Airlie <airlied at redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14692>
---
src/gallium/drivers/zink/zink_context.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/gallium/drivers/zink/zink_context.c b/src/gallium/drivers/zink/zink_context.c
index fbc019aad84..86fb7c8d045 100644
--- a/src/gallium/drivers/zink/zink_context.c
+++ b/src/gallium/drivers/zink/zink_context.c
@@ -656,6 +656,9 @@ create_bvci(struct zink_context *ctx, struct zink_resource *res, enum pipe_forma
assert(bvci.format);
bvci.offset = offset;
bvci.range = !offset && range == res->base.b.width0 ? VK_WHOLE_SIZE : range;
+ uint32_t clamp = util_format_get_blocksize(format) * screen->info.props.limits.maxTexelBufferElements;
+ if (bvci.range == VK_WHOLE_SIZE && res->base.b.width0 > clamp)
+ bvci.range = clamp;
bvci.flags = 0;
return bvci;
}
More information about the mesa-commit
mailing list