gallium: avoid mapping same vertex buffer in subsequent frames
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.
This commit is contained in:
@@ -317,10 +317,8 @@ st_readpixels(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height,
|
||||
if (!dest)
|
||||
return;
|
||||
|
||||
st_flush_bitmap_cache(ctx->st);
|
||||
|
||||
/* make sure rendering has completed */
|
||||
pipe->flush(pipe, PIPE_FLUSH_RENDER_CACHE, NULL);
|
||||
st_flush(ctx->st, PIPE_FLUSH_RENDER_CACHE, NULL);
|
||||
|
||||
if (format == GL_STENCIL_INDEX) {
|
||||
st_read_stencil_pixels(ctx, x, y, width, height, type, pack, dest);
|
||||
|
Reference in New Issue
Block a user