[Mesa-dev] [PATCH 00/61] OpenGL 4.5 for Vega and other stuff

Hi, This series contains multiple different things, but the commit order is mostly fixed, so the review order is also fixed, and hopefully having just one series will help with navigation. Patches 1-7 are mostly GFX9 fixes for stable. Patches 8-13 are cleanups before adding LS-HS support. Patches 14-30 add LS-HS support (i.e. tessellation). The hw LS stage doesn't exist anymore and the driver has to merge it with HS. There is a lot of shader work around merging the stages. Patches 31-53 add ES-GS support (i.e. geometry shaders). The hw ES stage doesn't exist anymore the driver has to merge it with GS. Also, the ESGS offchip ring is gone and the driver has to use LDS instead, so this becomes pretty much the same as passing outputs between LS and HS. Using LDS for ESGS data was also an option on CI and VI, but we never used it in the Mesa driver. Finally, this chunk of patches also enables OpenGL 4.5 on Vega. Note that the scratch buffer isn't supported for tessellation and geometry shaders, but we plan to have the support done before the next Mesa release. Patches 54-61 are final cleanups, fixes, and improvements affecting all GCN chips. The most notable thing there is that tessellation ring addresses are moved from descriptor lists into user SGPR, so the s_load latency is gone there. Also, the VS epilog code is removed. Please review. src/gallium/drivers/radeonsi/si_compute.c | 1 + src/gallium/drivers/radeonsi/si_debug.c | 8 + src/gallium/drivers/radeonsi/si_descriptors.c | 73 +- src/gallium/drivers/radeonsi/si_pipe.c | 6 - src/gallium/drivers/radeonsi/si_pipe.h | 14 +- src/gallium/drivers/radeonsi/si_pm4.h | 2 +- src/gallium/drivers/radeonsi/si_shader.c | 1688 +++++++++++++------ src/gallium/drivers/radeonsi/si_shader.h | 247 +-- src/gallium/drivers/radeonsi/si_shader_internal.h | 89 +- .../drivers/radeonsi/si_shader_tgsi_setup.c | 93 +- src/gallium/drivers/radeonsi/si_state.c | 61 +- src/gallium/drivers/radeonsi/si_state.h | 3 - src/gallium/drivers/radeonsi/si_state_draw.c | 121 +- src/gallium/drivers/radeonsi/si_state_shaders.c | 546 +++++- 14 files changed, 2120 insertions(+), 832 deletions(-) Marek