turnip: Basic geometry shader support
This patch series adds geometry shader support to turnip:
- Enables geometry-specific lowering on the vs/gs.
- Configures VPC for geometry shaders.
- Configures VFD_CONTROL for geometry shaders.
- Enables preliminary layered rendering.
While this implementation passes most of dEQP-VK.geometry.*
, there's still some work to be done on layered rendering (dEQP-VK.geometry.layered.*
). Layered rendering requires sysmem, and a fair number of these tests hit sysmem TODO/FINISHME blocks. I plan on tackling these in the coming days, but I'd rather get the bulk of the code merged sooner rather than later.
That being said, my changes in tu_pipeline.c
will definitely need to be rebased on top of !4358 (merged). I'll wait for @cwabbott0's MR to get merged first before I merge this. In addition, I opted to use the older emit_pkt4
-style syntax in tu_pipeline
since it's already used throughout the file. Once this MR is merged, I'll migrate the entire file to use tu_cs_emit_regs
.