+static void
+gen6_upload_gs_push_constants(struct brw_context *brw)
+{
+ /* BRW_NEW_GEOMETRY_PROGRAM */
+ const struct brw_geometry_program *gp =
+ (struct brw_geometry_program *) brw->geometry_program;
+
+ if (gp) {
+ /* CACHE_NEW_GS_PROG */
+ struct brw_stage_state *stage_state = &brw->gs.base;
+ struct brw_stage_prog_data *prog_data = &brw->gs.prog_data->base.base;
+
+ gen6_upload_push_constants(brw, &gp->program.Base, prog_data,
+ stage_state, AUB_TRACE_VS_CONSTANTS);
+ }
+}
+
+const struct brw_tracked_state gen6_gs_push_constants = {
+ .dirty = {
+ .mesa = _NEW_TRANSFORM | _NEW_PROGRAM_CONSTANTS,
+ .brw = (BRW_NEW_BATCH |
+ BRW_NEW_GEOMETRY_PROGRAM |
+ BRW_NEW_PUSH_CONSTANT_ALLOCATION),
+ .cache = CACHE_NEW_GS_PROG,
+ },
+ .emit = gen6_upload_gs_push_constants,
+};
+