radeonsi/gfx10: generate VS and TES as NGG merged ESGS shaders

This does not support geometry shading yet. Also missing are streamout
and NGG-specific optimizations.

Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
This commit is contained in:
Nicolai Hähnle
2017-11-16 17:00:50 +01:00
committed by Marek Olšák
parent e86256c512
commit 612489bd5d
6 changed files with 382 additions and 25 deletions

View File

@@ -186,6 +186,13 @@ struct si_shader_context {
int param_tes_rel_patch_id;
/* HW ES */
int param_es2gs_offset;
/* HW GS */
/* On gfx10:
* - bits 0..10: ordered_wave_id
* - bits 12..20: number of vertices in group
* - bits 22..30: number of primitives in group
*/
LLVMValueRef gs_tg_info;
/* API GS */
int param_gs2vs_offset;
int param_gs_wave_id; /* GFX6 */
@@ -372,4 +379,8 @@ LLVMValueRef si_unpack_param(struct si_shader_context *ctx,
unsigned param, unsigned rshift,
unsigned bitwidth);
void gfx10_emit_ngg_epilogue(struct ac_shader_abi *abi,
unsigned max_outputs,
LLVMValueRef *addrs);
#endif