nv40: stateobj start out with 0 refcount
authorBen Skeggs <darktama@beleth.(none)>
Fri, 22 Feb 2008 03:46:48 +0000 (14:46 +1100)
committerBen Skeggs <darktama@beleth.(none)>
Fri, 22 Feb 2008 03:46:48 +0000 (14:46 +1100)
src/gallium/drivers/nouveau/nouveau_stateobj.h
src/gallium/drivers/nv40/nv40_fragprog.c
src/gallium/drivers/nv40/nv40_fragtex.c
src/gallium/drivers/nv40/nv40_state.c
src/gallium/drivers/nv40/nv40_state_blend.c
src/gallium/drivers/nv40/nv40_state_fb.c
src/gallium/drivers/nv40/nv40_state_scissor.c
src/gallium/drivers/nv40/nv40_state_stipple.c
src/gallium/drivers/nv40/nv40_state_viewport.c
src/gallium/drivers/nv40/nv40_vbo.c
src/gallium/drivers/nv40/nv40_vertprog.c

index 459cc7d77ae6d01d4c1e6e3fe4b18f4dcf99c07a..439c7e4734ad3514bfa15576921a4548acc1c8a7 100644 (file)
@@ -32,7 +32,7 @@ so_new(unsigned push, unsigned reloc)
        struct nouveau_stateobj *so;
 
        so = MALLOC(sizeof(struct nouveau_stateobj));
-       so->refcount = 1;
+       so->refcount = 0;
        so->push = MALLOC(sizeof(unsigned) * push);
        so->reloc = MALLOC(sizeof(struct nouveau_stateobj_reloc) * reloc);
 
index db2613ef8bb76316f752fb56102d979dc16a3e09..a4a1ea01e03b2cf276f77b3e7fe002398accaabb 100644 (file)
@@ -817,7 +817,6 @@ nv40_fragprog_validate(struct nv40_context *nv40)
        so_method(so, nv40->hw->curie, NV40TCL_FP_CONTROL, 1);
        so_data  (so, fp->fp_control);
        so_ref(so, &fp->so);
-       so_ref(NULL, &so);
 
 update_constants:
        if (fp->nr_consts) {
index 3d27a9bf13444af467ec1abcdc91943a98b8ab65..c8a8120f305884cdf5d3041269a66fcafe3e4d4e 100644 (file)
@@ -137,7 +137,6 @@ nv40_fragtex_validate(struct nv40_context *nv40)
                so_method(so, nv40->hw->curie, NV40TCL_TEX_ENABLE(unit), 1);
                so_data  (so, 0);
                so_ref(so, &nv40->state.hw[NV40_STATE_FRAGTEX0 + unit]);
-               so_ref(NULL, &so);
                state->dirty |= (1 << (NV40_STATE_FRAGTEX0 + unit));
        }
 
@@ -148,7 +147,6 @@ nv40_fragtex_validate(struct nv40_context *nv40)
 
                so = nv40_fragtex_build(nv40, unit);
                so_ref(so, &nv40->state.hw[NV40_STATE_FRAGTEX0 + unit]);
-               so_ref(NULL, &so);
                state->dirty |= (1 << (NV40_STATE_FRAGTEX0 + unit));
        }
 
index 74cbabb023eea65853852068a37fac1afdee4489..107e60f17983eec032c09596c65b74796581f796 100644 (file)
@@ -11,7 +11,7 @@ nv40_blend_state_create(struct pipe_context *pipe,
 {
        struct nv40_context *nv40 = nv40_context(pipe);
        struct nouveau_grobj *curie = nv40->hw->curie;
-       struct nv40_blend_state *bso = MALLOC(sizeof(*bso));
+       struct nv40_blend_state *bso = CALLOC(1, sizeof(*bso));
        struct nouveau_stateobj *so = so_new(16, 0);
 
        if (cso->blend_enable) {
@@ -47,7 +47,7 @@ nv40_blend_state_create(struct pipe_context *pipe,
        so_method(so, curie, NV40TCL_DITHER_ENABLE, 1);
        so_data  (so, cso->dither ? 1 : 0);
 
-       bso->so = so;
+       so_ref(so, &bso->so);
        bso->pipe = *cso;
        return (void *)bso;
 }
@@ -284,7 +284,7 @@ nv40_rasterizer_state_create(struct pipe_context *pipe,
                             const struct pipe_rasterizer_state *cso)
 {
        struct nv40_context *nv40 = nv40_context(pipe);
-       struct nv40_rasterizer_state *rsso = MALLOC(sizeof(*rsso));
+       struct nv40_rasterizer_state *rsso = CALLOC(1, sizeof(*rsso));
        struct nouveau_stateobj *so = so_new(32, 0);
        struct nouveau_grobj *curie = nv40->hw->curie;
 
@@ -389,7 +389,7 @@ nv40_rasterizer_state_create(struct pipe_context *pipe,
                so_data(so, 0);
        }
 
-       rsso->so = so;
+       so_ref(so, &rsso->so);
        rsso->pipe = *cso;
        return (void *)rsso;
 }
@@ -417,7 +417,7 @@ nv40_depth_stencil_alpha_state_create(struct pipe_context *pipe,
                        const struct pipe_depth_stencil_alpha_state *cso)
 {
        struct nv40_context *nv40 = nv40_context(pipe);
-       struct nv40_zsa_state *zsaso = MALLOC(sizeof(*zsaso));
+       struct nv40_zsa_state *zsaso = CALLOC(1, sizeof(*zsaso));
        struct nouveau_stateobj *so = so_new(32, 0);
 
        so_method(so, nv40->hw->curie, NV40TCL_DEPTH_FUNC, 3);
@@ -460,7 +460,7 @@ nv40_depth_stencil_alpha_state_create(struct pipe_context *pipe,
                so_data  (so, 0);
        }
 
-       zsaso->so = so;
+       so_ref(so, &zsaso->so);
        zsaso->pipe = *cso;
        return (void *)zsaso;
 }
index b12f8b03dd82cdd8e5f63c721d6b98ab94533912..81b927a67a94ddfb35c826c19a62fdadba6b0857 100644 (file)
@@ -28,7 +28,6 @@ nv40_state_blend_colour_validate(struct nv40_context *nv40)
                       (float_to_ubyte(bcol->color[2]) <<  0)));
 
        so_ref(so, &nv40->state.hw[NV40_STATE_BCOL]);
-       so_ref(NULL, &so);
        return TRUE;
 }
 
index d3032f1be5a0f3a5f3d42011d83db0016c686074..c3bf4d43a335d1996230644c18f3cfe9787188aa 100644 (file)
@@ -143,7 +143,6 @@ nv40_state_framebuffer_validate(struct nv40_context *nv40)
        so_data  (so, ((h - 1) << 16) | 0);
 
        so_ref(so, &nv40->state.hw[NV40_STATE_FB]);
-       so_ref(NULL, &so);
        return TRUE;
 }
 
index 2871fa2516d5ffaf388fe1bd852f8c6aedd15348..ee797094d396440239e921c4496cc67e8d6a0adc 100644 (file)
@@ -22,7 +22,6 @@ nv40_state_scissor_validate(struct nv40_context *nv40)
        }
 
        so_ref(so, &nv40->state.hw[NV40_STATE_SCISSOR]);
-       so_ref(NULL, &so);
        return TRUE;
 }
 
index bd163582a39acc17517ba0e24fa5024f524d918e..aad4d179ac4f6c70cd4df5137ccfdfdcedbff47e 100644 (file)
@@ -27,7 +27,6 @@ nv40_state_stipple_validate(struct nv40_context *nv40)
        }
 
        so_ref(so, &nv40->state.hw[NV40_STATE_STIPPLE]);
-       so_ref(NULL, &so);
        return TRUE;
 }
 
index 79fcc31a8bf92ce633dc3c25e40a649fcd98570a..68820d313391db7ada6fbc8267794dbf0f3e54d6 100644 (file)
@@ -17,7 +17,6 @@ nv40_state_viewport_validate(struct nv40_context *nv40)
        so_data  (so, fui(vpt->scale[3]));
 
        so_ref(so, &nv40->state.hw[NV40_STATE_VIEWPORT]);
-       so_ref(NULL, &so);
        return TRUE;
 }
 
index 3bfcb264db12fa641a564a499a50c02e883ce184..5abe4c9af101e106f9fbb63dea5870f04d611fa9 100644 (file)
@@ -159,7 +159,6 @@ nv40_vbo_arrays_update(struct nv40_context *nv40, struct pipe_buffer *ib,
        so_emit(nv40->nvws, vtxfmt);
        so_emit(nv40->nvws, vtxbuf);
        so_ref (vtxbuf, &nv40->so_vtxbuf);
-       so_ref (NULL, &vtxbuf);
        so_ref (NULL, &vtxfmt);
 }
 
index 8a2d2336974f69e97b3edb92de641edddced9b66..c482964adc04829f48f48c0aaa2c616b9a8c481e 100644 (file)
@@ -678,7 +678,6 @@ check_gpu_resources:
                so_data  (so, vp->ir);
                so_data  (so, vp->or);
                so_ref(so, &vp->so);
-               so_ref(NULL, &so);
 
                upload_code = TRUE;
        }