如何解决Rust Vulkano 如何重用命令缓冲区
我已经为每帧预先计算了一个命令缓冲区,现在我想循环提交它们。到目前为止我有这段代码
let command_buffer = &command_buffers[image_num];
let future = prevIoUs_frame_end
.take()
.unwrap()
.join(acquire_future)
.then_execute(queue.clone(),command_buffer)
.unwrap()
.then_swapchain_present(queue.clone(),swapchain.clone(),image_num)
.then_signal_fence_and_flush();
然而这会产生
let command_buffer = &command_buffers[image_num];
| ^^^^^^^^^^^^^^^
= note: but,the lifetime must be valid for the static lifetime...
note: ...so that the type `&PrimaryAutoCommandBuffer` will meet its required lifetime bounds
--> src\main.rs:442:22
|
442 | .then_execute(queue.clone(),command_buffer)
我可以看到该函数需要静态生命周期
fn then_execute<Cb>(
self,queue: Arc<Queue>,command_buffer: Cb,) -> Result<CommandBufferExecFuture<Self,Cb>,CommandBufferExecError>
where
Self: Sized,Cb: PrimaryCommandBuffer + 'static,
也许我应该像这里那样克隆这个缓冲区
但是,在版本 vulkano = "0.24.0"
中不再为 PrimaryCommandBuffer
实施克隆
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。