You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Trac3r-rust/doc/vulkano/sync/trait.GpuFuture.html

139 lines
107 KiB

5 years ago
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `GpuFuture` trait in crate `vulkano`."><meta name="keywords" content="rust, rustlang, rust-lang, GpuFuture"><title>vulkano::sync::GpuFuture - Rust</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css"><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="shortcut icon" href="../../favicon.ico"><style type="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></head><body class="rustdoc trait"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../../vulkano/index.html'><div class='logo-container'><img src='https://raw.githubusercontent.com/vulkano-rs/vulkano/master/logo.png' alt='logo'></div></a><p class='location'>Trait GpuFuture</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#required-methods">Required Methods</a><div class="sidebar-links"><a href="#tymethod.build_submission">build_submission</a><a href="#tymethod.check_buffer_access">check_buffer_access</a><a href="#tymethod.check_image_access">check_image_access</a><a href="#tymethod.cleanup_finished">cleanup_finished</a><a href="#tymethod.flush">flush</a><a href="#tymethod.queue">queue</a><a href="#tymethod.queue_change_allowed">queue_change_allowed</a><a href="#tymethod.signal_finished">signal_finished</a></div><a class="sidebar-title" href="#provided-methods">Provided Methods</a><div class="sidebar-links"><a href="#method.join">join</a><a href="#method.then_execute">then_execute</a><a href="#method.then_execute_same_queue">then_execute_same_queue</a><a href="#method.then_signal_fence">then_signal_fence</a><a href="#method.then_signal_fence_and_flush">then_signal_fence_and_flush</a><a href="#method.then_signal_semaphore">then_signal_semaphore</a><a href="#method.then_signal_semaphore_and_flush">then_signal_semaphore_and_flush</a><a href="#method.then_swapchain_present">then_swapchain_present</a><a href="#method.then_swapchain_present_incremental">then_swapchain_present_incremental</a></div><a class="sidebar-title" href="#foreign-impls">Implementations on Foreign Types</a><div class="sidebar-links"><a href="#impl-GpuFuture-for-Arc%3CFenceSignalFuture%3CF%3E%3E">Arc&lt;FenceSignalFuture&lt;F&gt;&gt;</a><a href="#impl-GpuFuture-for-Box%3CF%3E">Box&lt;F&gt;</a></div><a class="sidebar-title" href="#implementors">Implementors</a></div><p class='location'><a href='../index.html'>vulkano</a>::<wbr><a href='index.html'>sync</a></p><script>window.sidebarCurrent = {name: 'GpuFuture', ty: 'trait', relpath: ''};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse
fn <a href='#tymethod.cleanup_finished' class='fnname'>cleanup_finished</a>(&amp;mut self);
<div class='item-spacer'></div> unsafe fn <a href='#tymethod.build_submission' class='fnname'>build_submission</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="../../vulkano/command_buffer/submit/enum.SubmitAnyBuilder.html" title="enum vulkano::command_buffer::submit::SubmitAnyBuilder">SubmitAnyBuilder</a>, <a class="enum" href="../../vulkano/sync/enum.FlushError.html" title="enum vulkano::sync::FlushError">FlushError</a>&gt;;
<div class='item-spacer'></div> fn <a href='#tymethod.flush' class='fnname'>flush</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="../../vulkano/sync/enum.FlushError.html" title="enum vulkano::sync::FlushError">FlushError</a>&gt;;
<div class='item-spacer'></div> unsafe fn <a href='#tymethod.signal_finished' class='fnname'>signal_finished</a>(&amp;self);
<div class='item-spacer'></div> fn <a href='#tymethod.queue' class='fnname'>queue</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="../../vulkano/device/struct.Queue.html" title="struct vulkano::device::Queue">Queue</a>&gt;&gt;;
<div class='item-spacer'></div> fn <a href='#tymethod.queue_change_allowed' class='fnname'>queue_change_allowed</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>;
<div class='item-spacer'></div> fn <a href='#tymethod.check_buffer_access' class='fnname'>check_buffer_access</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buffer: &amp;dyn <a class="trait" href="../../vulkano/buffer/trait.BufferAccess.html" title="trait vulkano::buffer::BufferAccess">BufferAccess</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exclusive: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;queue: &amp;<a class="struct" href="../../vulkano/device/struct.Queue.html" title="struct vulkano::device::Queue">Queue</a><br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="struct" href="../../vulkano/sync/struct.PipelineStages.html" title="struct vulkano::sync::PipelineStages">PipelineStages</a>, <a class="struct" href="../../vulkano/sync/struct.AccessFlagBits.html" title="struct vulkano::sync::AccessFlagBits">AccessFlagBits</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>&gt;, <a class="enum" href="../../vulkano/sync/enum.AccessCheckError.html" title="enum vulkano::sync::AccessCheckError">AccessCheckError</a>&gt;;
<div class='item-spacer'></div> fn <a href='#tymethod.check_image_access' class='fnname'>check_image_access</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image: &amp;dyn <a class="trait" href="../../vulkano/image/traits/trait.ImageAccess.html" title="trait vulkano::image::traits::ImageAccess">ImageAccess</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;layout: <a class="enum" href="../../vulkano/image/enum.ImageLayout.html" title="enum vulkano::image::ImageLayout">ImageLayout</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exclusive: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;queue: &amp;<a class="struct" href="../../vulkano/device/struct.Queue.html" title="struct vulkano::device::Queue">Queue</a><br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="struct" href="../../vulkano/sync/struct.PipelineStages.html" title="struct vulkano::sync::PipelineStages">PipelineStages</a>, <a class="struct" href="../../vulkano/sync/struct.AccessFlagBits.html" title="struct vulkano::sync::AccessFlagBits">AccessFlagBits</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>&gt;, <a class="enum" href="../../vulkano/sync/enum.AccessCheckError.html" title="enum vulkano::sync::AccessCheckError">AccessCheckError</a>&gt;;
fn <a href='#method.join' class='fnname'>join</a>&lt;F&gt;(self, other: F) -&gt; <a class="struct" href="../../vulkano/sync/struct.JoinFuture.html" title="struct vulkano::sync::JoinFuture">JoinFuture</a>&lt;Self, F&gt;<br>&nbsp;&nbsp;&nbsp; <span class="where">where<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="../../vulkano/sync/trait.GpuFuture.html" title="trait vulkano::sync::GpuFuture">GpuFuture</a></span>,
{ ... }
<div class='item-spacer'></div> fn <a href='#method.then_execute' class='fnname'>then_execute</a>&lt;Cb&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;queue: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="../../vulkano/device/struct.Queue.html" title="struct vulkano::device::Queue">Queue</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;command_buffer: Cb<br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../../vulkano/command_buffer/struct.CommandBufferExecFuture.html" title="struct vulkano::command_buffer::CommandBufferExecFuture">CommandBufferExecFuture</a>&lt;Self, Cb&gt;, <a class="enum" href="../../vulkano/command_buffer/enum.CommandBufferExecError.html" title="enum vulkano::command_buffer::CommandBufferExecError">CommandBufferExecError</a>&gt;<br>&nbsp;&nbsp;&nbsp; <span class="where">where<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cb: <a class="trait" href="../../vulkano/command_buffer/trait.CommandBuffer.html" title="trait vulkano::command_buffer::CommandBuffer">CommandBuffer</a> + 'static</span>,
{ ... }
<div class='item-spacer'></div> fn <a href='#method.then_execute_same_queue' class='fnname'>then_execute_same_queue</a>&lt;Cb&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;command_buffer: Cb<br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../../vulkano/command_buffer/struct.CommandBufferExecFuture.html" title="struct vulkano::command_buffer::CommandBufferExecFuture">CommandBufferExecFuture</a>&lt;Self, Cb&gt;, <a class="enum" href="../../vulkano/command_buffer/enum.CommandBufferExecError.html" title="enum vulkano::command_buffer::CommandBufferExecError">CommandBufferExecError</a>&gt;<br>&nbsp;&nbsp;&nbsp; <span class="where">where<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cb: <a class="trait" href="../../vulkano/command_buffer/trait.CommandBuffer.html" title="trait vulkano::command_buffer::CommandBuffer">CommandBuffer</a> + 'static</span>,
{ ... }
<div class='item-spacer'></div> fn <a href='#method.then_signal_semaphore' class='fnname'>then_signal_semaphore</a>(self) -&gt; <a class="struct" href="../../vulkano/sync/struct.SemaphoreSignalFuture.html" title="struct vulkano::sync::SemaphoreSignalFuture">SemaphoreSignalFuture</a>&lt;Self&gt;<br>&nbsp;&nbsp;&nbsp; <span class="where">where<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a></span>,
{ ... }
<div class='item-spacer'></div> fn <a href='#method.then_signal_semaphore_and_flush' class='fnname'>then_signal_semaphore_and_flush</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self<br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../../vulkano/sync/struct.SemaphoreSignalFuture.html" title="struct vulkano::sync::SemaphoreSignalFuture">SemaphoreSignalFuture</a>&lt;Self&gt;, <a class="enum" href="../../vulkano/sync/enum.FlushError.html" title="enum vulkano::sync::FlushError">FlushError</a>&gt;<br>&nbsp;&nbsp;&nbsp; <span class="where">where<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a></span>,
{ ... }
<div class='item-spacer'></div> fn <a href='#method.then_signal_fence' class='fnname'>then_signal_fence</a>(self) -&gt; <a class="struct" href="../../vulkano/sync/struct.FenceSignalFuture.html" title="struct vulkano::sync::FenceSignalFuture">FenceSignalFuture</a>&lt;Self&gt;<br>&nbsp;&nbsp;&nbsp; <span class="where">where<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a></span>,
{ ... }
<div class='item-spacer'></div> fn <a href='#method.then_signal_fence_and_flush' class='fnname'>then_signal_fence_and_flush</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self<br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../../vulkano/sync/struct.FenceSignalFuture.html" title="struct vulkano::sync::FenceSignalFuture">FenceSignalFuture</a>&lt;Self&gt;, <a class="enum" href="../../vulkano/sync/enum.FlushError.html" title="enum vulkano::sync::FlushError">FlushError</a>&gt;<br>&nbsp;&nbsp;&nbsp; <span class="where">where<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a></span>,
{ ... }
<div class='item-spacer'></div> fn <a href='#method.then_swapchain_present' class='fnname'>then_swapchain_present</a>&lt;W&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;queue: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="../../vulkano/device/struct.Queue.html" title="struct vulkano::device::Queue">Queue</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;swapchain: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="../../vulkano/swapchain/struct.Swapchain.html" title="struct vulkano::swapchain::Swapchain">Swapchain</a>&lt;W&gt;&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image_index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="struct" href="../../vulkano/swapchain/struct.PresentFuture.html" title="struct vulkano::swapchain::PresentFuture">PresentFuture</a>&lt;Self, W&gt;<br>&nbsp;&nbsp;&nbsp; <span class="where">where<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a></span>,
{ ... }
<div class='item-spacer'></div> fn <a href='#method.then_swapchain_present_incremental' class='fnname'>then_swapchain_present_incremental</a>&lt;W&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;queue: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="../../vulkano/device/struct.Queue.html" title="struct vulkano::device::Queue">Queue</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;swapchain: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="../../vulkano/swapchain/struct.Swapchain.html" title="struct vulkano::swapchain::Swapchain">Swapchain</a>&lt;W&gt;&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image_index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;present_region: <a class="struct" href="../../vulkano/swapchain/struct.PresentRegion.html" title="struct vulkano::swapchain::PresentRegion">PresentRegion</a><br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="struct" href="../../vulkano/swapchain/struct.PresentFuture.html" title="struct vulkano::swapchain::PresentFuture">PresentFuture</a>&lt;Self, W&gt;<br>&nbsp;&nbsp;&nbsp; <span class="where">where<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a></span>,
{ ... }
}</pre></div><div class='docblock'><p>Represents an event that will happen on the GPU in the future.</p>
<p>See the documentation of the <code>sync</code> module for explanations about futures.</p>
</div>
<h2 id='required-methods' class='small-section-header'>Required methods<a href='#required-methods' class='anchor'></a></h2><div class='methods'><h3 id='tymethod.cleanup_finished' class='method'><code id='cleanup_finished.v'>fn <a href='#tymethod.cleanup_finished' class='fnname'>cleanup_finished</a>(&amp;mut self)</code></h3><div class='docblock'><p>If possible, checks whether the submission has finished. If so, gives up ownership of the
resources used by these submissions.</p>
<p>It is highly recommended to call <code>cleanup_finished</code> from time to time. Doing so will
prevent memory usage from increasing over time, and will also destroy the locks on
resources used by the GPU.</p>
</div><h3 id='tymethod.build_submission' class='method'><code id='build_submission.v'>unsafe fn <a href='#tymethod.build_submission' class='fnname'>build_submission</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="../../vulkano/command_buffer/submit/enum.SubmitAnyBuilder.html" title="enum vulkano::command_buffer::submit::SubmitAnyBuilder">SubmitAnyBuilder</a>, <a class="enum" href="../../vulkano/sync/enum.FlushError.html" title="enum vulkano::sync::FlushError">FlushError</a>&gt;</code></h3><div class='docblock'><p>Builds a submission that, if submitted, makes sure that the event represented by this
<code>GpuFuture</code> will happen, and possibly contains extra elements (eg. a semaphore wait or an
event wait) that makes the dependency with subsequent operations work.</p>
<p>It is the responsibility of the caller to ensure that the submission is going to be
submitted only once. However keep in mind that this function can perfectly be called
multiple times (as long as the returned object is only submitted once).
Also note that calling <code>flush()</code> on the future may change the value returned by
<code>build_submission()</code>.</p>
<p>It is however the responsibility of the implementation to not return the same submission
from multiple different future objects. For example if you implement <code>GpuFuture</code> on
<code>Arc&lt;Foo&gt;</code> then <code>build_submission()</code> must always return <code>SubmitAnyBuilder::Empty</code>,
otherwise it would be possible for the user to clone the <code>Arc</code> and make the same
submission be submitted multiple times.</p>
<p>It is also the responsibility of the implementation to ensure that it works if you call
<code>build_submission()</code> and submits the returned value without calling <code>flush()</code> first. In
other words, <code>build_submission()</code> should perform an implicit flush if necessary.</p>
<p>Once the caller has submitted the submission and has determined that the GPU has finished
executing it, it should call <code>signal_finished</code>. Failure to do so will incur a large runtime
overhead, as the future will have to block to make sure that it is finished.</p>
</div><h3 id='tymethod.flush' class='method'><code id='flush.v'>fn <a href='#tymethod.flush' class='fnname'>flush</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="../../vulkano/sync/enum.FlushError.html" title="enum vulkano::sync::FlushError">FlushError</a>&gt;</code></h3><div class='docblock'><p>Flushes the future and submits to the GPU the actions that will permit this future to
occur.</p>
<p>The implementation must remember that it was flushed. If the function is called multiple
times, only the first time must result in a flush.</p>
</div><h3 id='tymethod.signal_finished' class='method'><code id='signal_finished.v'>unsafe fn <a href='#tymethod.signal_finished' class='fnname'>signal_finished</a>(&amp;self)</code></h3><div class='docblock'><p>Sets the future to its &quot;complete&quot; state, meaning that it can safely be destroyed.</p>
<p>This must only be done if you called <code>build_submission()</code>, submitted the returned
submission, and determined that it was finished.</p>
<p>The implementation must be aware that this function can be called multiple times on the
same future.</p>
</div><h3 id='tymethod.queue' class='method'><code id='queue.v'>fn <a href='#tymethod.queue' class='fnname'>queue</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="../../vulkano/device/struct.Queue.html" title="struct vulkano::device::Queue">Queue</a>&gt;&gt;</code></h3><div class='docblock'><p>Returns the queue that triggers the event. Returns <code>None</code> if unknown or irrelevant.</p>
<p>If this function returns <code>None</code> and <code>queue_change_allowed</code> returns <code>false</code>, then a panic
is likely to occur if you use this future. This is only a problem if you implement
the <code>GpuFuture</code> trait yourself for a type outside of vulkano.</p>
</div><h3 id='tymethod.queue_change_allowed' class='method'><code id='queue_change_allowed.v'>fn <a href='#tymethod.queue_change_allowed' class='fnname'>queue_change_allowed</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></h3><div class='docblock'><p>Returns <code>true</code> if elements submitted after this future can be submitted to a different
queue than the other returned by <code>queue()</code>.</p>
</div><h3 id='tymethod.check_buffer_access' class='method'><code id='check_buffer_access.v'>fn <a href='#tymethod.check_buffer_access' class='fnname'>check_buffer_access</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;buffer: &amp;dyn <a class="trait" href="../../vulkano/buffer/trait.BufferAccess.html" title="trait vulkano::buffer::BufferAccess">BufferAccess</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;exclusive: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;queue: &amp;<a class="struct" href="../../vulkano/device/struct.Queue.html" title="struct vulkano::device::Queue">Queue</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="struct" href="../../vulkano/sync/struct.PipelineStages.html" title="struct vulkano::sync::PipelineStages">PipelineStages</a>, <a class="struct" href="../../vulkano/sync/struct.AccessFlagBits.html" title="struct vulkano::sync::AccessFlagBits">AccessFlagBits</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>&gt;, <a class="enum" href="../../vulkano/sync/enum.AccessCheckError.html" title="enum vulkano::sync::AccessCheckError">AccessCheckError</a>&gt;</code></h3><div class='docblock'><p>Checks whether submitting something after this future grants access (exclusive or shared,
depending on the parameter) to the given buffer on the given queue.</p>
<p>If the access is granted, returns the pipeline stage and access flags of the latest usage
of this resource, or <code>None</code> if irrelevant.</p>
<blockquote>
<p><strong>Note</strong>: Returning <code>Ok</code> means &quot;access granted&quot;, while returning <code>Err</code> means
&quot;don't know&quot;. Therefore returning <code>Err</code> is never unsafe.</p>
</blockquote>
</div><h3 id='tymethod.check_image_access' class='method'><code id='check_image_access.v'>fn <a href='#tymethod.check_image_access' class='fnname'>check_image_access</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;image: &amp;dyn <a class="trait" href="../../vulkano/image/traits/trait.ImageAccess.html" title="trait vulkano::image::traits::ImageAccess">ImageAccess</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;layout: <a class="enum" href="../../vulkano/image/enum.ImageLayout.html" title="enum vulkano::image::ImageLayout">ImageLayout</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;exclusive: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;queue: &amp;<a class="struct" href="../../vulkano/device/struct.Queue.html" title="struct vulkano::device::Queue">Queue</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="struct" href="../../vulkano/sync/struct.PipelineStages.html" title="struct vulkano::sync::PipelineStages">PipelineStages</a>, <a class="struct" href="../../vulkano/sync/struct.AccessFlagBits.html" title="struct vulkano::sync::AccessFlagBits">AccessFlagBits</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>&gt;, <a class="enum" href="../../vulkano/sync/enum.AccessCheckError.html" title="enum vulkano::sync::AccessCheckError">AccessCheckError</a>&gt;</code></h3><div class='docblock'><p>Checks whether submitting something after this future grants access (exclusive or shared,
depending on the parameter) to the given image on the given queue.</p>
<p>If the access is granted, returns the pipeline stage and access flags of the latest usage
of this resource, or <code>None</code> if irrelevant.</p>
<p>Implementations must ensure that the image is in the given layout. However if the <code>layout</code>
is <code>Undefined</code> then the implementation should accept any actual layout.</p>
<blockquote>
<p><strong>Note</strong>: Returning <code>Ok</code> means &quot;access granted&quot;, while returning <code>Err</code> means
&quot;don't know&quot;. Therefore returning <code>Err</code> is never unsafe.</p>
</blockquote>
<blockquote>
<p><strong>Note</strong>: Keep in mind that changing the layout of an image also requires exclusive
access.</p>
</blockquote>
</div></div><span class='loading-content'>Loading content...</span>
<h2 id='provided-methods' class='small-section-header'>Provided methods<a href='#provided-methods' class='anchor'></a></h2><div class='methods'><h3 id='method.join' class='method'><code id='join.v'>fn <a href='#method.join' class='fnname'>join</a>&lt;F&gt;(self, other: F) -&gt; <a class="struct" href="../../vulkano/sync/struct.JoinFuture.html" title="struct vulkano::sync::JoinFuture">JoinFuture</a>&lt;Self, F&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="../../vulkano/sync/trait.GpuFuture.html" title="trait vulkano::sync::GpuFuture">GpuFuture</a>,&nbsp;</span></code></h3><div class='docblock'><p>Joins this future with another one, representing the moment when both events have happened.</p>
</div><h3 id='method.then_execute' class='method'><code id='then_execute.v'>fn <a href='#method.then_execute' class='fnname'>then_execute</a>&lt;Cb&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;queue: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="../../vulkano/device/struct.Queue.html" title="struct vulkano::device::Queue">Queue</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;command_buffer: Cb<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../../vulkano/command_buffer/struct.CommandBufferExecFuture.html" title="struct vulkano::command_buffer::CommandBufferExecFuture">CommandBufferExecFuture</a>&lt;Self, Cb&gt;, <a class="enum" href="../../vulkano/command_buffer/enum.CommandBufferExecError.html" title="enum vulkano::command_buffer::CommandBufferExecError">CommandBufferExecError</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;Cb: <a class="trait" href="../../vulkano/command_buffer/trait.CommandBuffer.html" title="trait vulkano::command_buffer::CommandBuffer">CommandBuffer</a> + 'static,&nbsp;</span></code></h3><div class='docblock'><p>Executes a command buffer after this future.</p>
<blockquote>
<p><strong>Note</strong>: This is just a shortcut function. The actual implementation is in the
<code>CommandBuffer</code> trait.</p>
</blockquote>
</div><h3 id='method.then_execute_same_queue' class='method'><code id='then_execute_same_queue.v'>fn <a href='#method.then_execute_same_queue' class='fnname'>then_execute_same_queue</a>&lt;Cb&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;command_buffer: Cb<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../../vulkano/command_buffer/struct.CommandBufferExecFuture.html" title="struct vulkano::command_buffer::CommandBufferExecFuture">CommandBufferExecFuture</a>&lt;Self, Cb&gt;, <a class="enum" href="../../vulkano/command_buffer/enum.CommandBufferExecError.html" title="enum vulkano::command_buffer::CommandBufferExecError">CommandBufferExecError</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;Cb: <a class="trait" href="../../vulkano/command_buffer/trait.CommandBuffer.html" title="trait vulkano::command_buffer::CommandBuffer">CommandBuffer</a> + 'static,&nbsp;</span></code></h3><div class='docblock'><p>Executes a command buffer after this future, on the same queue as the future.</p>
<blockquote>
<p><strong>Note</strong>: This is just a shortcut function. The actual implementation is in the
<code>CommandBuffer</code> trait.</p>
</blockquote>
</div><h3 id='method.then_signal_semaphore' class='method'><code id='then_signal_semaphore.v'>fn <a href='#method.then_signal_semaphore' class='fnname'>then_signal_semaphore</a>(self) -&gt; <a class="struct" href="../../vulkano/sync/struct.SemaphoreSignalFuture.html" title="struct vulkano::sync::SemaphoreSignalFuture">SemaphoreSignalFuture</a>&lt;Self&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></code></h3><div class='docblock'><p>Signals a semaphore after this future. Returns another future that represents the signal.</p>
<p>Call this function when you want to execute some operations on a queue and want to see the
result on another queue.</p>
</div><h3 id='method.then_signal_semaphore_and_flush' class='method'><code id='then_signal_semaphore_and_flush.v'>fn <a href='#method.then_signal_semaphore_and_flush' class='fnname'>then_signal_semaphore_and_flush</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;self<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../../vulkano/sync/struct.SemaphoreSignalFuture.html" title="struct vulkano::sync::SemaphoreSignalFuture">SemaphoreSignalFuture</a>&lt;Self&gt;, <a class="enum" href="../../vulkano/sync/enum.FlushError.html" title="enum vulkano::sync::FlushError">FlushError</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></code></h3><div class='docblock'><p>Signals a semaphore after this future and flushes it. Returns another future that
represents the moment when the semaphore is signalled.</p>
<p>This is a just a shortcut for <code>then_signal_semaphore()</code> followed with <code>flush()</code>.</p>
<p>When you want to execute some operations A on a queue and some operations B on another
queue that need to see the results of A, it can be a good idea to submit A as soon as
possible while you're preparing B.</p>
<p>If you ran A and B on the same queue, you would have to decide between submitting A then
B, or A and B simultaneously. Both approaches have their trade-offs. But if A and B are
on two different queues, then you would need two submits anyway and it is always
advantageous to submit A as soon as possible.</p>
</div><h3 id='method.then_signal_fence' class='method'><code id='then_signal_fence.v'>fn <a href='#method.then_signal_fence' class='fnname'>then_signal_fence</a>(self) -&gt; <a class="struct" href="../../vulkano/sync/struct.FenceSignalFuture.html" title="struct vulkano::sync::FenceSignalFuture">FenceSignalFuture</a>&lt;Self&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></code></h3><div class='docblock'><p>Signals a fence after this future. Returns another future that represents the signal.</p>
<blockquote>
<p><strong>Note</strong>: More often than not you want to immediately flush the future after calling this
function. If so, consider using <code>then_signal_fence_and_flush</code>.</p>
</blockquote>
</div><h3 id='method.then_signal_fence_and_flush' class='method'><code id='then_signal_fence_and_flush.v'>fn <a href='#method.then_signal_fence_and_flush' class='fnname'>then_signal_fence_and_flush</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;self<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../../vulkano/sync/struct.FenceSignalFuture.html" title="struct vulkano::sync::FenceSignalFuture">FenceSignalFuture</a>&lt;Self&gt;, <a class="enum" href="../../vulkano/sync/enum.FlushError.html" title="enum vulkano::sync::FlushError">FlushError</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></code></h3><div class='docblock'><p>Signals a fence after this future. Returns another future that represents the signal.</p>
<p>This is a just a shortcut for <code>then_signal_fence()</code> followed with <code>flush()</code>.</p>
</div><h3 id='method.then_swapchain_present' class='method'><code id='then_swapchain_present.v'>fn <a href='#method.then_swapchain_present' class='fnname'>then_swapchain_present</a>&lt;W&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;queue: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="../../vulkano/device/struct.Queue.html" title="struct vulkano::device::Queue">Queue</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;swapchain: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="../../vulkano/swapchain/struct.Swapchain.html" title="struct vulkano::swapchain::Swapchain">Swapchain</a>&lt;W&gt;&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;image_index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><br>) -&gt; <a class="struct" href="../../vulkano/swapchain/struct.PresentFuture.html" title="struct vulkano::swapchain::PresentFuture">PresentFuture</a>&lt;Self, W&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></code></h3><div class='docblock'><p>Presents a swapchain image after this future.</p>
<p>You should only ever do this indirectly after a <code>SwapchainAcquireFuture</code> of the same image,
otherwise an error will occur when flushing.</p>
<blockquote>
<p><strong>Note</strong>: This is just a shortcut for the <code>Swapchain::present()</code> function.</p>
</blockquote>
</div><h3 id='method.then_swapchain_present_incremental' class='method'><code id='then_swapchain_present_incremental.v'>fn <a href='#method.then_swapchain_present_incremental' class='fnname'>then_swapchain_present_incremental</a>&lt;W&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;queue: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="../../vulkano/device/struct.Queue.html" title="struct vulkano::device::Queue">Queue</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;swapchain: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="../../vulkano/swapchain/struct.Swapchain.html" title="struct vulkano::swapchain::Swapchain">Swapchain</a>&lt;W&gt;&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;image_index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;present_region: <a class="struct" href="../../vulkano/swapchain/struct.PresentRegion.html" title="struct vulkano::swapchain::PresentRegion">PresentRegion</a><br>) -&gt; <a class="struct" href="../../vulkano/swapchain/struct.PresentFuture.html" title="struct vulkano::swapchain::PresentFuture">PresentFuture</a>&lt;Self, W&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></code></h3><div class='docblock'><p>Same as <code>then_swapchain_present</code>, except it allows specifying a present region.</p>
<blockquote>
<p><strong>Note</strong>: This is just a shortcut for the <code>Swapchain::present_incremental()</code> function.</p>
</blockquote>
</div></div><span class='loading-content'>Loading content...</span>
<h2 id='foreign-impls' class='small-section-header'>Implementations on Foreign Types<a href='#foreign-impls' class='anchor'></a></h2><h3 id='impl-GpuFuture-for-Arc%3CFenceSignalFuture%3CF%3E%3E' class='impl'><code class='in-band'>impl&lt;F&gt; <a class="trait" href="../../vulkano/sync/trait.GpuFuture.html" title="trait vulkano::sync::GpuFuture">GpuFuture</a> for <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="../../vulkano/sync/struct.FenceSignalFuture.html" title="struct vulkano::sync::FenceSignalFuture">FenceSignalFuture</a>&lt;F&gt;&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="../../vulkano/sync/trait.GpuFuture.html" title="trait vulkano::sync::GpuFuture">GpuFuture</a>,&nbsp;</span></code><a href='#impl-GpuFuture-for-Arc%3CFenceSignalFuture%3CF%3E%3E' class='anchor'></a><a class='srclink' href='../../src/vulkano/sync/future/fence_signal.rs.html#457-505' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.cleanup_finished' class="method hidden"><code id='cleanup_finished.v-1'>fn <a href='#method.cleanup_finished' class='fnname'>cleanup_finished</a>(&amp;mut self)</code><a class='srclink' href='../../src/vulkano/sync/future/fence_signal.rs.html#461-463' title='goto source code'>[src]</a></h4><h4 id='method.build_submission' class="method hidden"><code id='build_submission.v-1'>unsafe fn <a href='#method.build_submission' class='fnname'>build_submission</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="../../vulkano/command_buffer/submit/enum.SubmitAnyBuilder.html" title="enum vulkano::command_buffer::submit::SubmitAnyBuilder">SubmitAnyBuilder</a>, <a class="enum" href="../../vulkano/sync/enum.FlushError.html" title="enum vulkano::sync::FlushError">FlushError</a>&gt;</code><a class='srclink' href='../../src/vulkano/sync/future/fence_signal.rs.html#466-470' title='goto source code'>[src]</a></h4><h4 id='method.flush' class="method hidden"><code id='flush.v-1'>fn <a href='#method.flush' class='fnname'>flush</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="../../vulkano/sync/enum.FlushError.html" title="enum vulkano::sync::FlushError">FlushError</a>&gt;</code><a class='srclink' href='../../src/vulkano/sync/future/fence_signal.rs.html#473-475' title='goto source code'>[src]</a></h4><h4 id='method.signal_finished' class="method hidden"><code id='signal_finished.v-1'>unsafe fn <a href='#method.signal_finished' class='fnname'>signal_finished</a>(&amp;self)</code><a class='srclink' href='../../src/vulkano/sync/future/fence_signal.rs.html#478-480' title='goto source code'>[src]</a></h4><h4 id='method.queue_change_allowed' class="method hidden"><code id='queue_change_allowed.v-1'>fn <a href='#method.queue_change_allowed' class='fnname'>queue_change_allowed</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code><a class='srclink' href='../../src/vulkano/sync/future/fence_signal.rs.html#483-485' title='goto source code'>[src]</a></h4><h4 id='method.queue' class="method hidden"><code id='queue.v-1'>fn <a href='#method.queue' class='fnname'>queue</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="../../vulkano/device/struct.Queue.html" title="struct vulkano::device::Queue">Queue</a>&gt;&gt;</code><a class='srclink' href='../../src/vulkano/sync/future/fence_signal.rs.html#488-490' titl
<h2 id='implementors' class='small-section-header'>Implementors<a href='#implementors' class='anchor'></a></h2><div class='item-list' id='implementors-list'><h3 id='impl-GpuFuture' class='impl'><code class='in-band'>impl GpuFuture for <a class="struct" href="../../vulkano/sync/struct.NowFuture.html" title="struct vulkano::sync::NowFuture">NowFuture</a></code><a href='#impl-GpuFuture' class='anchor'></a><a class='srclink' href='../../src/vulkano/sync/future/now.rs.html#36-77' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.cleanup_finished-2' class="method hidden"><code id='cleanup_finished.v-3'>fn <a href='#method.cleanup_finished-2' class='fnname'>cleanup_finished</a>(&amp;mut self)</code><a class='srclink' href='../../src/vulkano/sync/future/now.rs.html#38-39' title='goto source code'>[src]</a></h4><h4 id='method.build_submission-2' class="method hidden"><code id='build_submission.v-3'>unsafe fn <a href='#method.build_submission-2' class='fnname'>build_submission</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="../../vulkano/command_buffer/submit/enum.SubmitAnyBuilder.html" title="enum vulkano::command_buffer::submit::SubmitAnyBuilder">SubmitAnyBuilder</a>, <a class="enum" href="../../vulkano/sync/enum.FlushError.html" title="enum vulkano::sync::FlushError">FlushError</a>&gt;</code><a class='srclink' href='../../src/vulkano/sync/future/now.rs.html#42-44' title='goto source code'>[src]</a></h4><h4 id='method.flush-2' class="method hidden"><code id='flush.v-3'>fn <a href='#method.flush-2' class='fnname'>flush</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="enum" href="../../vulkano/sync/enum.FlushError.html" title="enum vulkano::sync::FlushError">FlushError</a>&gt;</code><a class='srclink' href='../../src/vulkano/sync/future/now.rs.html#47-49' title='goto source code'>[src]</a></h4><h4 id='method.signal_finished-2' class="method hidden"><code id='signal_finished.v-3'>unsafe fn <a href='#method.signal_finished-2' class='fnname'>signal_finished</a>(&amp;self)</code><a class='srclink' href='../../src/vulkano/sync/future/now.rs.html#52-53' title='goto source code'>[src]</a></h4><h4 id='method.queue_change_allowed-2' class="method hidden"><code id='queue_change_allowed.v-3'>fn <a href='#method.queue_change_allowed-2' class='fnname'>queue_change_allowed</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code><a class='srclink' href='../../src/vulkano/sync/future/now.rs.html#56-58' title='goto source code'>[src]</a></h4><h4 id='method.queue-2' class="method hidden"><code id='queue.v-3'>fn <a href='#method.queue-2' class='fnname'>queue</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="../../vulkano/device/struct.Queue.html" title="struct vulkano::device::Queue">Queue</a>&gt;&gt;</code><a class='srclink' href='../../src/vulkano/sync/future/now.rs.html#61-63' title='goto source code'>[src]</a></h4><h4 id='method.check_buffer_access-2' class="method hidden"><code id='check_buffer_access.v-3'>fn <a href='#method.check_buffer_access-2' class='fnname'>check_buffer_access</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;buffer: &amp;dyn <a class="trait" href="../../vulkano/buffer/trait.BufferAccess.html" title="trait vulkano::buffer::BufferAccess">BufferAccess</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;_: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;_: &
src="../../implementors/vulkano/sync/trait.GpuFuture.js">
</script></section><section id="search" class="content hidden"></section><section class="footer"></section><aside id="help" class="hidden"><div><h1 class="hidden">Help</h1><div class="shortcuts"><h2>Keyboard Shortcuts</h2><dl><dt><kbd>?</kbd></dt><dd>Show this help dialog</dd><dt><kbd>S</kbd></dt><dd>Focus the search field</dd><dt><kbd></kbd></dt><dd>Move up in search results</dd><dt><kbd></kbd></dt><dd>Move down in search results</dd><dt><kbd></kbd></dt><dd>Switch tab</dd><dt><kbd>&#9166;</kbd></dt><dd>Go to active search result</dd><dt><kbd>+</kbd></dt><dd>Expand all sections</dd><dt><kbd>-</kbd></dt><dd>Collapse all sections</dd></dl></div><div class="infos"><h2>Search Tricks</h2><p>Prefix searches with a type followed by a colon (e.g., <code>fn:</code>) to restrict the search to a given type.</p><p>Accepted types are: <code>fn</code>, <code>mod</code>, <code>struct</code>, <code>enum</code>, <code>trait</code>, <code>type</code>, <code>macro</code>, and <code>const</code>.</p><p>Search functions by type signature (e.g., <code>vec -> usize</code> or <code>* -> vec</code>)</p><p>Search multiple things at once by splitting your query with comma (e.g., <code>str,u8</code> or <code>String,struct:Vec,test</code>)</p></div></div></aside><script>window.rootPath = "../../";window.currentCrate = "vulkano";</script><script src="../../aliases.js"></script><script src="../../main.js"></script><script defer src="../../search-index.js"></script></body></html>