search for: nouveau_resource_alloc

Displaying 4 results from an estimated 4 matches for "nouveau_resource_alloc".

2010 Jan 18
0
[PATCH] nv30-nv40: support unlimited queries (v2)
...then another begin_query() * without querying the result in-between. For now we'll wait for * the existing query to notify completion, but it could be better. */ - 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_quer...
2010 Jan 18
2
[PATCH 1/2] nv30-nv40: support unlimited queries
...then another begin_query() * without querying the result in-between. For now we'll wait for * the existing query to notify completion, but it could be better. */ - 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_quer...
2009 Jun 21
0
[PATCH] nv50: don't allocate in the param buffer
...urce *heap = nv50->screen->immd_heap[0]; @@ -2457,23 +2457,10 @@ nv50_program_validate_data(struct nv50_context *nv50, struct nv50_program *p) if (!p->param_nr) return; - if (!p->data[1]) { - struct nouveau_resource *heap = - nv50->screen->parm_heap[p->type]; - - if (nouveau_resource_alloc(heap, p->param_nr, p, &p->data[1])) { - while (heap->next && heap->size < p->param_nr) { - struct nv50_program *evict = heap->next->priv; - nouveau_resource_free(&evict->data[1]); - } - - if (nouveau_resource_alloc(heap, p->param_nr, p, -...
2009 Jun 21
0
[PATCH] nv50: initial support for IF, ELSE, ENDIF insns
...amp;parse); @@ -2383,11 +2476,29 @@ nv50_program_validate_code(struct nv50_context *nv50, struct nv50_program *p) heap = nv50->screen->code_heap[p->type]; code = nv50->screen->sprogbuf_code[p->type]; + size = align(p->exec_size * 4, 0x100); + + if (!p->code) { + ret = nouveau_resource_alloc(heap, size, p, &p->code); + if (ret) + assert(!"No more space in program VRAM buffer."); + } + if ((p->data[0] && p->data[0]->start != p->data_start[0]) || - (p->data[1] && p->data[1]->start != p->data_start[1])) { + (p->data[1]...