int fragcoord_input;
int native_integers;
int next_ring_offset;
+ int gs_out_ring_offset;
int gs_next_vertex;
struct r600_shader *gs_for_vs;
};
ctx->cv_output = i;
break;
}
+ if (ctx->type == TGSI_PROCESSOR_GEOMETRY) {
+ ctx->gs_out_ring_offset += 16;
+ }
} else if (ctx->type == TGSI_PROCESSOR_FRAGMENT) {
switch (d->Semantic.Name) {
case TGSI_SEMANTIC_COLOR:
/* next_ring_offset after parsing input decls contains total size of
* single vertex data, gs_next_vertex - current vertex index */
- ring_offset += ctx->next_ring_offset * ctx->gs_next_vertex;
+ ring_offset += ctx->gs_out_ring_offset * ctx->gs_next_vertex;
memset(&output, 0, sizeof(struct r600_bytecode_output));
output.gpr = ctx->shader->output[i].gpr;
}
ctx.next_ring_offset = 0;
+ ctx.gs_out_ring_offset = 0;
ctx.gs_next_vertex = 0;
ctx.face_gpr = -1;