Displaying 2 results from an estimated 2 matches for "query_list".
Did you mean:
query_bits
2010 Jan 18
0
[PATCH] nv30-nv40: support unlimited queries (v2)
...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.
Fixed indentation and added header for query_list.
---
src/gallium/drivers/nv30/nv30_query.c | 26 ++++++++++++++++++--------
src/gallium/drivers/nv30/nv30_screen.c | 2 ++
src/gallium/drivers/nv30/nv30_screen.h | 2 ++
src/gallium/drivers/nv40/nv40_query.c | 26 ++++++++++++++++++--------
src/gallium/drivers/nv40/nv40_screen.c | 2...
2010 Jan 18
2
[PATCH 1/2] nv30-nv40: support unlimited queries
....
*/
- if (q->object) {
- uint64_t tmp;
+ if (q->object)
pipe->get_query_result(pipe, pq, 1, &tmp);
+
+ while (nouveau_resource_alloc(nv30->screen->query_heap, 1, NULL, &q->object))
+ {
+ struct nv30_query* oldestq;
+ assert(!LIST_IS_EMPTY(&nv30->screen->query_list));
+ oldestq = LIST_ENTRY(struct nv30_query, nv30->screen->query_list.next, list);
+ pipe->get_query_result(pipe, (struct pipe_query*)oldestq, 1, &tmp);
}
- if (nouveau_resource_alloc(nv30->screen->query_heap, 1, NULL, &q->object))
- assert(0);
+ LIST_ADDTAIL(&q...