Marek, Sorry for not noticing earlier ( I haven't been able to keep up with mesa traffic lately), but I'm afraid this and the 10/10 are not ok, as on several operating systems, namely, Windows WDDM, it is illegal to flush a command buffer with a buffer mapped.
Jose ----- Original Message ----- > There's no reason to do that. The buffer being used for rendering is > always > mapped as unsynchronized. > --- > src/gallium/auxiliary/util/u_blit.c | 17 ++++------------- > src/gallium/auxiliary/util/u_blit.h | 5 ----- > src/mesa/state_tracker/st_cb_flush.c | 1 - > 3 files changed, 4 insertions(+), 19 deletions(-) > > diff --git a/src/gallium/auxiliary/util/u_blit.c > b/src/gallium/auxiliary/util/u_blit.c > index 1279733..e5b97f7 100644 > --- a/src/gallium/auxiliary/util/u_blit.c > +++ b/src/gallium/auxiliary/util/u_blit.c > @@ -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 > diff --git a/src/gallium/auxiliary/util/u_blit.h > b/src/gallium/auxiliary/util/u_blit.h > index 3009e25..810d01b 100644 > --- a/src/gallium/auxiliary/util/u_blit.h > +++ b/src/gallium/auxiliary/util/u_blit.h > @@ -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 > diff --git a/src/mesa/state_tracker/st_cb_flush.c > b/src/mesa/state_tracker/st_cb_flush.c > index 724bc19..4cde84a 100644 > --- a/src/mesa/state_tracker/st_cb_flush.c > +++ b/src/mesa/state_tracker/st_cb_flush.c > @@ -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 ); > -- > 1.7.5.4 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev