static void
v3d_emit_tes_gs_common_params(struct v3d_job *job,
- uint8_t gs_out_prim_type)
+ uint8_t gs_out_prim_type,
+ uint8_t gs_num_invocations)
{
/* This, and v3d_emit_tes_gs_shader_params below, fill in default
* values for tessellation fields even though we don't support
shader.geometry_shader_output_format =
v3d_gs_output_primitive(gs_out_prim_type);
- shader.geometry_shader_instances = 1; /* FIXME */
+ shader.geometry_shader_instances = gs_num_invocations & 0x1F;
}
}
struct v3d_gs_prog_data *gs = v3d->prog.gs->prog_data.gs;
struct v3d_gs_prog_data *gs_bin = v3d->prog.gs_bin->prog_data.gs;
- v3d_emit_tes_gs_common_params(v3d->job, gs->out_prim_type);
+ v3d_emit_tes_gs_common_params(v3d->job,
+ gs->out_prim_type,
+ gs->num_invocations);
v3d_emit_tes_gs_shader_params(v3d->job, gs_bin);
v3d_emit_tes_gs_shader_params(v3d->job, gs);
}