| @@ -110,6 +110,9 @@ nv50_create(struct pipe_screen *pscreen, unsigned pctx_id) | |||
| nv50->pipe.is_texture_referenced = nv50_is_texture_referenced; | |||
| nv50->pipe.is_buffer_referenced = nv50_is_buffer_referenced; | |||
| screen->base.channel->user_private = nv50; | |||
| screen->base.channel->flush_notify = nv50_state_flush_notify; | |||
| nv50_init_surface_functions(nv50); | |||
| nv50_init_state_functions(nv50); | |||
| nv50_init_query_functions(nv50); | |||
| @@ -196,6 +196,7 @@ extern void nv50_program_destroy(struct nv50_context *nv50, struct nv50_program | |||
| /* nv50_state_validate.c */ | |||
| extern boolean nv50_state_validate(struct nv50_context *nv50); | |||
| extern void nv50_state_flush_notify(struct nouveau_channel *chan); | |||
| /* nv50_tex.c */ | |||
| extern void nv50_tex_validate(struct nv50_context *); | |||
| @@ -212,6 +212,12 @@ nv50_state_emit(struct nv50_context *nv50) | |||
| so_emit(chan, nv50->state.vtxattr); | |||
| } | |||
| nv50->state.dirty = 0; | |||
| } | |||
| void | |||
| nv50_state_flush_notify(struct nouveau_channel *chan) | |||
| { | |||
| struct nv50_context *nv50 = chan->user_private; | |||
| so_emit_reloc_markers(chan, nv50->state.fb); | |||
| so_emit_reloc_markers(chan, nv50->state.vertprog); | |||