search for: nouveau_resource_free

Displaying 5 results from an estimated 5 matches for "nouveau_resource_free".

2009 Dec 21
2
[PATCH 1/2] Unreference state/buffer objects on context/screen destruction
...ocza) @@ -140,7 +140,13 @@ nv40_screen_destroy(struct pipe_screen *pscreen) { struct nv40_screen *screen = nv40_screen(pscreen); + unsigned i; + for (i = 0; i < NV40_STATE_MAX; i++) { + if (screen->state[i]) + so_ref(NULL, &screen->state[i]); + } + nouveau_resource_free(&screen->vp_exec_heap); nouveau_resource_free(&screen->vp_data_heap); nouveau_resource_free(&screen->query_heap); Index: nv40/nv40_fragprog.c =================================================================== --- nv40/nv40_fragprog.c (wersja 32083) +++ nv40/nv40_fragprog...
2009 Dec 21
1
Clean up of nv40_context->state.hw and nv40_screen->state
...ocza) @@ -140,7 +140,13 @@ nv40_screen_destroy(struct pipe_screen *pscreen) { struct nv40_screen *screen = nv40_screen(pscreen); + unsigned i; + for (i = 0; i < NV40_STATE_MAX; i++) { + if (screen->state[i]) + so_ref(NULL, &screen->state[i]); + } + nouveau_resource_free(&screen->vp_exec_heap); nouveau_resource_free(&screen->vp_data_heap); nouveau_resource_free(&screen->query_heap); Index: nv40_context.c =================================================================== --- nv40_context.c (wersja 32083) +++ nv40_context.c (kopia robocza)...
2009 Jun 21
0
[PATCH] nv50: don't allocate in the param buffer
...{ - 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, - &p->data[1])) - assert(0); - } - } - - start = p->data[1]->start; + /* we can use the whole buffer for parameters as we upload them + * all everytime anyway + */ + assert(p->para...
2010 Jan 18
0
[PATCH] nv30-nv40: support unlimited queries (v2)
...ruct 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,20 +50,25 @@ nv30_query_begin(struct pipe_context *pipe, struct pipe_query *pq) struct nv30_screen *screen = nv30->screen; struct nouveau_channel *chan = screen->base.channel; struct nouveau_grobj *rankine = sc...
2010 Jan 18
2
[PATCH 1/2] nv30-nv40: support unlimited queries
...v30_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,20 +50,25 @@ nv30_query_begin(struct pipe_context *pipe, struct pipe_query *pq) struct nv30_screen *screen = nv30->screen; struct nouveau_channel *chan = screen->base.channel; struct nouveau_grobj...