<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 26/8/19 13:28, <a class="moz-txt-link-abbreviated" href="mailto:abergmeier@gmx.net">abergmeier@gmx.net</a>
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:trinity-abc3a5a4-6d98-401d-82bf-9988445842da-1566818915099@3c-app-gmx-bap79">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div style="font-family: Verdana;font-size: 12.0px;">
        <div>For a few weeks now I am working on implementing Vulkan for
          VideoCore 6 AKA 42 (using V3D/DRM). Don't hold you breath ;)<br>
          <br>
          Currently I am trying to understand what is necessary or how
          to interact with V3D. So I am looking at TransformFeedback
          because it interacts with quite a few other parts of the
          pipeline and still seems less mangled into the big logic than
          other features. So I am comparing how Gallium (V3D) is
          handling TF in the state tracker VS how Vulkan (Intel) is
          handling the Extension.<br>
           <br>
          The following is what I so far think I gathered:<br>
          1. GV3D is handling TransformFeedback directly with other
          bound parts of the pipeline (e.g. `emit_state` in
          _v3dx_emit.c_). It seems to look into the shader and
          associated TF specs. It seems to use "streamout targets",
          although I do not yet understand what these are really. Then
          it passes all the offsets, indices and finally resources to
          V3D.<br>
          2. The Vulkan Extension only knows about CounterBuffers and
          iterates over these. Intel seems to call TF -> XF? and
          subsequently the buffers XFB. Have also not yet gathered what
          is the difference and what all the gazillion acronyms mean.<br>
        </div>
      </div>
    </blockquote>
    <p><br>
    </p>
    <p>XFB is a really common acronym for transform feedback. So yes,
      XFB and TF are acronyms fro the same.<br>
    </p>
    <blockquote type="cite"
cite="mid:trinity-abc3a5a4-6d98-401d-82bf-9988445842da-1566818915099@3c-app-gmx-bap79">
      <div style="font-family: Verdana;font-size: 12.0px;">
        <div>
           <br>
          So far my idea would be to implement TF similar to Intel and
          instead of iterating over "streamout targets" I would iterate
          XFBs.<br>
          The problem with this approach is, that it will not be easy to
          mimic `cl_emit` calls similar to Gallium.<br>
          My question now is which parts of V3D emits have a dependency.<br>
           <br>
          I would assume that I can move TRANSFORM_FEEDBACK_SPECS and
          TRANSFORM_FEEDBACK_ENABLE to cmd state flush in Vulkan.<br>
          `vkCmdBeginTransformFeedbackEXT` shoudl then only
          need TRANSFORM_FEEDBACK_BUFFER
          and TRANSFORM_FEEDBACK_OUTPUT_ADDRESS.<br>
           <br>
          Sorry if this is a bit confusing - I am really just trying to
          figure this out one by one.<br>
           <br>
          Any information would be appreciated.</div>
        <div> </div>
        <div class="signature"> </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
mesa-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a>
<a class="moz-txt-link-freetext" href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev">https://lists.freedesktop.org/mailman/listinfo/mesa-dev</a></pre>
    </blockquote>
  </body>
</html>