turnip: implement VK_KHR_pipeline_executable_properties
Loosely based on ANV implementation.
For executable's internal representation we output:
- Initial NIR after spirv_to_nir
- Final optimized NIR
- IR3 disassembly
Note, that vkGetPipelineExecutablePropertiesKHR
is required to
return executable properties even if pipeline was not created with
CAPTURE_STATISTICS
or CAPTURE_INTERNAL_REPRESENTATIONS
bits set.
So the executables array is unconditionally populated, however
NIR and IR3 disassemlies are filled only when
CAPTURE_INTERNAL_REPRESENTATIONS
is set.
Passes dEQP-VK.pipeline.executable_properties.*
Works with RenderDoc.