summaryrefslogtreecommitdiff
path: root/src/mesa/state_tracker/st_cb_flush.c
AgeCommit message (Collapse)Author
2009-05-01st: added st_renderbuffer::defined flagBrian Paul
Indicates whether there's defined image contents, or garbage/don't care. This is set when we draw into a renderbuffer and cleared when we resize/ reallocate a renderbuffer or do a buffer swap (back buffer becomes undefined). We use this to determine whether the front color buffer has been drawn to, and whether to display its contents upon glFlush/Finish(), when the new st_swapbuffers() function is used.
2009-04-28mesa/st: protect internal flushes with FLUSH_CURRENTKeith Whitwell
Already doing this for driver.flush()
2009-03-13mesa/st: add check for null front renderbufferKeith Whitwell
Not sure if this indicates a problem elsewhere, but without this check trivial/tri-fbo.c segfaults on resize. With the patch, it renders correctly.
2009-03-13mesa/st: don't call finish in st_glFlush()Keith Whitwell
It is not the state tracker's responsibilty to inject sleeps and pessimize performance in the hope of avoiding buffer synchronization issues in buggy drivers. Calling finish() here will just hide problems that need to be fixed elsewhere.
2009-01-30gallium: make p_winsys internalZack Rusin
move it to pipe/internal/p_winsys_screen.h and start converting the state trackers to the screen usage
2008-12-12gallium: avoid mapping same vertex buffer in subsequent framesKeith Whitwell
Quite a few util modules were maintaining a single vertex buffer over multiple frames, and potentially reusing it in subsequent frames. Unfortunately that would force us into syncrhonous rendering as the buffer manager would be forced to wait for the previous rendering to complete prior to allowing the map. This resolves that issue, but requires the state tracker to issue a few new flush() calls at the end of each frame.
2008-11-24mesa: Don't call fence_finish with a null fence.José Fonseca
2008-08-15mesa: Issue PIPE_FLUSH_FRAME in glSwapBuffers/glFlush/glFinish.José Fonseca
2008-04-22gallium: don't set buffer status to undefined in display_front_buffer()Brian Paul
2008-04-09gallium: more elaborate tracking of front color buffer stateBrian Paul
This fixes the case where the app calls SwapBuffers then calls glReadPixels to read the front color buffer. We now keep track of when the front buffer is a _logically_ copy of the back buffer (after SwapBuffers) and read from the back color buffer instead of the front.
2008-04-09gallium: more flush/finish changesBrian Paul
New, separate is_front_buffer_dirty() function.
2008-04-09gallium: reorder funcsBrian Paul
2008-04-09gallium: call_flush_front_buffer() from st_glFinish()Brian Paul
2008-04-09gallium: fold st_gl_flush() into st_glFlush()Brian Paul
2008-04-09gallium: refactor code, new flush_front_buffer() functionBrian Paul
2008-04-04gallium: add new call to st_flush_bitmap_cache() to fix recent regressionBrian Paul
2008-04-04gallium: Revert st_gl_flush() changes from when the **fence argument was added.Michel Dänzer
As st_gl_flush() isn't used by st_finish() anymore, it doesn't have to make sure pipe->flush() always gets called.
2008-04-04gallium: Call st_flush() instead of st_gl_flush() in st_finish().Michel Dänzer
This is enough for the current purpose of st_finish(), which is to wait for things to settle down before context teardown.
2008-04-01gallium: Fencing fix.Michel Dänzer
Make sure the struct pipe_fence_handle* we point st_flush() to is initialized to NULL, so winsys->fence_reference() doesn't try to unreference a random struct pipe_fence_handle* pointer.
2008-03-28gallium: implement a glBitmap cacheBrian
The bitmap cache attempts to accumulate a series of glBitmap calls in a buffer to effectively render a whole bunch of bitmaps at once. The cache can be disabled, if needed, by setting UseBitmapCache=GL_FALSE.
2008-03-26gallium: Change pipe->flush() interface to optionally return a fence.Michel Dänzer
The cell driver still uses an internal CELL_FLUSH_WAIT flag, in the long run proper fencing should be implemented for it.
2008-01-26gallium: specialize glFlush vs other flush semanticsKeith Whitwell
2007-12-20gallium: make state tracker explictly ask for rendercache flushesKeith Whitwell
2007-11-08Rename struct field 'private' to 'priv'.Michel Dänzer
This broke the LLVM build because 'private' is a C++ keyword.
2007-11-07New PIPE_FLUSH_WAIT flag for pipe->flush().Brian
The state tracker doesn't have to directly call winsys->wait_idle() anymore. glFlush and glFinish both go through pipe->flush() now.
2007-11-07Remove context dependencies in winsys layer.Brian
The winsys object is now per-screen and shared by multiple contexts. The regionPool is now part of the i915 winsys layer. The winsys wait_idle() and flush_frontbuffer() funcs will get more attention...
2007-11-05added check for fb==NULLBrian
2007-11-05include context.hBrian
2007-11-05call FLUSH_VERTICES() in st_flush()Brian
2007-11-05public st_flush()Brian
2007-11-01Start re-working SwapBuffers.Brian
intelCopyBuffer() is now intelDisplayBuffer(): it displays the given surface in the on-screen window. Added a pipe_surface parameter to winsys->flush_frontbuffer(). Front buffer rendering/flushing actually works now. But, we should only allocate the front surface on demand...
2007-08-10Lift common winsys functions into pipe's new p_winsys.Keith Whitwell
2007-08-10Handle glFlush/glFinish through the state tracker.Keith Whitwell