Hi, thanks, Faith, for bringing this discussion up.
I think with Venus we are more interested in using utility libraries on an as-needed basis. Here, most of the time the Vulkan commands are just serialized according to the Venus protocol and this is then passed to the host because usually it wouldn't make sense to let the guest translate the Vulkan commands to something different (e.g. something that is commonly used in a runtime), only to then re-encode this in the Venus driver to satisfy the host Vulkan driver - just think Spir-V: why would we want to have NIR only to then re-encode it to Spir-V? I'd also like to give a +1 to the points raised by Triang3l and others about the potential of breaking other drivers. I've certainly be bitten by this on the Gallium side with r600, and unfortunately I can't set up a CI in my home office (and after watching the XDC talk about setting up your own CI I was even more discouraged to do this). In summary I certainly see the advantage in using common code, but with these two points above in mind I think opt-in is better. Gert