lavapipe: handle buffer sizes better in CmdBindTransformFeedbackBuffersEXT

according to spec, the pSizes array member is only used if the array is non-null
and the value is not VK_WHOLE_SIZE, otherwise this value is calculated based
on the buffer size - the offset

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10625>
This commit is contained in:
Mike Blumenkrantz 2021-05-04 11:56:24 -04:00 committed by Marge Bot
parent dbdd4bd9e9
commit 4b28ed0d7b

View file

@ -1681,7 +1681,10 @@ VKAPI_ATTR void VKAPI_CALL lvp_CmdBindTransformFeedbackBuffersEXT(
for (unsigned i = 0; i < bindingCount; i++) {
cmd->u.bind_transform_feedback_buffers.buffers[i] = lvp_buffer_from_handle(pBuffers[i]);
cmd->u.bind_transform_feedback_buffers.offsets[i] = pOffsets[i];
cmd->u.bind_transform_feedback_buffers.sizes[i] = pSizes[i];
if (pSizes && pSizes[i] != VK_WHOLE_SIZE)
cmd->u.bind_transform_feedback_buffers.sizes[i] = pSizes[i];
else
cmd->u.bind_transform_feedback_buffers.sizes[i] = cmd->u.bind_transform_feedback_buffers.buffers[i]->size - pOffsets[i];
}
cmd_buf_queue(cmd_buffer, cmd);
}