turnip: Tessellation shaders
This MR implements tessellation support for turnip. The actual changes are better described by the individual commit messages, but at a high level this MR contains commits to:
- Configure and enable tessellation shader compilation
- Update
ir3_nir_lower_tess
to support NIR generated from SPIR-V - Allocate and grow tess BOs
- Emit tess-related configuration
- Support half-regs for HS/DS/GS on a6xx
In addition, this MR depends on some changes I made to the SPIR-V to NIR compiler in !5058 (closed). With this MR, turnip now passes all tess-related tests in the VK CTS (dEQP-VK.tessellation.*
) except for a few that fail due to RA alloc crashes:
dEQP-VK.tessellation.shader_input_output.cross_invocation_per_vertex_mat4x3
dEQP-VK.tessellation.shader_input_output.cross_invocation_per_vertex_vec3
dEQP-VK.tessellation.shader_input_output.cross_invocation_per_vertex_vec4
/cc @krh
Edited by Brian Ho