fix safety with lifetime of commandlist
This commit is contained in:
parent
933b4a5979
commit
3c6baa591d
|
|
@ -319,9 +319,9 @@ impl Command for EndRendering {
|
|||
fn apply(self, _recorder: &mut CommandRecorder) {}
|
||||
}
|
||||
|
||||
pub struct BindPipeline<'cmd>(pub &'cmd Pipeline);
|
||||
pub struct BindPipeline(pub vk::Pipeline, pub vk::PipelineBindPoint);
|
||||
|
||||
impl<'cmd> Command for BindPipeline<'cmd> {
|
||||
impl Command for BindPipeline {
|
||||
fn side_effects(&self, _map: SideEffectMap) {
|
||||
// No resource access, but affects the pipeline state
|
||||
}
|
||||
|
|
@ -331,7 +331,7 @@ impl<'cmd> Command for BindPipeline<'cmd> {
|
|||
let dev = &cmd.device().raw;
|
||||
|
||||
unsafe {
|
||||
dev.cmd_bind_pipeline(cmd.raw(), self.0.bind_point(), self.0.raw());
|
||||
dev.cmd_bind_pipeline(cmd.raw(), self.1, self.0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -602,8 +602,8 @@ impl<T: Resource, U: Resource> OutsideRenderPass for Copy<T, U> {}
|
|||
impl OutsideRenderPass for ClearTexture {}
|
||||
impl OutsideRenderPass for UpdateBuffer {}
|
||||
|
||||
impl InsideRenderPass for BindPipeline<'_> {}
|
||||
impl OutsideRenderPass for BindPipeline<'_> {}
|
||||
impl InsideRenderPass for BindPipeline {}
|
||||
impl OutsideRenderPass for BindPipeline {}
|
||||
impl InsideRenderPass for BindVertexBuffers {}
|
||||
impl OutsideRenderPass for BindVertexBuffers {}
|
||||
impl InsideRenderPass for BindIndexBuffer {}
|
||||
|
|
|
|||
|
|
@ -105,7 +105,7 @@ pub struct CommandList<'cmd> {
|
|||
side_effects: SideEffects,
|
||||
num_commands: u32,
|
||||
|
||||
_pd: PhantomData<fn(&'cmd ())>,
|
||||
_pd: PhantomData<&'cmd ()>,
|
||||
}
|
||||
|
||||
#[must_use]
|
||||
|
|
@ -156,7 +156,7 @@ impl<'cmd> CommandList<'cmd> {
|
|||
self.push_inner(command);
|
||||
}
|
||||
|
||||
fn push_inner<C: Command>(&mut self, command: C) {
|
||||
fn push_inner<C: Command + 'cmd>(&mut self, command: C) {
|
||||
#[repr(C, packed)]
|
||||
struct Packed<C> {
|
||||
meta: CommandMeta,
|
||||
|
|
|
|||
Loading…
Reference in a new issue