summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPekka Paalanen <pq@iki.fi>2008-11-30 20:40:55 +0200
committerPekka Paalanen <pq@iki.fi>2008-11-30 20:40:55 +0200
commitbb29d066dc5c5188bafadf7b702d44ed571e855e (patch)
treee6bb62fabdfea65ef6aa4992f12f0ae566b6c0da
parent830e4a6ec3fb70c830d0c59eae5edc827b546eae (diff)
Nouveau: nv{10,20} set_primitive API fix
Also changes nvgl_primitive() to return zero, i.e. error, on unknown primitive. Signed-off-by: Pekka Paalanen <pq@iki.fi>
-rw-r--r--src/gallium/drivers/nouveau/nouveau_gldefs.h2
-rw-r--r--src/gallium/drivers/nv10/nv10_prim_vbuf.c9
-rw-r--r--src/gallium/drivers/nv20/nv20_prim_vbuf.c9
3 files changed, 15 insertions, 5 deletions
diff --git a/src/gallium/drivers/nouveau/nouveau_gldefs.h b/src/gallium/drivers/nouveau/nouveau_gldefs.h
index e1015c93a2..ff97aaa9af 100644
--- a/src/gallium/drivers/nouveau/nouveau_gldefs.h
+++ b/src/gallium/drivers/nouveau/nouveau_gldefs.h
@@ -189,7 +189,7 @@ nvgl_primitive(unsigned prim) {
case PIPE_PRIM_POLYGON:
return 0x000a;
default:
- return 0x0001;
+ return 0;
}
}
diff --git a/src/gallium/drivers/nv10/nv10_prim_vbuf.c b/src/gallium/drivers/nv10/nv10_prim_vbuf.c
index 62a8f6d89d..e7e81d3dff 100644
--- a/src/gallium/drivers/nv10/nv10_prim_vbuf.c
+++ b/src/gallium/drivers/nv10/nv10_prim_vbuf.c
@@ -121,12 +121,17 @@ nv10_vbuf_render_allocate_vertices( struct vbuf_render *render,
}
-static void
+static boolean
nv10_vbuf_render_set_primitive( struct vbuf_render *render,
unsigned prim )
{
struct nv10_vbuf_render *nv10_render = nv10_vbuf_render(render);
- nv10_render->hwprim = prim + 1;
+ unsigned hwp = nvgl_primitive(prim);
+ if (hwp == 0)
+ return FALSE;
+
+ nv10_render->hwprim = hwp;
+ return TRUE;
}
diff --git a/src/gallium/drivers/nv20/nv20_prim_vbuf.c b/src/gallium/drivers/nv20/nv20_prim_vbuf.c
index a040d89a46..fd9cad177a 100644
--- a/src/gallium/drivers/nv20/nv20_prim_vbuf.c
+++ b/src/gallium/drivers/nv20/nv20_prim_vbuf.c
@@ -146,12 +146,17 @@ nv20_vbuf_render_allocate_vertices( struct vbuf_render *render,
return buf;
}
-static void
+static boolean
nv20_vbuf_render_set_primitive( struct vbuf_render *render,
unsigned prim )
{
struct nv20_vbuf_render *nv20_render = nv20_vbuf_render(render);
- nv20_render->hwprim = nvgl_primitive(prim);
+ unsigned hwp = nvgl_primitive(prim);
+ if (hwp == 0)
+ return FALSE;
+
+ nv20_render->hwprim = hwp;
+ return TRUE;
}
static uint32_t