search for: pipe_query_occlusion_counter

Displaying 6 results from an estimated 6 matches for "pipe_query_occlusion_counter".

2010 Jan 18
0
[PATCH] nv30-nv40: support unlimited queries (v2)
...t; struct nv30_query { + struct list_head list; struct nouveau_resource *object; unsigned type; boolean ready; @@ -23,6 +24,8 @@ nv30_query_create(struct pipe_context *pipe, unsigned query_type) q = CALLOC(1, sizeof(struct nv30_query)); q->type = query_type; + assert(q->type == PIPE_QUERY_OCCLUSION_COUNTER); + return (struct pipe_query *)q; } @@ -32,7 +35,10 @@ nv30_query_destroy(struct pipe_context *pipe, struct pipe_query *pq) struct nv30_query *q = nv30_query(pq); if (q->object) + { nouveau_resource_free(&q->object); + LIST_DEL(&q->list); + } FREE(q); } @@ -44,...
2010 Jan 18
2
[PATCH 1/2] nv30-nv40: support unlimited queries
...nv30_query { + struct list_head list; struct nouveau_resource *object; unsigned type; boolean ready; @@ -23,6 +24,8 @@ nv30_query_create(struct pipe_context *pipe, unsigned query_type) q = CALLOC(1, sizeof(struct nv30_query)); q->type = query_type; + assert(q->type == PIPE_QUERY_OCCLUSION_COUNTER); + return (struct pipe_query *)q; } @@ -32,7 +35,10 @@ nv30_query_destroy(struct pipe_context *pipe, struct pipe_query *pq) struct nv30_query *q = nv30_query(pq); if (q->object) + { nouveau_resource_free(&q->object); + LIST_DEL(&q->list); + } FREE(q)...
2014 Oct 27
0
[PATCH] nv50: Fix allocation size for querys
...*mm; }; -#define NV50_QUERY_ALLOC_SPACE 128 +#define NV50_QUERY_ALLOC_SPACE 256 static INLINE struct nv50_query * nv50_query(struct pipe_query *pipe) @@ -116,8 +116,8 @@ nv50_query_create(struct pipe_context *pipe, unsigned type, unsigned index) q->type = type; if (q->type == PIPE_QUERY_OCCLUSION_COUNTER) { - q->offset -= 16; - q->data -= 16 / sizeof(*q->data); /* we advance before query_begin ! */ + q->offset -= 32; + q->data -= 32 / sizeof(*q->data); /* we advance before query_begin ! */ } return (struct pipe_query *)q; @@ -150,8 +150,8 @@ nv50_quer...
2014 Oct 21
0
[PATCH v2] nv50: Handle ARB_conditional_render_inverted and enable it
...omparison of 2 queries only works if both have completed */ + switch (q->type) { + case PIPE_QUERY_SO_OVERFLOW_PREDICATE: + cond = condition ? NV50_3D_COND_MODE_EQUAL : + NV50_3D_COND_MODE_NOT_EQUAL; + wait = TRUE; + break; + case PIPE_QUERY_OCCLUSION_COUNTER: + case PIPE_QUERY_OCCLUSION_PREDICATE: + if (likely(!condition)) { + /* XXX: Placeholder, handle nesting here if available */ + if (unlikely(false)) + cond = wait ? NV50_3D_COND_MODE_NOT_EQUAL : + NV50_3D_COND_MODE_ALWAYS...
2016 Jun 05
0
[RFC PATCH] nouveau: add locking
..._query(nv50, hq); @@ -154,6 +155,7 @@ nv50_hw_begin_query(struct nv50_context *nv50, struct nv50_query *q) if (!hq->is64bit) hq->data[0] = hq->sequence++; /* the previously used one */ + pipe_mutex_lock(nv50->screen->base.push_mutex); switch (q->type) { case PIPE_QUERY_OCCLUSION_COUNTER: case PIPE_QUERY_OCCLUSION_PREDICATE: @@ -193,10 +195,13 @@ nv50_hw_begin_query(struct nv50_context *nv50, struct nv50_query *q) break; default: assert(0); - return false; + ret = false; + break; } - hq->state = NV50_HW_QUERY_STATE_ACTIVE; - return tr...
2009 Dec 30
4
[PATCH 1/3] nv50: remove vtxbuf stateobject after a referenced vtxbuf is mapped
- This avoids problematic "reloc'ed while mapped" messages and some associated corruption as well. Signed-off-by: Maarten Maathuis <madman2003 at gmail.com> --- src/gallium/drivers/nouveau/nouveau_screen.c | 21 +++++++++++++++++++++ src/gallium/drivers/nouveau/nouveau_screen.h | 3 +++ src/gallium/drivers/nouveau/nouveau_stateobj.h | 13 +++++++++++++