From: Nicolai Hähnle Date: Mon, 8 Aug 2016 13:38:04 +0000 (+0200) Subject: radeonsi: add DRAWID parameter to vertex shaders X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8dbf2a857008599a9432d64c1363c5a1139e6acd;p=mesa.git radeonsi: add DRAWID parameter to vertex shaders Reviewed-by: Bas Nieuwenhuizen Reviewed-by: Marek Olšák --- diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index 2c00f56d7b0..2de20cb1bd0 100644 --- a/src/gallium/drivers/radeonsi/si_shader.c +++ b/src/gallium/drivers/radeonsi/si_shader.c @@ -1668,6 +1668,11 @@ static void declare_system_value( SI_PARAM_START_INSTANCE); break; + case TGSI_SEMANTIC_DRAWID: + value = LLVMGetParam(radeon_bld->main_fn, + SI_PARAM_DRAWID); + break; + case TGSI_SEMANTIC_INVOCATIONID: if (ctx->type == PIPE_SHADER_TESS_CTRL) value = unpack_param(ctx, SI_PARAM_REL_IDS, 8, 5); @@ -5460,7 +5465,8 @@ static void create_function(struct si_shader_context *ctx) params[SI_PARAM_VERTEX_BUFFERS] = const_array(ctx->v16i8, SI_NUM_VERTEX_BUFFERS); params[SI_PARAM_BASE_VERTEX] = ctx->i32; params[SI_PARAM_START_INSTANCE] = ctx->i32; - num_params = SI_PARAM_START_INSTANCE+1; + params[SI_PARAM_DRAWID] = ctx->i32; + num_params = SI_PARAM_DRAWID+1; if (shader->key.vs.as_es) { params[ctx->param_es2gs_offset = num_params++] = ctx->i32; diff --git a/src/gallium/drivers/radeonsi/si_shader.h b/src/gallium/drivers/radeonsi/si_shader.h index e8560498988..fc1b22d7383 100644 --- a/src/gallium/drivers/radeonsi/si_shader.h +++ b/src/gallium/drivers/radeonsi/si_shader.h @@ -96,6 +96,7 @@ enum { SI_SGPR_VERTEX_BUFFERS_HI, SI_SGPR_BASE_VERTEX, SI_SGPR_START_INSTANCE, + SI_SGPR_DRAWID, SI_ES_NUM_USER_SGPR, /* hw VS only */ @@ -142,10 +143,11 @@ enum { SI_PARAM_VERTEX_BUFFERS = SI_NUM_RESOURCE_PARAMS, SI_PARAM_BASE_VERTEX, SI_PARAM_START_INSTANCE, + SI_PARAM_DRAWID, /* [0] = clamp vertex color, VS as VS only */ SI_PARAM_VS_STATE_BITS, /* same value as TCS_IN_LAYOUT, VS as LS only */ - SI_PARAM_LS_OUT_LAYOUT = SI_PARAM_START_INSTANCE + 1, + SI_PARAM_LS_OUT_LAYOUT = SI_PARAM_DRAWID + 1, /* the other VS parameters are assigned dynamically */ /* Layout of TCS outputs in the offchip buffer