Squashed commit of the following:
[mesa.git] / src / gallium / drivers / i965 / brw_pipe_flush.c
1
2 #include "brw_context.h"
3 #include "brw_screen.h"
4 #include "brw_batchbuffer.h"
5
6 #include "util/u_upload_mgr.h"
7
8
9
10
11 /* All batchbuffer flushes must go through this function.
12 */
13 void brw_context_flush( struct brw_context *brw )
14 {
15 /*
16 *
17 */
18 brw_emit_query_end(brw);
19
20 /* Move to the end of the current upload buffer so that we'll force choosing
21 * a new buffer next time.
22 */
23 u_upload_flush( brw->vb.upload_vertex );
24 u_upload_flush( brw->vb.upload_index );
25
26 _brw_batchbuffer_flush( brw->batch, __FILE__, __LINE__ );
27
28 /* Mark all context state as needing to be re-emitted.
29 * This is probably not as severe as on 915, since almost all of our state
30 * is just in referenced buffers.
31 */
32 brw->state.dirty.brw |= BRW_NEW_CONTEXT;
33 brw->state.dirty.mesa |= ~0;
34 brw->state.dirty.brw |= ~0;
35 brw->state.dirty.cache |= ~0;
36
37 brw->curbe.need_new_bo = GL_TRUE;
38 }
39
40 static void
41 brw_flush( struct pipe_context *pipe,
42 unsigned flags,
43 struct pipe_fence_handle **fence )
44 {
45 brw_context_flush( brw_context( pipe ) );
46 if (fence)
47 *fence = NULL;
48 }
49
50 void brw_pipe_flush_init( struct brw_context *brw )
51 {
52 brw->base.flush = brw_flush;
53 }
54
55
56 void brw_pipe_flush_cleanup( struct brw_context *brw )
57 {
58 }