struct si_shader *shader = ctx->shader;
LLVMValueRef vtx_offset, soffset;
struct si_shader_info *info = &shader->selector->info;
- unsigned semantic_name = info->input_semantic_name[input_index];
- unsigned semantic_index = info->input_semantic_index[input_index];
unsigned param;
LLVMValueRef value;
- param = si_shader_io_get_unique_index(semantic_name, semantic_index, false);
+ param = si_shader_io_get_unique_index(info->input_semantic[input_index], false);
/* GFX9 has the ESGS ring in LDS. */
if (ctx->screen->info.chip_class >= GFX9) {
for (i = 0; i < info->num_outputs; i++) {
int param;
- if (info->output_semantic_name[i] == TGSI_SEMANTIC_VIEWPORT_INDEX ||
- info->output_semantic_name[i] == TGSI_SEMANTIC_LAYER)
+ if (info->output_semantic[i] == VARYING_SLOT_VIEWPORT ||
+ info->output_semantic[i] == VARYING_SLOT_LAYER)
continue;
- param = si_shader_io_get_unique_index(info->output_semantic_name[i],
- info->output_semantic_index[i], false);
+ param = si_shader_io_get_unique_index(info->output_semantic[i], false);
for (chan = 0; chan < 4; chan++) {
if (!(info->output_usagemask[i] & (1 << chan)))
*/
can_emit =
LLVMBuildICmp(ctx->ac.builder, LLVMIntULT, gs_next_vertex,
- LLVMConstInt(ctx->ac.i32, shader->selector->gs_max_out_vertices, 0), "");
+ LLVMConstInt(ctx->ac.i32, shader->selector->info.base.gs.vertices_out, 0), "");
- bool use_kill = !info->writes_memory;
+ bool use_kill = !info->base.writes_memory;
if (use_kill) {
ac_build_kill_if_false(&ctx->ac, can_emit);
} else {
LLVMValueRef out_val = LLVMBuildLoad(ctx->ac.builder, addrs[4 * i + chan], "");
LLVMValueRef voffset =
- LLVMConstInt(ctx->ac.i32, offset * shader->selector->gs_max_out_vertices, 0);
+ LLVMConstInt(ctx->ac.i32, offset * shader->selector->info.base.gs.vertices_out, 0);
offset++;
voffset = LLVMBuildAdd(ctx->ac.builder, voffset, gs_next_vertex, "");
if (!num_components)
continue;
- stride = 4 * num_components * sel->gs_max_out_vertices;
+ stride = 4 * num_components * sel->info.base.gs.vertices_out;
/* Limit on the stride field for <= GFX7. */
assert(stride < (1 << 14));
si_get_wave_size(sscreen, MESA_SHADER_VERTEX,
false, false, false, false));
ctx.shader = shader;
- ctx.type = PIPE_SHADER_VERTEX;
ctx.stage = MESA_SHADER_VERTEX;
builder = ctx.ac.builder;
/* Fill in output information. */
for (i = 0; i < gsinfo->num_outputs; ++i) {
- outputs[i].semantic_name = gsinfo->output_semantic_name[i];
- outputs[i].semantic_index = gsinfo->output_semantic_index[i];
+ outputs[i].semantic = gsinfo->output_semantic[i];
for (int chan = 0; chan < 4; chan++) {
outputs[i].vertex_stream[chan] = (gsinfo->output_streams[i] >> (2 * chan)) & 3;
}
LLVMValueRef soffset =
- LLVMConstInt(ctx.ac.i32, offset * gs_selector->gs_max_out_vertices * 16 * 4, 0);
+ LLVMConstInt(ctx.ac.i32, offset * gs_selector->info.base.gs.vertices_out * 16 * 4, 0);
offset++;
outputs[i].values[chan] =
LLVMBuildRetVoid(ctx.ac.builder);
- ctx.type = PIPE_SHADER_GEOMETRY; /* override for shader dumping */
ctx.stage = MESA_SHADER_GEOMETRY; /* override for shader dumping */
si_llvm_optimize_module(&ctx);