zink: dead code elimination
The year is 2022. Vulkan 1.3 has been released, and there are many, many extensions that Zink relies upon for successful operation.
And then there's a lot of dead code.
Versioning
Technically, Zink requires Vulkan 1.0. In truth, the 1.0 codepath (e.g., no timeline semaphores) has zero regular testing outside of some hacky stuff that used to exist in CI but is no longer even being run. There's a bunch of code to attempt to retain compatibility here, but the benefit to "drivers that don't support modern versions of Vulkan" is limited in comparison to the burden of retaining this code and making vague attempts to stay compatible.
Is there a good reason not to bump the minimum required Vulkan version to 1.2, or, at minimum, require timeline semaphores?
Extensions
In theory, Zink can run with no extensions on a Vulkan 1.0 device. In reality, these codepaths (e.g., no EXT_extended_dynamic_state) remain untested and do little but contribute additional complexity to the codebase.
Is there a good reason not to require very common extensions (e.g., EXT_extended_dynamic_state) rather than continuing to retain possibly-functional fallback codepaths?