struct pipe_fence_handle **fence,
unsigned flags)
{
- st_flush_bitmap_cache(st);
-
/* We want to call this function periodically.
* Typically, it has nothing to do so it shouldn't be expensive.
*/
{
struct pipe_fence_handle *fence = NULL;
+ st_flush_bitmap_cache(st);
st_flush(st, &fence, PIPE_FLUSH_ASYNC | PIPE_FLUSH_HINT_FINISH);
if (fence) {
{
struct st_context *st = st_context(ctx);
+ st_flush_bitmap_cache(st);
+
/* Don't call st_finish() here. It is not the state tracker's
* responsibilty to inject sleeps in the hope of avoiding buffer
* synchronization issues. Calling finish() here will just hide
if (flags & ST_FLUSH_FENCE_FD)
pipe_flags |= PIPE_FLUSH_FENCE_FD;
+ /* If both the bitmap cache is dirty and there are unflushed vertices,
+ * it means that glBitmap was called first and then glBegin.
+ */
+ st_flush_bitmap_cache(st);
FLUSH_VERTICES(st->ctx, 0);
/* Notify the caller that we're ready to flush */