<div dir="ltr">Just to be clear, the control flow structuring problem is something I have addressed, so work on an algorithm that would solve this problem would not be duplicated effort.<div><br></div><div>Greg<br><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><span><br></span></div></div></div></div></div></div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Oct 18, 2019 at 8:46 AM Henri Verbeet <<a href="mailto:hverbeet@gmail.com">hverbeet@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">On Fri, 18 Oct 2019 at 18:08, Hans-Kristian Arntzen<br>
<<a href="mailto:post@arntzen-software.no" target="_blank">post@arntzen-software.no</a>> wrote:<br>
> On 10/18/19 4:32 PM, Henri Verbeet wrote:<br>
> > On Fri, 18 Oct 2019 at 17:51, Hans-Kristian Arntzen<br>
> > <<a href="mailto:post@arntzen-software.no" target="_blank">post@arntzen-software.no</a>> wrote:<br>
> >> Most of the (little) time I've spent so far as been coming up with an algorithm to convert DXIL's unstructured control flow to something which conforms to SPIR-V's structured model.<br>
> >><br>
> > I may be missing something, but the existing vkd3d-shader code already<br>
> > needs to take care of that<br>
> > (vkd3d_dxbc_compiler_emit_control_flow_instruction() in particular),<br>
> > since both TPF and the (very thin) vkd3d-shader IR are unstructured as<br>
> > well.<br>
><br>
>  From what I can tell, the DXBC is structured already, and if/endif and<br>
> friends are already emitted directly, so there isn't any complex<br>
> analysis required to convert it to SPIR-V. DXIL is unstructured, i.e.,<br>
> it's a goto soup, but it has to be a reducible CFG at least. I didn't<br>
> see any implementation for that.<br>
><br>
Right, I wouldn't exactly call TPF structured, but it's not quite<br>
unstructured either, and doesn't have goto/jump. I wasn't aware that<br>
DXIL did.<br>
<br>
Henri<br>
</blockquote></div>