diff options
author | Ben Skeggs <[email protected]> | 2009-03-07 17:14:24 +1000 |
---|---|---|
committer | Ben Skeggs <[email protected]> | 2009-03-07 17:49:09 +1000 |
commit | ca95d71a4bc63e2ea45abf9096a3da802819ef92 (patch) | |
tree | d97d43c54f8e841c3bc01d3de1d313dc42034cfe /src/gallium/drivers/nv50 | |
parent | f2ec26cf52fcbf98139cb9e31520183189d09861 (diff) |
nouveau: make stateobjs start off with refcount of 1
Diffstat (limited to 'src/gallium/drivers/nv50')
-rw-r--r-- | src/gallium/drivers/nv50/nv50_program.c | 2 | ||||
-rw-r--r-- | src/gallium/drivers/nv50/nv50_screen.c | 3 | ||||
-rw-r--r-- | src/gallium/drivers/nv50/nv50_state.c | 3 | ||||
-rw-r--r-- | src/gallium/drivers/nv50/nv50_state_validate.c | 6 | ||||
-rw-r--r-- | src/gallium/drivers/nv50/nv50_tex.c | 1 | ||||
-rw-r--r-- | src/gallium/drivers/nv50/nv50_vbo.c | 2 |
6 files changed, 16 insertions, 1 deletions
diff --git a/src/gallium/drivers/nv50/nv50_program.c b/src/gallium/drivers/nv50/nv50_program.c index 308eb34784c..2d15868ae84 100644 --- a/src/gallium/drivers/nv50/nv50_program.c +++ b/src/gallium/drivers/nv50/nv50_program.c @@ -1719,6 +1719,7 @@ nv50_vertprog_validate(struct nv50_context *nv50) so_method(so, tesla, 0x140c, 1); so_data (so, 0); /* program start offset */ so_ref(so, &nv50->state.vertprog); + so_ref(NULL, &so); } void @@ -1758,6 +1759,7 @@ nv50_fragprog_validate(struct nv50_context *nv50) so_method(so, tesla, 0x1414, 1); so_data (so, 0); /* program start offset */ so_ref(so, &nv50->state.fragprog); + so_ref(NULL, &so); } void diff --git a/src/gallium/drivers/nv50/nv50_screen.c b/src/gallium/drivers/nv50/nv50_screen.c index 9bf5e8c7b3f..d0348ec29c3 100644 --- a/src/gallium/drivers/nv50/nv50_screen.c +++ b/src/gallium/drivers/nv50/nv50_screen.c @@ -366,7 +366,8 @@ nv50_screen_create(struct pipe_winsys *ws, struct nouveau_winsys *nvws) so_data (so, 1); so_emit(nvws, so); - so_ref(so, &screen->static_init); + so_ref (so, &screen->static_init); + so_ref (NULL, &so); nvws->push_flush(nvws, 0, NULL); return &screen->pipe; diff --git a/src/gallium/drivers/nv50/nv50_state.c b/src/gallium/drivers/nv50/nv50_state.c index 787ff958ec7..ba852194cdd 100644 --- a/src/gallium/drivers/nv50/nv50_state.c +++ b/src/gallium/drivers/nv50/nv50_state.c @@ -85,6 +85,7 @@ nv50_blend_state_create(struct pipe_context *pipe, bso->pipe = *cso; so_ref(so, &bso->so); + so_ref(NULL, &so); return (void *)bso; } @@ -352,6 +353,7 @@ nv50_rasterizer_state_create(struct pipe_context *pipe, rso->pipe = *cso; so_ref(so, &rso->so); + so_ref(NULL, &so); return (void *)rso; } @@ -438,6 +440,7 @@ nv50_depth_stencil_alpha_state_create(struct pipe_context *pipe, zsa->pipe = *cso; so_ref(so, &zsa->so); + so_ref(NULL, &so); return (void *)zsa; } diff --git a/src/gallium/drivers/nv50/nv50_state_validate.c b/src/gallium/drivers/nv50/nv50_state_validate.c index 948112ffa9f..b7958f19bc8 100644 --- a/src/gallium/drivers/nv50/nv50_state_validate.c +++ b/src/gallium/drivers/nv50/nv50_state_validate.c @@ -124,6 +124,7 @@ nv50_state_validate_fb(struct nv50_context *nv50) so_data (so, h); so_ref(so, &nv50->state.fb); + so_ref(NULL, &so); } static void @@ -214,6 +215,7 @@ nv50_state_validate(struct nv50_context *nv50) so_data (so, fui(nv50->blend_colour.color[2])); so_data (so, fui(nv50->blend_colour.color[3])); so_ref(so, &nv50->state.blend_colour); + so_ref(NULL, &so); } if (nv50->dirty & NV50_NEW_STIPPLE) { @@ -222,6 +224,7 @@ nv50_state_validate(struct nv50_context *nv50) for (i = 0; i < 32; i++) so_data(so, nv50->stipple.stipple[i]); so_ref(so, &nv50->state.stipple); + so_ref(NULL, &so); } if (nv50->dirty & (NV50_NEW_SCISSOR | NV50_NEW_RASTERIZER)) { @@ -243,6 +246,7 @@ nv50_state_validate(struct nv50_context *nv50) so_data(so, (8192 << 16)); } so_ref(so, &nv50->state.scissor); + so_ref(NULL, &so); nv50->state.dirty |= NV50_NEW_SCISSOR; } scissor_uptodate: @@ -283,6 +287,7 @@ scissor_uptodate: } so_ref(so, &nv50->state.viewport); + so_ref(NULL, &so); } viewport_uptodate: @@ -296,6 +301,7 @@ viewport_uptodate: for (i = 0; i < nv50->sampler_nr; i++) so_datap (so, nv50->sampler[i], 8); so_ref(so, &nv50->state.tsc_upload); + so_ref(NULL, &so); } if (nv50->dirty & NV50_NEW_TEXTURE) diff --git a/src/gallium/drivers/nv50/nv50_tex.c b/src/gallium/drivers/nv50/nv50_tex.c index 31bf59675ec..223c8a3a456 100644 --- a/src/gallium/drivers/nv50/nv50_tex.c +++ b/src/gallium/drivers/nv50/nv50_tex.c @@ -152,5 +152,6 @@ nv50_tex_validate(struct nv50_context *nv50) } so_ref(so, &nv50->state.tic_upload); + so_ref(NULL, &so); } diff --git a/src/gallium/drivers/nv50/nv50_vbo.c b/src/gallium/drivers/nv50/nv50_vbo.c index 08d751dddbd..0749c906914 100644 --- a/src/gallium/drivers/nv50/nv50_vbo.c +++ b/src/gallium/drivers/nv50/nv50_vbo.c @@ -250,5 +250,7 @@ nv50_vbo_validate(struct nv50_context *nv50) so_ref (vtxfmt, &nv50->state.vtxfmt); so_ref (vtxbuf, &nv50->state.vtxbuf); + so_ref (NULL, &vtxbuf); + so_ref (NULL, &vtxfmt); } |