search for: nv40_state_max

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

2009 Dec 21
1
Clean up of nv40_context->state.hw and nv40_screen->state
...============================================================ --- nv40_screen.c (wersja 32083) +++ nv40_screen.c (kopia robocza) @@ -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 =======...
2009 Dec 21
2
[PATCH 1/2] Unreference state/buffer objects on context/screen destruction
...================================================== --- nv40/nv40_screen.c (wersja 32083) +++ nv40/nv40_screen.c (kopia robocza) @@ -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 =...
2009 Dec 05
0
[PATCH] nouveau: avoid running out of relocs (attempt 3)
...++ b/src/gallium/drivers/nv40/nv40_state_emit.c @@ -59,6 +59,7 @@ nv40_state_emit(struct nv40_context *nv40) struct nv40_screen *screen = nv40->screen; unsigned i, samplers; uint64_t states; + int push = 0, reloc = 0; if (nv40->pctx_id != screen->cur_pctx) { for (i = 0; i < NV40_STATE_MAX; i++) { @@ -69,6 +70,35 @@ nv40_state_emit(struct nv40_context *nv40) screen->cur_pctx = nv40->pctx_id; } + /* Find out if we have enough space in pushbuffer. */ + for (i = 0, states = state->dirty; states; i++) { + if (!(states & (1ULL << i))) + continue; + if (state-...
2010 Jan 18
1
[PATCH 1/2] nv30-nv40: Rewrite primitive splitting and emission
The current code for primitive splitting and emission on pre-nv50 is severely broken. In particular: 1. Quads and lines are totally broken because "&= 3" should be "&= ~3" and similar for lines 2. Triangle fans and polygons are broken because the first vertex must be repeated for each split chunk 3. Line loops are broken because the must be converted to a line strip,