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

Author: Dave Airlie <[email protected]>
Date:   Wed Mar 31 10:24:36 2021 +1000

lavapipe: only reference pCounterBuffers if non-NULL

Fixes crash in validation layer tests.

Reviewed-By: Mike Blumenkrantz <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9937>

---

 src/gallium/frontends/lavapipe/lvp_cmd_buffer.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/gallium/frontends/lavapipe/lvp_cmd_buffer.c 
b/src/gallium/frontends/lavapipe/lvp_cmd_buffer.c
index a3f376cfa92..bf8db50c00c 100644
--- a/src/gallium/frontends/lavapipe/lvp_cmd_buffer.c
+++ b/src/gallium/frontends/lavapipe/lvp_cmd_buffer.c
@@ -1718,7 +1718,10 @@ VKAPI_ATTR void VKAPI_CALL 
lvp_CmdBeginTransformFeedbackEXT(
    cmd->u.begin_transform_feedback.counter_buffer_offsets = (VkDeviceSize 
*)(cmd->u.begin_transform_feedback.counter_buffers + counterBufferCount);
 
    for (unsigned i = 0; i < counterBufferCount; i++) {
-      cmd->u.begin_transform_feedback.counter_buffers[i] = 
lvp_buffer_from_handle(pCounterBuffers[i]);
+      if (pCounterBuffers)
+         cmd->u.begin_transform_feedback.counter_buffers[i] = 
lvp_buffer_from_handle(pCounterBuffers[i]);
+      else
+         cmd->u.begin_transform_feedback.counter_buffers[i] = NULL;
       if (pCounterBufferOffsets)
          cmd->u.begin_transform_feedback.counter_buffer_offsets[i] = 
pCounterBufferOffsets[i];
       else
@@ -1750,7 +1753,10 @@ VKAPI_ATTR void VKAPI_CALL 
lvp_CmdEndTransformFeedbackEXT(
    cmd->u.begin_transform_feedback.counter_buffer_offsets = (VkDeviceSize 
*)(cmd->u.begin_transform_feedback.counter_buffers + counterBufferCount);
 
    for (unsigned i = 0; i < counterBufferCount; i++) {
-      cmd->u.begin_transform_feedback.counter_buffers[i] = 
lvp_buffer_from_handle(pCounterBuffers[i]);
+      if (pCounterBuffers)
+         cmd->u.begin_transform_feedback.counter_buffers[i] = 
lvp_buffer_from_handle(pCounterBuffers[i]);
+      else
+         cmd->u.begin_transform_feedback.counter_buffers[i] = NULL;
       if (pCounterBufferOffsets)
          cmd->u.begin_transform_feedback.counter_buffer_offsets[i] = 
pCounterBufferOffsets[i];
       else

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to