summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/nvfx/nvfx_query.c
AgeCommit message (Collapse)Author
2010-12-25nvfx: restore BEGIN_RING usageXavier Chantry
Michel Hermier reported libdrm segfault (and kernel crash) on nv40 using gallium : http://www.mail-archive.com/nouveau@lists.freedesktop.org/msg06563.html It turns out these were caused by some missing WAIT_RING (or wrong computation of the WAIT_RING sizes). Unlike all other libdrm_nouveau users, nvfx gallium tried to use a mininum calls of WAIT_RING, one WAIT_RING could apply to many methods for different code paths and spread across several functions. This made it too tricky to find out what the missing or wrong WAIT_RING was. By restoring BEGIN_RING, we force one WAIT_RING per method, and it's much easier to check if the free size required in the pushbuffer is correct. As curro said, "let's keep it simple for the maintainers until the big bottlenecks are gone" Benchmarked on nv35 with openarena, nexuiz and ut2004 and no performance regression. The core of this patch was made with Coccinelle, with minor manual fixes made on top. Tested-by: Michel Hermier <hermier@frugalware.org> Signed-off-by: Francisco Jerez <currojerez@riseup.net>
2010-09-05nvfx: switch to rules-ng-ng register headersLuca Barbieri
This is the new register generation toolkit in use by nouveau. As far as I know, this is the best register description toolkit in existence, and you should use it too for your hardware :) Thanks to Marcin Kościelnicki for inventing it and performing invaluable reverse engineering work of nVidia chips.
2010-09-05nvfx: pause occlusion queries during blitter usageLuca Barbieri
Thanks for Dave Airlie and Jerome Glisse for their code which made me realize I need this too.
2010-06-08gallium: adjust the query interface to support custom typesZack Rusin
we need to change it to support composite types
2010-04-12nvfx: support an unlimited number of occlusion queriesLuca Barbieri
Currently on nv30/nv40 an assert will be triggered once 32 queries are outstanding. This violates the OpenGL/Gallium interface, which requires support for an unlimited number of fences. This patch fixes the problem by putting queries in a linked list and waiting on the oldest one if allocation fails. nVidia seems to use a similar strategy, but with 1024 instead of 32 fences. The next patch will improve this.
2010-03-15nv30, nv40: unify nv[34]0_query.cLuca Barbieri
The files are identical except formatting.