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