This patch doesn't fix the bug. :( Marek
On Mon, Jan 13, 2014 at 2:55 PM, Christian König <deathsim...@vodafone.de> wrote: > From: Marek Olšák <marek.ol...@amd.com> > > Bugzilla: > https://bugs.freedesktop.org/show_bug.cgi?id=73191 > > When VL uploads vertex buffers, it uses PIPE_TRANSFER_DONTBLOCK, which always > flushes the context in the winsys if the buffer being mapped is busy. Since > I added handling of DISCARD_RANGE, DONTBLOCK has had no effect when combined > with DISCARD_RANGE and I think the context isn't flushed anywhere else, > so no commands are submitted to the GPU until the IB is full, which takes > a lot of frames. > > Using DISCARD_RANGE is not the only way to trigger this bug. The other way > is to reallocate the vertex buffer before every upload. > > BTW, I'm not sure if this is the right place for flushing, but it does fix > the bug. > > v2 (chk): move the flush to the right place. > > Signed-off-by: Christian König <christian.koe...@amd.com> > --- > src/gallium/state_trackers/vdpau/output.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/src/gallium/state_trackers/vdpau/output.c > b/src/gallium/state_trackers/vdpau/output.c > index e4e1433..7ff4196 100644 > --- a/src/gallium/state_trackers/vdpau/output.c > +++ b/src/gallium/state_trackers/vdpau/output.c > @@ -736,6 +736,7 @@ struct pipe_resource > *vlVdpOutputSurfaceGallium(VdpOutputSurface surface) > > pipe_mutex_lock(vlsurface->device->mutex); > vlVdpResolveDelayedRendering(vlsurface->device, NULL, NULL); > + vlsurface->device->context->flush(vlsurface->device->context, NULL, 0); > pipe_mutex_unlock(vlsurface->device->mutex); > > return vlsurface->surface->texture; > -- > 1.8.1.2 > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev