On 10/18/19 4:32 PM, Henri Verbeet wrote:
On Fri, 18 Oct 2019 at 17:51, Hans-Kristian Arntzen post@arntzen-software.no wrote:
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.
I may be missing something, but the existing vkd3d-shader code already needs to take care of that (vkd3d_dxbc_compiler_emit_control_flow_instruction() in particular), since both TPF and the (very thin) vkd3d-shader IR are unstructured as well.
From what I can tell, the DXBC is structured already, and if/endif and friends are already emitted directly, so there isn't any complex analysis required to convert it to SPIR-V. DXIL is unstructured, i.e., it's a goto soup, but it has to be a reducible CFG at least. I didn't see any implementation for that.
Cheers, Hans-Kristian