gallium/u_blit: don't release vertex buffer at end of frame / in glFlush
There's no reason to do that. The buffer being used for rendering is always mapped as unsynchronized.
This commit is contained in:
@@ -232,8 +232,10 @@ get_next_slot( struct blit_state *ctx )
|
||||
{
|
||||
const unsigned max_slots = 4096 / sizeof ctx->vertices;
|
||||
|
||||
if (ctx->vbuf_slot >= max_slots)
|
||||
util_blit_flush( ctx );
|
||||
if (ctx->vbuf_slot >= max_slots) {
|
||||
pipe_resource_reference(&ctx->vbuf, NULL);
|
||||
ctx->vbuf_slot = 0;
|
||||
}
|
||||
|
||||
if (!ctx->vbuf) {
|
||||
ctx->vbuf = pipe_buffer_create(ctx->pipe->screen,
|
||||
@@ -674,17 +676,6 @@ util_blit_pixels(struct blit_state *ctx,
|
||||
}
|
||||
|
||||
|
||||
/* Release vertex buffer at end of frame to avoid synchronous
|
||||
* rendering.
|
||||
*/
|
||||
void util_blit_flush( struct blit_state *ctx )
|
||||
{
|
||||
pipe_resource_reference(&ctx->vbuf, NULL);
|
||||
ctx->vbuf_slot = 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Copy pixel block from src texture to dst surface.
|
||||
* The sampler view's first_level field indicates the source
|
||||
|
||||
@@ -86,11 +86,6 @@ util_blit_pixels_tex(struct blit_state *ctx,
|
||||
int dstX1, int dstY1,
|
||||
float z, uint filter);
|
||||
|
||||
/* Call at end of frame to avoid synchronous rendering.
|
||||
*/
|
||||
extern void
|
||||
util_blit_flush( struct blit_state *ctx );
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -85,7 +85,6 @@ void st_flush( struct st_context *st,
|
||||
* successive frames:
|
||||
*/
|
||||
st_flush_bitmap(st);
|
||||
util_blit_flush(st->blit);
|
||||
util_gen_mipmap_flush(st->gen_mipmap);
|
||||
|
||||
st->pipe->flush( st->pipe, fence );
|
||||
|
||||
Reference in New Issue
Block a user