Mesa (master): freedreno: limit string marker to max packet size

Rob Clark robclark at kemper.freedesktop.org
Sat Jan 30 17:30:36 UTC 2016


Module: Mesa
Branch: master
Commit: 9e05e8cb7511d7c575e226176f6e9be1c67268a4
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=9e05e8cb7511d7c575e226176f6e9be1c67268a4

Author: Rob Clark <robclark at freedesktop.org>
Date:   Sun Jan 24 13:18:39 2016 -0500

freedreno: limit string marker to max packet size

Experimentally derived max size.

Signed-off-by: Rob Clark <robclark at freedesktop.org>

---

 src/gallium/drivers/freedreno/freedreno_context.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/gallium/drivers/freedreno/freedreno_context.c b/src/gallium/drivers/freedreno/freedreno_context.c
index c5ea86f..c54bb10 100644
--- a/src/gallium/drivers/freedreno/freedreno_context.c
+++ b/src/gallium/drivers/freedreno/freedreno_context.c
@@ -152,6 +152,9 @@ fd_emit_string_marker(struct pipe_context *pctx, const char *string, int len)
 	struct fd_ringbuffer *ring = ctx->ring;
 	const uint32_t *buf = (const void *)string;
 
+	/* max packet size is 0x3fff dwords: */
+	len = MIN2(len, 0x3fff * 4);
+
 	OUT_PKT3(ring, CP_NOP, align(len, 4) / 4);
 	while (len >= 4) {
 		OUT_RING(ring, *buf);




More information about the mesa-commit mailing list