Mesa (master): radv/xfb: fix counter buffer bounds checks.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Dec 13 19:27:34 UTC 2018


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

Author: Dave Airlie <airlied at redhat.com>
Date:   Thu Dec 13 03:29:04 2018 +0000

radv/xfb: fix counter buffer bounds checks.

If we gave this function 0 counter buffers, we'd still try and
access pCounterBuffers[0] as this check was incorrect.

Fixes crash with ext_transform_feedback-pipeline-basic-primgen
on zink on radv.

Fixes: 677b496b6 (radv: fix begin/end transform feedback with 0 counter buffers.)
Signed-off-by: Dave Airlie <airlied at redhat.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>

---

 src/amd/vulkan/radv_cmd_buffer.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c
index 982107138d..aebf93b447 100644
--- a/src/amd/vulkan/radv_cmd_buffer.c
+++ b/src/amd/vulkan/radv_cmd_buffer.c
@@ -4853,7 +4853,7 @@ void radv_CmdBeginTransformFeedbackEXT(
 	assert(firstCounterBuffer + counterBufferCount <= MAX_SO_BUFFERS);
 	for_each_bit(i, so->enabled_mask) {
 		int32_t counter_buffer_idx = i - firstCounterBuffer;
-		if (counter_buffer_idx >= 0 && counter_buffer_idx > counterBufferCount)
+		if (counter_buffer_idx >= 0 && counter_buffer_idx >= counterBufferCount)
 			counter_buffer_idx = -1;
 
 		/* SI binds streamout buffers as shader resources.
@@ -4915,7 +4915,7 @@ void radv_CmdEndTransformFeedbackEXT(
 	assert(firstCounterBuffer + counterBufferCount <= MAX_SO_BUFFERS);
 	for_each_bit(i, so->enabled_mask) {
 		int32_t counter_buffer_idx = i - firstCounterBuffer;
-		if (counter_buffer_idx >= 0 && counter_buffer_idx > counterBufferCount)
+		if (counter_buffer_idx >= 0 && counter_buffer_idx >= counterBufferCount)
 			counter_buffer_idx = -1;
 
 		if (counter_buffer_idx >= 0 && pCounterBuffers && pCounterBuffers[counter_buffer_idx]) {




More information about the mesa-commit mailing list