https://bugs.freedesktop.org/show_bug.cgi?id=73191
Andreas Boll andreas.boll.dev@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED
--- Comment #42 from Andreas Boll andreas.boll.dev@gmail.com --- Fixed with the following commits:
commit 3f98053fc94a964930c73c43154daddfd7824e7c Author: Marek Olšák marek.olsak@amd.com Date: Mon Jan 13 14:13:01 2014 +0100
vdpau: flush the context before exporting the surface v2
Bugzilla (bug needs XBMC changes as well): 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.koenig@amd.com Tested-by: StrangeNoises (rachel@strangenoises.org)
commit db54fca9b86aa124447d11d2bdbe359a2742cfd5 Author: Christian König christian.koenig@amd.com Date: Tue Jan 28 15:22:05 2014 +0100
st/vdpau: add flush on unmap
Flush the context when we unmap a buffer, otherwise VDPAU might start rendering the next frame while we still reference that buffer.
Signed-off-by: Christian König christian.koenig@amd.com Tested-by: StrangeNoises (rachel@strangenoises.org)
Additionally cherry-picked to 10.1 branch.