- struct brw_stage_state *stage_state = &brw->gs.base;
-
- /* If there's no GS, skip changing anything. */
- if (!brw->gs.prog_data)
- return;
-
- /* CACHE_NEW_GS_PROG */
- const struct brw_vec4_prog_data *prog_data = &brw->gs.prog_data->base;
-
- /* BRW_NEW_SURFACES and BRW_NEW_GS_CONSTBUF */
- brw_vec4_upload_binding_table(brw, BRW_NEW_GS_BINDING_TABLE, stage_state,
- prog_data);
+ struct gl_context *ctx = &brw->ctx;
+ /* _NEW_PROGRAM */
+ struct gl_shader_program *prog =
+ ctx->_Shader->CurrentProgram[MESA_SHADER_GEOMETRY];
+
+ if (prog) {
+ /* BRW_NEW_GS_PROG_DATA */
+ brw_upload_abo_surfaces(brw, prog, &brw->gs.base,
+ &brw->gs.prog_data->base.base);
+ }