vulkan: clear ops after each execution
This commit is contained in:
parent
72253f0f6f
commit
b9533981ec
1 changed files with 7 additions and 5 deletions
|
|
@ -180,7 +180,7 @@ struct VulkanTexOp {
|
||||||
tex: Rc<VulkanImage>,
|
tex: Rc<VulkanImage>,
|
||||||
range: Range<usize>,
|
range: Range<usize>,
|
||||||
buffer_resv: Option<Rc<dyn BufferResv>>,
|
buffer_resv: Option<Rc<dyn BufferResv>>,
|
||||||
acquire_sync: AcquireSync,
|
acquire_sync: Option<AcquireSync>,
|
||||||
release_sync: ReleaseSync,
|
release_sync: ReleaseSync,
|
||||||
alpha: f32,
|
alpha: f32,
|
||||||
source_type: TexSourceType,
|
source_type: TexSourceType,
|
||||||
|
|
@ -665,7 +665,7 @@ impl VulkanRenderer {
|
||||||
tex: tex.clone(),
|
tex: tex.clone(),
|
||||||
range: lo..hi,
|
range: lo..hi,
|
||||||
buffer_resv: ct.buffer_resv.clone(),
|
buffer_resv: ct.buffer_resv.clone(),
|
||||||
acquire_sync: ct.acquire_sync.clone(),
|
acquire_sync: Some(ct.acquire_sync.clone()),
|
||||||
release_sync: ct.release_sync,
|
release_sync: ct.release_sync,
|
||||||
alpha: ct.alpha.unwrap_or_default(),
|
alpha: ct.alpha.unwrap_or_default(),
|
||||||
source_type,
|
source_type,
|
||||||
|
|
@ -729,7 +729,7 @@ impl VulkanRenderer {
|
||||||
memory.queue_transfer.clear();
|
memory.queue_transfer.clear();
|
||||||
let execution = self.allocate_point();
|
let execution = self.allocate_point();
|
||||||
for pass in RenderPass::variants() {
|
for pass in RenderPass::variants() {
|
||||||
for cmd in &memory.ops[pass] {
|
for cmd in &mut memory.ops[pass] {
|
||||||
if let VulkanOp::Tex(c) = cmd {
|
if let VulkanOp::Tex(c) = cmd {
|
||||||
let tex = &c.tex;
|
let tex = &c.tex;
|
||||||
if tex.execution_version.replace(execution) == execution {
|
if tex.execution_version.replace(execution) == execution {
|
||||||
|
|
@ -745,8 +745,8 @@ impl VulkanRenderer {
|
||||||
}
|
}
|
||||||
memory.textures.push(UsedTexture {
|
memory.textures.push(UsedTexture {
|
||||||
tex: tex.clone(),
|
tex: tex.clone(),
|
||||||
resv: c.buffer_resv.clone(),
|
resv: c.buffer_resv.take(),
|
||||||
acquire_sync: c.acquire_sync.clone(),
|
acquire_sync: c.acquire_sync.take().unwrap(),
|
||||||
release_sync: c.release_sync,
|
release_sync: c.release_sync,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -1553,6 +1553,8 @@ impl VulkanRenderer {
|
||||||
memory.wait_semaphores.clear();
|
memory.wait_semaphores.clear();
|
||||||
memory.release_fence.take();
|
memory.release_fence.take();
|
||||||
memory.used_buffers.clear();
|
memory.used_buffers.clear();
|
||||||
|
memory.ops.clear();
|
||||||
|
memory.ops_tmp.clear();
|
||||||
memory.release_sync_file.take()
|
memory.release_sync_file.take()
|
||||||
};
|
};
|
||||||
res.map(|_| sync_file)
|
res.map(|_| sync_file)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue