Re: [Nouveau] Synchronization mostly missing?

2009-12-28 Thread Christoph Bumiller
On 12/28/2009 08:15 AM, Younes Manton wrote: On Mon, Dec 28, 2009 at 1:55 AM, Luca Barbieri l...@luca-barbieri.com wrote: Can you reproduce this with your vertex buffers in VRAM instead of GART? (to rule out that it's a fencing issue). Putting the vertex buffers in VRAM makes things almost

Re: [Nouveau] Synchronization mostly missing?

2009-12-28 Thread Luca Barbieri
It looks like there are two bugs. One seems related to some kind of GPU cache of GART memory which does not get flushed, causes significant corruption and is worked around by putting buffers in VRAM, software TNL or immediate submission. It may be related to the NV40TCL_VTX_CACHE_INVALIDATE which

Re: [Nouveau] Synchronization mostly missing?

2009-12-28 Thread Francisco Jerez
Younes Manton youne...@gmail.com writes: On Mon, Dec 28, 2009 at 1:55 AM, Luca Barbieri l...@luca-barbieri.com wrote: Can you reproduce this with your vertex buffers in VRAM instead of GART? (to rule out that it's a fencing issue). Putting the vertex buffers in VRAM makes things almost

Re: [Nouveau] Synchronization mostly missing?

2009-12-28 Thread Luca Barbieri
It looks like there are two bugs. One seems related to some kind of cache of GART memory which does not get flushed, causes significant corruption and is worked around by putting buffers in VRAM. For some reason, adding syncing instead of putting buffers of VRAM does seem to greatly reduce the

[Nouveau] Synchronization mostly missing?

2009-12-27 Thread Luca Barbieri
It seems that Noveau is assuming that once the FIFO pointer is past a command, that command has finished executing, and all the buffers it used are no longer needed. However, this seems to be false at least on G71. In particular, the card may not have even finished reading the input vertex

Re: [Nouveau] Synchronization mostly missing?

2009-12-27 Thread Francisco Jerez
Hi, Luca Barbieri l...@luca-barbieri.com writes: It seems that Noveau is assuming that once the FIFO pointer is past a command, that command has finished executing, and all the buffers it used are no longer needed. However, this seems to be false at least on G71. In particular, the card

Re: [Nouveau] Synchronization mostly missing?

2009-12-27 Thread Luca Barbieri
I figured out the registers. There is a fence/sync mechanism which apparently triggers after rendering is finished. There are two ways to use it, but they trigger at the same time (spinning in a loop on the CPU checking them, they trigger at the same iteration or in two successive iterations).

Re: [Nouveau] Synchronization mostly missing?

2009-12-27 Thread Luca Barbieri
Can you reproduce this with your vertex buffers in VRAM instead of GART? (to rule out that it's a fencing issue). Putting the vertex buffers in VRAM makes things almost perfect, but still with rare artifacts. In particular, the yellow arrow in dinoshade sometimes becames a yellow polygon on the

Re: [Nouveau] Synchronization mostly missing?

2009-12-27 Thread Younes Manton
On Mon, Dec 28, 2009 at 1:55 AM, Luca Barbieri l...@luca-barbieri.com wrote: Can you reproduce this with your vertex buffers in VRAM instead of GART? (to rule out that it's a fencing issue). Putting the vertex buffers in VRAM makes things almost perfect, but still with rare artifacts. In

Re: [Nouveau] Synchronization mostly missing?

2009-12-27 Thread Krzysztof Smiechowicz
Luca Barbieri pisze: I'm not sure why this hasn't been noticed before though. Is everyone getting randomly misrendered OpenGL or is my machine somehow more prone to reusing buffers? I reported a similar problem about 2 weeks ago. It first became apparent with NV40 but I also confirmed it