<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>