diff options
author | Maarten Maathuis <[email protected]> | 2009-12-29 23:59:08 +0100 |
---|---|---|
committer | Maarten Maathuis <[email protected]> | 2010-01-05 19:13:34 +0100 |
commit | c77ade8fed2be933af3f493932cedee7ca868b04 (patch) | |
tree | 4afeb8ee5930553c41bee8bc83b5715b307e09cf /src/gallium/drivers/nv30/nv30_vbo.c | |
parent | 29d2ab37e65c9242d01f63cc5376cb6929f9285f (diff) |
nouveau: rewrite nouveau_stateobj to use BEGIN_RING properly
- The previous solution was hacky and didn't do subchannel autobinding.
- The beheaviour should match what libdrm_nouveau does closely.
- The solution remains statically sized, but when debugging is on it will check
for abuse.
Signed-off-by: Maarten Maathuis <[email protected]>
Diffstat (limited to 'src/gallium/drivers/nv30/nv30_vbo.c')
-rw-r--r-- | src/gallium/drivers/nv30/nv30_vbo.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/gallium/drivers/nv30/nv30_vbo.c b/src/gallium/drivers/nv30/nv30_vbo.c index bccc805324c..1c5db03ea24 100644 --- a/src/gallium/drivers/nv30/nv30_vbo.c +++ b/src/gallium/drivers/nv30/nv30_vbo.c @@ -491,9 +491,9 @@ nv30_vbo_validate(struct nv30_context *nv30) unsigned vb_flags = NOUVEAU_BO_VRAM | NOUVEAU_BO_GART | NOUVEAU_BO_RD; int hw; - vtxbuf = so_new(20, 18); + vtxbuf = so_new(3, 17, 18); so_method(vtxbuf, rankine, NV34TCL_VTXBUF_ADDRESS(0), nv30->vtxelt_nr); - vtxfmt = so_new(17, 0); + vtxfmt = so_new(1, 16, 0); so_method(vtxfmt, rankine, NV34TCL_VTXFMT(0), nv30->vtxelt_nr); for (hw = 0; hw < nv30->vtxelt_nr; hw++) { @@ -506,7 +506,7 @@ nv30_vbo_validate(struct nv30_context *nv30) if (!vb->stride) { if (!sattr) - sattr = so_new(16 * 5, 0); + sattr = so_new(16, 16 * 4, 0); if (nv30_vbo_static_attrib(nv30, sattr, hw, ve, vb)) { so_data(vtxbuf, 0); |