<div dir="ltr"><div>I am now able to get GstVulkanImageMemory/vkImage from a sample: <a href="https://gist.github.com/jwinarske/dda0f7154a0bf34c3e7b6606907ad0f7">https://gist.github.com/jwinarske/dda0f7154a0bf34c3e7b6606907ad0f7</a></div><div><br></div><div>What is the state of the vkImage when I read it from the sample? Ready to use and safe until the next incoming sample?</div><div>Do I need to do anything with the barrier?<br></div><div>How many vkImages are created, and in use?</div><div><br></div><div>It might be good to have an API where one can pass in an array of pre-created vkImages for use by the pipeline.  Then semaphores can be used externally for optimal threading and the presentation logic.<br></div><div><br></div><div>Cheers,</div><div>Joel<br></div><div><br></div><div>Thanks,</div><div>Joel<br></div><div></div><div></div><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Mar 2, 2022 at 12:12 AM Matthew Waters <<a href="mailto:ystreet00@gmail.com">ystreet00@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
  
    
  
  <div>
    appsink is your friend and you can retrieve the VkImage's from
    upstream and you can do what you like with them.<br>
    <br>
    There's no requirement to use vulkansink however you would need to
    make sure to interop with the relevant Vulkan objects between the
    application and GStreamer which may require some API additions in
    GStreamer for that case.  The design is similar to OpenGL
    integration but there are some differences with how Vulkan itself
    works that need to be accounted for when writing your own glue code.<br>
    <br>
    Cheers<br>
    -Matt<br>
    <br>
    <div>On 2/3/22 10:02, Joel Winarske wrote:<br>
    </div>
    <blockquote type="cite">
      
      <div dir="ltr">
        <div>I'm looking to use GST with an external swap chain.  Is
          there currently a way to get a callback or signaled semaphore
          (common) when a VkImage is ready for external use?  I'm
          thinking I may need to implement a variant of vulkansink.</div>
        <div><br>
        </div>
        <div>The external swap chain is running multiple pipelines, and
          handling display presentation logic.</div>
      </div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">On Mon, Feb 7, 2022 at 6:40 PM
          Matthew Waters <<a href="mailto:ystreet00@gmail.com" target="_blank">ystreet00@gmail.com</a>>
          wrote:<br>
        </div>
        <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Apart
          from running with vulkan elements with gst-launch-1.0, yes.
          That's<br>
          the only application example for Vulkan.  Note that Vulkan
          does work on<br>
          macOS/iOS through the MoltenVK layer.<br>
          <br>
          On 8/2/22 12:38, Joel Winarske via gstreamer-devel wrote:<br>
          > Is this the only Vulkan example?<br>
          ><br>
          > <a href="https://gitlab.freedesktop.org/gstreamer/gst-examples/-/tree/master/vulkan" rel="noreferrer" target="_blank">https://gitlab.freedesktop.org/gstreamer/gst-examples/-/tree/master/vulkan</a><br>
          ><br>
          > Thanks,<br>
          > Joel<br>
          <br>
        </blockquote>
      </div>
    </blockquote>
    <br>
  </div>

</blockquote></div>